Databend Roadmap in 2023

Databend 经历了 2022 年一整年的研发,Databend 的功能性和稳定性得到了显著增强,一些用户开始在生产中使用。Databend 帮助他们极大地 降低 了成本和操作的复杂性问题。

下面是 Databend Roadmap in 2023 (讨论)。

早期的 Roadmap:

主要任务

v1.0 (计划 Release 时间:2023.3.5)

TaskStatusComments
(Query) Support Decimal data type#2931PLANhigh-priority(release in v1.0 )
(Query) Query external stage file(parquet)IN PROGRESShigh-priority(release in v1.0)
(Query) Array functions#7931PLANhigh-priority(release in v1.0)
(Planner) CBOIN PROGRESShigh-priority(release in v1.0)
(Processor) Aggregation spillingIN PROGRESShigh-priority(release in v1.0)
(Storage) Update#9261IN PROGRESSneed-optimized(release in v1.0)
(Storage) Alter tableIN PROGRESShigh-priority(release in v1.0 )
(Storage) Block data cachePLANhigh-priority(release in v1.0 )
(Storage) Fuse engine orphan data cleanupPLANhigh-priority(release in v1.0)
(Integration) CDCIN PROGRESShigh-priority(release in v1.0)

在 Databend v1.0 版本中,主要本着生产中用户一些反馈把 Databend 进一步的增强:

  • 增加 Decimal 类型, 在 new expression 直接增加新类型;

  • 支持直接查询外部 parquet 的文件;

  • 主要 Array 函数支持;

  • 支持:alter table 增加删除列的操作,update 进一步增强,支持 CDC 相关操作;

  • 引入 Block data cache 用于节省对象存储上的查询请求费用,同时也启到加速作用;

目前 CDC 及数据迁移工作这块对接了:

  1. 支持 Addax 数据迁到到 Databend 中 [done]

  2. 支持 DataX 到 Databend & Databend Cloud 的数据迁移对接中 [IN PROGRESS]

  3. 对接 Tapdata 到 Databend & Databend Cloud 的 CDC 数据写入 [IN PROGRESS]

  4. 对接 Airbyte & DBT 到 Databend & Databend Cloud 的数据写入 [IN PROGRESS]

v1.1 (计划 Release 时间:2023.4.5)

TaskStatusComments
(Query) Fulltext index#3915PLANhigh-priority(release in v1.1)
(Query) JSON indexingPLANhigh-priority(release in v1.1)
(Query) Distributed COPY#8594PLANhigh-priority(release in v1.1)
(Storage) Fuse engine re-clusteringPLANhigh-priority(release in v1.1)
(Storage) Fuse engine segment treePLANhigh-priority(release in v1.1)

在 Databend v1.1 也许你已经发现 json indexing, fulltext index 这样的功能,这也是 v1.1 版本的主要目标,目前挺多用户使用 Databend 替代 ES 做日志相关的服务,这样也就要求 Databend 对 json 字段的处理能力要求非常高了。概括来讲 v1.1 需要具备:

  1. 具备替换 ES 初步能力

  2. 支持分布式调用 copy 数据加载能力

  3. 支持 cluster key,让数据按某个字段排序

  4. 支持 segment tree 让数据写入及缓存更加的高效,单表 PB 级别就非常轻松了

Databend 开发是以对象存储为基础,用户需求为核心,2023 年整体上以小步快跑的方式进行开发,经团队和用户的沟通功能需求大概如下:

Query 功能

TaskStatusComments
Update#9261DONEneed optimized(release in v1.0)
PrivilegesIN PROGRESS
Alter tableIN PROGRESShigh-priority(release in v1.0 )
Window functionPLAN
Lambda function and high-order functionsPLAN
TimestampTz data typePLAN
Materialized viewPLAN
Support SET_VAR hints#8833PLAN
Parquet readerPLAN
DataFramePLAN
Data Sharing(community version)IN PROGRESS
Concurrent query enhancePLAN
Distributed COPY#8594PLAN
Support Decimal data type#2931PLANhigh-priority(release in v1.0 )

在 Query 规划中有一些特别的功能

基础部分:

  1. update 实现上的优化 [v1.0]

  2. alter table 表结构秒级变更的实现 [v1.0]

  3. read parquet 文件

进阶部分:

  1. Windows Function 窗口函数支持,这个跑通 TPC-DS 必备条件

  2. 物化视图,这块是让 Databend 支持更加复杂的 ETL

  3. DataFrame 这块是新型数据工作者比较喜欢的方式

高级部分:

  1. 数据共享,这是构建 Data market 一个基础

  2. 并发访问控制

  3. 分布式的 copy 数据装载控制

改进
TaskStatusComments
New expression#9411DONE
Error messagePLAN

New expression 是 2023 年开年之初合并进来最大的一个功能。基于 New expression 有了完善的类型推导机制,在 SQL 的编译期能尽可能推断出表达式的执行方式,极简的表达式函数注册逻辑,以及在数据库类型级别实现了泛型的推导。在新的类型系统基础上,常量折叠,类型推导,函数的注册,查询数据裁剪 等模块都能享受到新类型系统带来的红利。

优化 错误 信息提示,让使用者更容易定位到问题。

Resource Quota
TaskStatusComments
Session-level quota control (CPU/Memory)IN PROGRESS
User-level quota control (CPU/Memory)PLAN

限制 Query & User 使用最大资源,这块特别是一些复杂的 Query 在资源有限的情况下,需要通过一些控制来降低内存的使用,减少 OOM 问题。

Planner

TaskStatusComments
Scalar expression normalizationPLAN
Column constraint frameworkPLAN
Functional dependency framework#7438PLAN
Join reorderIN PROGRESS
CBOIN PROGRESShigh-priority(release in v1.0)
Support TPC-DSPLAN
Support optimization tracingPLANEasy to debug/study.

在 2022 年 Databend 支持复杂的 join 运算,跑通了 TPCH,现在需要通过 CBO 增强后,进一步提升 join 的智能优化。

Cache

TaskStatusComments
Unified cache layerIN PROGRESS
Meta data cacheIN PROGRESS
Index data cacheIN PROGRESS
Block data cachePLANhigh-priority(release in v1.0 )

对于 Cache 有三块明确的需求

  1. 减少 Query 节点和对象存储的交互,降低费用;

  2. 让数据库在 Query 节点存储直接命中,提升性能;

  3. 通过更优的格式存储提升查询能力,目前测试 databend nagive engine 在本地盘情况下,可以和 Clickhouse 对齐。

Data Storage

TaskStatusComments
Fuse engine re-clusteringPLANhigh-priority(release in v1.1)
Fuse engine orphan data cleanupPLANhigh-priority(release in v1.0)
Fuse engine segment treePLANSupport large dataset(PB) in one table

存储这块目前来看有几个比较明确的功能需求:

  1. 支持 re-clustering,让数据按某些列有序的存储,减少排序和区间查询的扫描范围

  2. 清理计算及使用中产生的孤儿数据(v1.0 版本就完成)

  3. 进一步优化 PB 级别的表,降低资源使用

Distributed Query Execution

TaskStatusComments
Visualized profilingIN PROGRESS
Aggregation spillingIN PROGRESShigh-priority(release in v1.0)

分布式执行是 Databend 在追求的方向,执行计划可视化增强,同时也要在分布式执行上引入 spilling 策略,用于支持离线环境使用较小的资源来计算较大的数据的场景。

Schema-Less Search

TaskStatusComments
JSON indexingPLANhigh-priority
Fulltext index#3915PLANhigh-priority
Array functions#7931PLANhigh-priority
Faiss index#9699PLAN

Databend 在 json 支持引,利用 Rust 实现 mongodb 的 jsonb 实现,让 Databend 的 json 支持上有了进一步的提升。今年计划进一步的增强 json 的地实现,使期可以满足 ES 的一部分功能。

LakeHouse

TaskStatusComments
Apache HiveIN PROGRESS
Apache IcebergIN PROGRESS
Delta LakeIN PROGRESS
Querying external storage(Parquet)IN PROGRESS

原生大数据生态对接,Databend 给现有大数据生态加速。目前已经上生产环境的有:Databend + Hive,也在不断的优化中。

Integrations

TaskStatusComments
Dbt integrationIN PROGRESS
Airbyte integrationIN PROGRESS
Datadog Vector integrate with Rust-driverIN PROGRESS
Datax integrate with Java-driverIN PROGRESS
CDC with FlinkPLAN
CDC with KafkaPLAN

生态对接方面,目前 Databend 主要集中 ETL 及数据迁移相关的工具,同时也会也对接分析及可视化类工具。

Meta

TaskStatusComments
Jepsen testIN PROGRESS
Store membership in raftPLAN
Nonblocking snapshot buildingPLAN
Snapshot file format implPLAN
Upgrade on-disk store formatPLAN

Databend meta 是 Databend 非常核心的一个组件。主要用于 Databend 中定义的 meta 信息,事务,锁,一致性信息的管理。

Testing

TaskStatusComments
SQLlogic TestIN PROGRESSSupports more test cases
SQLancer TestIN PROGRESSSupports more types and more cases
Fuzzer TestPLAN

Databend 目前测试从 Python 的 SQLlogic Test 切换到了 Rust SQLlogic Test 测试性能有了显著的提升,同时集成了 SQLancer Test 让 Databend 也有了更强的稳定性。后期还是需要增加更多的测试用例。

如果以上有你特别需要,还没包含进来的,也欢迎来 Databend repo 讨论区交流。如果你想参与其中某个功能的开发也欢迎参与进来。

Releases

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值