【Hackathon 2022 创意库】寻找创意的小伙伴看过来~~

来找灵感呀?那你可来对地方了!

Hackathon 2022 创意库来啦,这里是来自社区小伙伴的创意贡献,也欢迎更多有想法的小伙伴在评论区分享你天马行空的想法~

  • 创意贡献:直接在评论区回复你的想法即可哈~创意想法若被收录到本帖中,可以获得 100 社区积分/创意收录 哟~(每人 300 积分上限)但是创意没有上限哈~
  • 创意寻找:下方都是你的创意灵感来源哟,参加 Hackathon 的小伙伴们也可以在这里寻找创意灵感~

灵感聚集地

TiDB Hackathon 2022 非正式会谈 —— 创意脑暴会 ,东旭以及资深架构师们在线脑暴,产生了超多创意灵感。

应用组

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可参考 NFTScanOSSInsightOssInsight - 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

项目示例

一些项目示例参考,希望可以给你一些方向与灵感~

  1. OSSInsight 是一个基于数十亿 GitHub events 数据构建的洞察工具。只要你会写 SQL,就可以基于 Docusaurus、Apache ECharts 构建一个强大、酷炫的数据洞察工具。

  2. TiDB & Snowflake Demo 是一个基于 TiDB 和 Snowflake 构建的电子商务系统,该系统使用了 TiDB 强大的实时 HTAP 能力和 Snowflake 的离线分析能力,来处理系统中大量的数据。

  3. Ti-Click 是 TiDB Hackathon 2021 的 20 强项目之一,项目通过在线 IDE 的方式,快速搭建基于 TiDB 的 Example App 的开发和在线编译的实验室,可帮助开发者快速学习 TiDB。

  4. Bookshop 是一个基于 TiDB 搭建的在线书店应用,你可以通过它来学习如何导入表结构和数据,以及如何基于这些数据来编写 SQL。本文章将为你介绍如何导入该应用的表结构和数据,以及其数据表结构的定义。

  5. 对于 TiDB 的初学者,我们基于 Gitpod,提供了一个云原生开发环境的使用帮助,你可以直接从你的浏览器或桌面 IDE 启动一个远程的 TiDB 开发环境,快速体验 TiDB 的能力。我们编写了全新的 TiDB 开发者文档,这份文档可以帮助应用开发者,在最短时间内上手 TiDB。

来自社区的项目想法

应用组:

  1. Oracle 迁移工具和迁移方案的最佳实践

  2. 从MySQL迁移到 TiDB 的迁移校验工具,这样可以提前要求开发对不适配的表结构,存储过程,函数进行改造。

  3. 轻量型的 TiDB

产品组:

TiDB:

  1. 智能化的运维平台,包含常见的运维操作,智能运维提前发现问题各类问题(SQL性能问题,软硬件问题,使用问题,部署问题,参数问题等等),并拥有一定自愈能力,强大的告警,远程处理能力

  2. 优化器支持 INDEX SKIP SCAN:https://dev.mysql.com/doc/refman/8.0/en/range-optimization.html#range-access-skip-scan

  3. 希望有一个对SQL 调整优化提供建议的小工具,例如场景:新接手的一套数据库,SQL 运行存在问题,而对于整体的业务逻辑又不是太清楚,特别是DBA,一大长串的SQL 语句,看着都头疼,如果SQL 执行缓慢,通过这个工具可以对整体SQL 运行提出可行性建议和大致优化方向,则可以快速的根据提示找到问题所在,进行SQL 的优化。

  4. 定义整个集群的运行level(一组参数和配置的集合),定义tidb-server节点的 使用level,自动运行在不同的level上或手动指定level运行。

  5. 支持自定义SQL函数、支持存储过程

  6. 查询语句的统计信息(比如某一天执行了多少SQL,有那几类,每类SQL的总数,占比。索引使用情况等等)

  7. 丰富时间点恢复的解决方案,recover和flashback的使用场景还是有限的

  8. 希望完善 cdc 的 avro 格式

  9. 希望TiDB支持SqlServer的数据迁移

Dashboard:

  1. 丰富一下 Dashboard 的功能,比如把对 DM 的 task 管理、TiCDC 的 changefeed 管理都搞进去。

  2. 看不到默认参数,参数含义,每次还得去官网上对照,最主要的是,我既然有 Dashboard 用于集群状态查看,那么就应该最好不需要登录到集群去用命令行来查询,不然两边都要看来看去。

  3. 优化一下监控的显示,如果能把常用问题需要排查的监控列在一起就好了,不用来回切换。比如读、写慢的情况

  4. 系统参数,集群参数比较多,能否在 dashboard 上做下分类,比如我需要优化读写热点,可以显示相关参数,甚至在 dashboard 上进行修改;

  5. 希望Dashboard的功能更丰富点,直接在Dashboard就能完成日常巡检;

  6. 监控面板实现监控监控方面和SQL优化方面有更详细的介绍说明。监控项目前偏多,很多其实在日常运维中根本用不到,而且遇到问题也不知道该去看哪些监控,这方面可以有一些优化;SQL优化方面看文档感觉还是不大会调优,对于执行计划也有些看不懂,可以更细化一下就更好了

  7. 简洁的交互界面和高级感图表,协助dba进行巡检日志和业务报表信息管理,降低平台故障down的几率。

Tikv:

  1. 目前 TiKV 硬盘大小配置不超过 2 TB,最好能支持 8T 以上的 SSD,可以节省企业部署 TiDB 的成本;3. 还是关于 dashboard 的,目前 dashboard 基本作用查询分析,是否可以把其他运维工作也集成进去,比如配置管理告警、慢sql信息推送、生成巡检报告等等;

TiUP :

  1. 做一个TiUP的TUI吧,每次用各种ctl之前还要list一下再抄ip端口这个太不优雅了

  2. tiup有一个需求:tiup部署的时候会自己产生一个秘钥对与目标机器进行互信,但是有些场景下,目标机器的authorized_keys会定时刷新或者不允许修改,也就是说目标机器只能通过指定的秘钥进行登录,不允许使用新的秘钥登录,能不能让tiup始终使用一个指定的秘钥,不创建新的秘钥

  3. tiup 配置数据放到PD中去,任何一个节点安装tiup范围PD,既可以管理集群。省得单点丢失集群数据造成麻烦

  4. tiup的版本回退的操作

TiSpark:

  1. TiSpark计算的结果能不能直接写回TiFlash,这会让TiDB的架构把离线计算也包含在内,让我们抛弃hadoop那一套复杂的东西吧。

比赛相关链接直达

关注一波

tidb或者说tiflash应该有外部表的能力了,tiflash+外部表+对象存储+parquet+spark,让olap更上一层楼。

1赞

这个文档是 private 的, 想参考下但看不到:

https://docs.pingcap.com/zh/tidb/dev/dev-guide-proxysql-integration 这里哈~更新了链接