Databend Roadmap in 2023
Databend 经历了 2022 年一整年的研发,Databend 的功能性和稳定性得到了显著增强,一些用户开始在生产中使用。Databend 帮助他们极大地 降低 了成本和操作的复杂性问题。
下面是 Databend Roadmap in 2023 (讨论)。
早期的 Roadmap:
主要任务
v1.0 (计划 Release 时间:2023.3.5)
在 Databend v1.0 版本中,主要本着生产中用户一些反馈把 Databend 进一步的增强:
增加 Decimal 类型, 在 new expression 直接增加新类型;
支持直接查询外部 parquet 的文件;
主要 Array 函数支持;
支持:alter table 增加删除列的操作,update 进一步增强,支持 CDC 相关操作;
引入 Block data cache 用于节省对象存储上的查询请求费用,同时也启到加速作用;
目前 CDC 及数据迁移工作这块对接了:
支持 Addax 数据迁到到 Databend 中 [done]
支持 DataX 到 Databend & Databend Cloud 的数据迁移对接中 [IN PROGRESS]
对接 Tapdata 到 Databend & Databend Cloud 的 CDC 数据写入 [IN PROGRESS]
对接 Airbyte & DBT 到 Databend & Databend Cloud 的数据写入 [IN PROGRESS]
v1.1 (计划 Release 时间:2023.4.5)
在 Databend v1.1 也许你已经发现 json indexing, fulltext index 这样的功能,这也是 v1.1 版本的主要目标,目前挺多用户使用 Databend 替代 ES 做日志相关的服务,这样也就要求 Databend 对 json 字段的处理能力要求非常高了。概括来讲 v1.1 需要具备:
具备替换 ES 初步能力
支持分布式调用 copy 数据加载能力
支持 cluster key,让数据按某个字段排序
支持 segment tree 让数据写入及缓存更加的高效,单表 PB 级别就非常轻松了
Databend 开发是以对象存储为基础,用户需求为核心,2023 年整体上以小步快跑的方式进行开发,经团队和用户的沟通功能需求大概如下:
Query 功能
在 Query 规划中有一些特别的功能
基础部分:
update 实现上的优化 [v1.0]
alter table 表结构秒级变更的实现 [v1.0]
read parquet 文件
进阶部分:
Windows Function 窗口函数支持,这个跑通 TPC-DS 必备条件
物化视图,这块是让 Databend 支持更加复杂的 ETL
DataFrame 这块是新型数据工作者比较喜欢的方式
高级部分:
数据共享,这是构建 Data market 一个基础
并发访问控制
分布式的 copy 数据装载控制
改进
New expression 是 2023 年开年之初合并进来最大的一个功能。基于 New expression 有了完善的类型推导机制,在 SQL 的编译期能尽可能推断出表达式的执行方式,极简的表达式函数注册逻辑,以及在数据库类型级别实现了泛型的推导。在新的类型系统基础上,常量折叠,类型推导,函数的注册,查询数据裁剪 等模块都能享受到新类型系统带来的红利。
优化 错误 信息提示,让使用者更容易定位到问题。
Resource Quota
限制 Query & User 使用最大资源,这块特别是一些复杂的 Query 在资源有限的情况下,需要通过一些控制来降低内存的使用,减少 OOM 问题。
Planner
在 2022 年 Databend 支持复杂的 join 运算,跑通了 TPCH,现在需要通过 CBO 增强后,进一步提升 join 的智能优化。
Cache
对于 Cache 有三块明确的需求
减少 Query 节点和对象存储的交互,降低费用;
让数据库在 Query 节点存储直接命中,提升性能;
通过更优的格式存储提升查询能力,目前测试 databend nagive engine 在本地盘情况下,可以和 Clickhouse 对齐。
Data Storage
存储这块目前来看有几个比较明确的功能需求:
支持 re-clustering,让数据按某些列有序的存储,减少排序和区间查询的扫描范围
清理计算及使用中产生的孤儿数据(v1.0 版本就完成)
进一步优化 PB 级别的表,降低资源使用
Distributed Query Execution
分布式执行是 Databend 在追求的方向,执行计划可视化增强,同时也要在分布式执行上引入 spilling 策略,用于支持离线环境使用较小的资源来计算较大的数据的场景。
Schema-Less Search
Databend 在 json 支持引,利用 Rust 实现 mongodb 的 jsonb 实现,让 Databend 的 json 支持上有了进一步的提升。今年计划进一步的增强 json 的地实现,使期可以满足 ES 的一部分功能。
LakeHouse
原生大数据生态对接,Databend 给现有大数据生态加速。目前已经上生产环境的有:Databend + Hive,也在不断的优化中。
Integrations
生态对接方面,目前 Databend 主要集中 ETL 及数据迁移相关的工具,同时也会也对接分析及可视化类工具。
Meta
Databend meta 是 Databend 非常核心的一个组件。主要用于 Databend 中定义的 meta 信息,事务,锁,一致性信息的管理。
Testing
Databend 目前测试从 Python 的 SQLlogic Test 切换到了 Rust SQLlogic Test 测试性能有了显著的提升,同时集成了 SQLancer Test 让 Databend 也有了更强的稳定性。后期还是需要增加更多的测试用例。
如果以上有你特别需要,还没包含进来的,也欢迎来 Databend repo 讨论区交流。如果你想参与其中某个功能的开发也欢迎参与进来。
Releases
[ ] v1.0#9604
[x] v0.9#7052
[x] v0.8 #4591
[x] v0.7 #3428
[x] v0.6 #2525
[x] v0.5 #2257
评论