小组介绍
Data Lake Analytics (DLA) 小组主要负责开发一种新的 DLA 框架,让 StarRocks 能更简单地接入外部数据源。详细介绍请见文档。
成立背景
目前 StarRocks 已经支持多种外表的分析,包括 Hive 外表,Iceberg 外表和 Hudi 外表,在开发支持这些不同类型的外表时,存在几个问题:
- 每种外表类型都需要写冗余的代码
- 需要开发者对 StarRocks 内核有相对较深的理解才能开发其他类型的外表
- 需要重复定义 external resource、external table,比如 HiveResource/IcebergResource 等
- 开发者开发新的 feature 经常会出现外表不支持的情况
- 当前外表仅支持分析,不支持写入,analyze table 等
综上,以上的问题会导致开发者接入外表心智负担比较大,不同外表的支持容易出现不一致,很大程度上依赖开发者的能力和对 StarRocks 内核的理解
设计目标
-
快速接入数据源: 用户具备一定开发能力,可以在 FE/BE 做少量修改实现新数据源的接入;也支持插件化开发
-
提升外部数据源查询体验: 用户无需通过脚本批量创建外表,然后查询
总体目标可以归纳为以上两点,具体展开分产品、技术、性能三个层面:
产品层面
- 用户不需要在显示创建外表 schema
技术层面
- 开发者不需要理解 StarRocks 过多内核即可开发一种数据源的支持
- 下推和元数据获取等接口进行系统梳理,开发者只需要实现对应接口即可
- StarRocks 内核开发新的 feature 不需要判断数据源,可以一并支持,避免出现功能上的不一致性
性能层面
- 新的框架不会引入 overhead
任务清单
第一期任务:https://github.com/StarRocks/starrocks/issues/5062
第二期任务:https://github.com/StarRocks/starrocks/issues/7268
SIG 会议
加入小组
加入 Slack 后搜索 #sig-dla