来找灵感呀?那你可来对地方了!
Hackathon 2022 创意库来啦,这里是来自社区小伙伴的创意贡献,也欢迎更多有想法的小伙伴在评论区分享你天马行空的想法~
- 创意贡献:直接在评论区回复你的想法即可哈~创意想法若被收录到本帖中,可以获得 100 社区积分/创意收录 哟~(每人 300 积分上限)但是创意没有上限哈~
- 创意寻找:下方都是你的创意灵感来源哟,参加 Hackathon 的小伙伴们也可以在这里寻找创意灵感~
灵感聚集地
TiDB Hackathon 2022 非正式会谈 —— 创意脑暴会 ,东旭以及资深架构师们在线脑暴,产生了超多创意灵感。
-
看看视频回顾:视频回顾 (ps:可以搭配表中的视频起始点观看视频哈~)
-
一些前绪内容:了解了可以帮忙快速 get 创意要点的基础信息
-
开发者文档(应用组必看)
-
TiDB 基础架构(简单知道 TiDB Server / TiKV / TiFlash / PD 是啥,更理解创意内在)
-
TiDB Cloud Developer Tier(TiDB Cloud 的免费集群)
-
-
创意 idea 梳理来啦:
应用组
idea | 视频起始时间 | 描述 |
---|---|---|
使用 TiDB Cloud API 进行开发 | 05:51 | 相关资源:TiDB Cloud Developer Tier(TiDB Cloud 的免费集群) |
提升 TiDB 的易用性 | 08:12 | 易用脚手架,如何一键部署一个简单的 TiDB 前后端应用TiDB 应用市场,建立 TiDB 应用模板的商业生态 |
TiDB CI/CD 组件 | TiDB CI/CD 组件,便于自动化测试,举两个自己写的例子:在 GitHub Action 上创建 TiDB:https://github.com/Icemap/tidb-action在 Java 单元测试中创建 TiDB 镜像:https://github.com/testcontainers/testcontainers-java/pull/5511 | |
OSS Insight Market Place | 23:08 | 将日常使用频率较高的组件抽象为一个可自由选择的组件商场 |
通过 SQL 提供图形化界面 | 24:42 | BI 工具?和 Metabase/SuperSet/Tableau 有啥不一样? |
TiDB → TiFlow → Kafka → Doris/ClickHouse 数据流水线 | 24:50 | 创建数据流水线,将数据最终写入至其他数据库进行 AP 分析[可选] Kafka Consumer 可定制化,将 Consumer 消费至任意数据库[可选] 使用 Flink 完成可定制化的 Source/Sink,实现通用的数据转移 |
使用 ProxySQL 与 TiDB 完成多租户 | 37:34 | 思路:使用 ProxySQL,给所有用户名/表名前加一前缀,在代理层加,随后使用 Placement Rules 进行策略编写TiDB 与 ProxySQL 集成 |
SSO 实现 TiDB 登录权限校验 | 42:00 | 思路:编写 OAuth 服务, 构建 Token <-> 临时用户名/密码 映射,仅此服务知晓 Root 账户,进行临时用户的管理,如自动续期,提醒改密,动态密码等功能[可选] 与常见 ORM/Driver 进行组合,如直接使用 JDBC 配置 OAuth 登录,自动完成用户名/密码获取、登录等操作[可选] 与 使用 ProxySQL 与 TiDB 完成多租户 组合,完成 SSO + 多租户 |
数据分析 | 51:26 | TiDB 是一个 HTAP 数据库,你可以用它来完成一些分析工作使用东旭给 TiDB Cloud 贡献的 SDK,创建一个 TiDB Cloud Developer Tier (免费),随后导入数据并且分析 |
Web3 数据集 | 57:11 | 因为区块链就是一个分布式数据库,而且是公开的,所以可以使用类似以太坊 ETL这样的工具导入到 TiDB 中进行实时分析 ethereum-etl:以太坊 ETL,可以一键将以太坊数据转为 CSV 等格式,实时接入数据到 TiDB可参考 NFTScan,OSSInsight,OssInsight - NFT Insight WorkShop |
Linux 基础小工具 | 61:01 | 使用 inotify 工具监听文件变化,使用类似 TiCDC 机制将数据导入TiDB适配 S3 |
Vercel 集成 | 64:04 | 实现 OSSInsight 的 Vercel Template使用 Vercel Serverless API 实现 MySQL 数据转入 TiDB[可选] 使用预计 9 月底提供 TiDB 的 Terraform 实现完成集群生命周期的管控 |
OSS Insight 多语言实现 | 69:20 | 使用各类语言/框架完成 OSS Insight 的实现 |
续写 TiClick | 66:21 | TiClick 今年可以通过 TiDB Cloud 的 OpenAPI 方式完成创建 |
TiDB 产品组
idea | 视频起始时间 | 描述 |
---|---|---|
TiDB 支持 ClickHouse/Doris 作为 engine 来实现只读外表 | 0:24:45 From 张兴晔0:41:10 From 黄东旭 | 把 ClickHouse/Doris 作为 TiDB 的外表只读引擎。让 TiDB 作为一个公共的用户查询入口,TiDB 底下可以对接多个不同的 database/engine。例如 CREATE TABLE xxx (xxx) engine=Doris 或者 CREATE TABLE xxx (xxx) engine=ClickHouse 创建只读外表后,用户可以通过 TiDB 访问这些外表,TiDB 会通过内部的 engine driver 去读对应的 database/engine 读取数据。这个 idea 的困难点或许在于在于如何把用户体验做的更顺滑。 |
基于 Placement Rules 实现多租户的隔离 | 0:37:25 | “穷人版”的多租户隔离方案,在 TiDB 之前加一层 TCP proxy,所有的用户请求都走这个 proxy,然后这个 proxy 根据用户名,在访问的表名前加上 user 的前缀,然后再转发给 TiDB。然后再用 Placement Rule 就能把不用租户的数据隔离开。 |
支持用 SQL 语法从 AWS S3 导入数据到 TiDB | 0:48:55 | 例如:LOAD S3 ...
|
TiDB Cloud 的 SDK | 0:51:26 | 让用户可以用 SDK 自动创建 dev-tier。 |
提升 TiDB 的 Cache 能力 | 0:51:51 | 目前 TiDB Cache Table 只能 cache 64 MB, 太小了。 |
Row based 的权限管理 | 1:03:09 | 让某个 user 只能访问某个表的某些行的数据。 |
改进 PD TSO 瓶颈(单点)问题 | 1:19:30 | 在多数据中心部署时,TSO 能否更加 scalable。 |
改进多数据中心部署时,故障恢复的速度 | 1:20:25 | 在云上,跨多数据中心部署 TiDB 集群时,当某个数据中心挂了后,能否立刻让另一个数据中心的 TiDB 立刻提供服务。 |
彩蛋组
彩蛋组不可更改 TiDB/TiKV 源码,仅可使用插件方式进行 Hacker
idea | 视频起始时间 | 描述 |
---|---|---|
TiDB UDF 入口寻找 | 75:09 | 当前 TiDB Plugin API 非常弱,仅可审计,是否可在不更改 TiDB 内核的情况下,支持插件体系 SHOW PLUGINSADMIN PLUGINHint:当前的 Plugin API 可通过特殊的方式进行增强。且不需要更改内核代码。 |
TiKV UDF 入口寻找 | 77:46 | TiKV 有一个没有文档的机制,名称为 Coprocessor Plugin,虽然没有文档,也没几个人会用,但此机制是可用的,笑死 |
创意贡献嘉宾:
- 黄东旭 PingCAP 联合创始人兼 CTO
- 姚维 PingCAP 全球社区生态负责人
- 张兴晔 多点系统架构师
- Cheng chen PingCAP Product Manager
项目示例
一些项目示例参考,希望可以给你一些方向与灵感~
-
OSSInsight 是一个基于数十亿 GitHub events 数据构建的洞察工具。只要你会写 SQL,就可以基于 Docusaurus、Apache ECharts 构建一个强大、酷炫的数据洞察工具。
-
TiDB & Snowflake Demo 是一个基于 TiDB 和 Snowflake 构建的电子商务系统,该系统使用了 TiDB 强大的实时 HTAP 能力和 Snowflake 的离线分析能力,来处理系统中大量的数据。
-
Ti-Click 是 TiDB Hackathon 2021 的 20 强项目之一,项目通过在线 IDE 的方式,快速搭建基于 TiDB 的 Example App 的开发和在线编译的实验室,可帮助开发者快速学习 TiDB。
-
Bookshop 是一个基于 TiDB 搭建的在线书店应用,你可以通过它来学习如何导入表结构和数据,以及如何基于这些数据来编写 SQL。本文章将为你介绍如何导入该应用的表结构和数据,以及其数据表结构的定义。
-
对于 TiDB 的初学者,我们基于 Gitpod,提供了一个云原生开发环境的使用帮助,你可以直接从你的浏览器或桌面 IDE 启动一个远程的 TiDB 开发环境,快速体验 TiDB 的能力。我们编写了全新的 TiDB 开发者文档,这份文档可以帮助应用开发者,在最短时间内上手 TiDB。
来自社区的项目想法
应用组:
-
Oracle 迁移工具和迁移方案的最佳实践
-
从MySQL迁移到 TiDB 的迁移校验工具,这样可以提前要求开发对不适配的表结构,存储过程,函数进行改造。
-
轻量型的 TiDB
产品组:
TiDB:
-
智能化的运维平台,包含常见的运维操作,智能运维提前发现问题各类问题(SQL性能问题,软硬件问题,使用问题,部署问题,参数问题等等),并拥有一定自愈能力,强大的告警,远程处理能力
-
优化器支持 INDEX SKIP SCAN:MySQL :: MySQL 8.0 Reference Manual :: 8.2.1.2 Range Optimization
-
希望有一个对SQL 调整优化提供建议的小工具,例如场景:新接手的一套数据库,SQL 运行存在问题,而对于整体的业务逻辑又不是太清楚,特别是DBA,一大长串的SQL 语句,看着都头疼,如果SQL 执行缓慢,通过这个工具可以对整体SQL 运行提出可行性建议和大致优化方向,则可以快速的根据提示找到问题所在,进行SQL 的优化。
-
定义整个集群的运行level(一组参数和配置的集合),定义tidb-server节点的 使用level,自动运行在不同的level上或手动指定level运行。
-
支持自定义SQL函数、支持存储过程
-
查询语句的统计信息(比如某一天执行了多少SQL,有那几类,每类SQL的总数,占比。索引使用情况等等)
-
丰富时间点恢复的解决方案,recover和flashback的使用场景还是有限的
-
希望完善 cdc 的 avro 格式
-
希望TiDB支持SqlServer的数据迁移
Dashboard:
-
丰富一下 Dashboard 的功能,比如把对 DM 的 task 管理、TiCDC 的 changefeed 管理都搞进去。
-
看不到默认参数,参数含义,每次还得去官网上对照,最主要的是,我既然有 Dashboard 用于集群状态查看,那么就应该最好不需要登录到集群去用命令行来查询,不然两边都要看来看去。
-
优化一下监控的显示,如果能把常用问题需要排查的监控列在一起就好了,不用来回切换。比如读、写慢的情况
-
系统参数,集群参数比较多,能否在 dashboard 上做下分类,比如我需要优化读写热点,可以显示相关参数,甚至在 dashboard 上进行修改;
-
希望Dashboard的功能更丰富点,直接在Dashboard就能完成日常巡检;
-
监控面板实现监控监控方面和SQL优化方面有更详细的介绍说明。监控项目前偏多,很多其实在日常运维中根本用不到,而且遇到问题也不知道该去看哪些监控,这方面可以有一些优化;SQL优化方面看文档感觉还是不大会调优,对于执行计划也有些看不懂,可以更细化一下就更好了
-
简洁的交互界面和高级感图表,协助dba进行巡检日志和业务报表信息管理,降低平台故障down的几率。
Tikv:
- 目前 TiKV 硬盘大小配置不超过 2 TB,最好能支持 8T 以上的 SSD,可以节省企业部署 TiDB 的成本;3. 还是关于 dashboard 的,目前 dashboard 基本作用查询分析,是否可以把其他运维工作也集成进去,比如配置管理告警、慢sql信息推送、生成巡检报告等等;
TiUP :
-
做一个TiUP的TUI吧,每次用各种ctl之前还要list一下再抄ip端口这个太不优雅了
-
tiup有一个需求:tiup部署的时候会自己产生一个秘钥对与目标机器进行互信,但是有些场景下,目标机器的authorized_keys会定时刷新或者不允许修改,也就是说目标机器只能通过指定的秘钥进行登录,不允许使用新的秘钥登录,能不能让tiup始终使用一个指定的秘钥,不创建新的秘钥
-
tiup 配置数据放到PD中去,任何一个节点安装tiup范围PD,既可以管理集群。省得单点丢失集群数据造成麻烦
-
tiup的版本回退的操作
TiSpark:
- TiSpark计算的结果能不能直接写回TiFlash,这会让TiDB的架构把离线计算也包含在内,让我们抛弃hadoop那一套复杂的东西吧。
比赛相关链接直达
- 快速报名 立即报名
- 查看活动详细介绍 TiDB hackathon 2022 主页
- 参赛指南:【重点】TiDB Hackathon 2022 参赛须知
- 社区组队互助:【Hackathon 2022 组队指南】求组队的小伙伴看过来~~
- RFC 说明:【重点】Hackathon 2022 RFC 设计文档模板