写点什么

Databend Roadmap in 2023

作者:Databend
  • 2023-02-01
    中国香港
  • 本文字数:2011 字

    阅读完需:约 7 分钟

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 及数据迁移工作这块对接了:


  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)


在 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 功能


在 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 数据装载控制

改进


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


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

Resource Quota


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

Planner


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

Cache


对于 Cache 有三块明确的需求


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

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

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

Data Storage


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


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

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

  3. 进一步优化 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

用户头像

Databend

关注

还未添加个人签名 2022-08-25 加入

还未添加个人简介

评论

发布
暂无评论
Databend Roadmap in 2023_Databend_InfoQ写作社区