Skip to main content

Databend 2022 年终总结

Alt text

上一次写总结还是在回顾 Datafuse Labs 成立一周年,转眼来到 22 年末,Databend 也快要开始第三个年头的征程了。

今天就让我们一起回顾一下 Databend 在 2022 年的成果。

开源

Databend 是一款强大的云数仓,专为弹性和高效设计,自由且开源。

作为从第一天就开源的云数仓产品,Databend 的研发协作几乎完全依托 GitHub 进行,并受到 Rust 社区和数据行业从业者的广泛关注,在过去的一年里:

  • 新增 2000 star,star 总数量接近 5000

  • 新增 PR 约 2400 个,总 PR 数量达到 5600 个。

  • 解决 Issue 1900 余个,已解决 Issue 超过 3000 个。

  • 贡献者数量相比去年增长接近一倍,目前共有 138 位贡献者。

  • 累计提交约 16000 次,提交总数超过 23000

研发:立足真实场景,寻求答案

Databend 在 2022 年立足于用户的真实场景和现实需要,不断打磨并上线了很多重要的新特性。

新数仓,新模样

作为一个对标 Snowflake 和 Clickhouse 的新生云数仓,不光要充分发挥「云原生」的力量,带来全新的设计和实现,同时还要在性能和可维护性之间进行平衡。

  • 支持 StageData Sharing 以帮助用户更好地介入数据的生命周期。

  • 全新的 Planner 架构,更加友好的 SQL 错误提示,更高效和充分的执行计划优化技术。

  • 全新类型系统的设计与实现,支持类型检查和类型安全的向下转型。

  • 兼具 Push 模式和 Pull 模式的 Processor 调度执行框架。

  • 实验性的 Native Format 支持,本地盘性能进一步提高。

Databend as Lakehouse

数字时代为 Databend 提出了更高的要求,我们必须着手解决海量数据的存储与管理问题,既要支持负载更大的数据量,也要支持更加丰富的数据来源。我们做了以下工作来更好地实现「Databend as Lakehouse」这一愿景。

  • 使用自研的 OpenDAL 来一统数据访问层。

  • 更加充分的结构化、半结构化数据支持。

  • 多目录,更方便对接 Hive 等自定义 catalog。

  • 支持直接读取查询位于 本地 / Stage / 远端 的数据文件。

极致能效比

经过一年来的持续精进,Databend 整体进入到了一个新阶段,「存算分离、弹性调度」,能效比大幅提高。

  • 在部分场景下可以和 Clickhouse 达到接近性能。

  • 比 Elasticsearch 下降 90% 成本,比 Clickhouse 下降 30% 以上成本。

测试:吃一个定心丸

充分、全面的测试是保障数据库管理系统正确性的关键。Databend 不光关注性能的极致释放,也同样关心结果的正确性和可重复性。

正确性测试

在这一年里,Databend 首先使用 SQL Logic Tests 替换掉原有的 Stateless 测试,并从 YDB、DuckDB 等其他数据库中迁移了大量成熟的测试用例,以确保测试的全面覆盖。近期,我们还使用 sqllogictest-rs 编写 Rust 原生测试程序替换了旧有的 Python 程序,在保障测试可维护性的同时大幅缩短了 CI 的运行时间。

除了基于用例的测试之外,自动化测试方案也是必不可少的。社区同学为 Databend 实现了 SQLancer 所支持的 TLP、QPS、NoREC 全部三种测试方案,并以及合并到上游的 main 分支之中,发现并修复数十处潜在的 Bug,进一步保障了 Databend 执行的正确性。

性能测试

当然,除了正确性测试之外,性能测试也是必不可少的。Databend 在 2022 年还上线了 https://perf.databend.rs/ ,用于跟踪 Databend 每日性能变化,以便于及时发现潜在的性能问题。同时,我们也积极跟进 Clickbench 等其他基准测试,确保 Databend 性能持续稳步提高。

生态和用户:相互促进,共同成功

生态和用户是相辅相成的,繁荣的生态可以吸引更多用户体验和参与到 Databend 社区之中,而随着用户需求的进一步落地,生态也能够获得更加长足的进步。

积极拓展生态

Databend 非常关注生态问题,不光提供 MySQL 协议、Clickhouse HTTP Handler 的兼容,更在这一基础上验证、对接并集成了多种数据服务和工具,包括:

  • Airbyte

  • DBT

  • Addax (Datax)

  • Vector

  • Jupyter Notebook

  • DBeaver

同时,我们还实现并维护包括 Python 和 Go 在内的多语言 Driver,方便用户定制和开发基于 Databend 的服务。

与用户共同成功

用户是 Databend 赖以成长的土壤,不光支持着 Databend 的开发,也为 Databend 社区注入了更多活力。

快手 的帮助下,Databend 支持 Hive Catalog,不仅打通 Hive 生态,更促使我们进一步思考 Multiple Catalog 的设计和实现。多点 帮助验证并落地了基于 Databend 进行数据归档的场景。同时也要感谢 茄子快传VoyanceDIGIFINEX微盟 等用户对 Databend 的信任和支持。

Databend 生态中的其他项目也得到了用户的认可和喜爱:

  • OpenDAL 目前接管了 sccache 的数据访问层,从而进一步完成对 Firefox CI 的支持。同时 OpenDAL 也为 GreptimeDBdeepeth/mars 等数据库和数据分析项目提供数据访问支持。

  • OpenRaft 用于 Azure/Feathr 中的 Feature Registry(数据库,以承载特征元数据)实现,也在 SAP、火币、美团 的内部项目中得到使用。

  • OpenSrv 的 MySQL 协议实现在 GreptimeDBCeresDB 等多个数据库项目中得到应用。

知识传播

2022 年,Databend 社区还发起了「Data Infra 研究社」,围绕大数据数据架构和前沿技术进行交流。主题涵盖大数据平台、Data Mesh、Modern Data Stack 等,并邀请到 PingCAP快手多点茄子快传 的朋友分享知识和见解,目前在 B 站上一共发布了 9 期内容。

云是 Databend 商业化战略的重要部分,也是 Databend 这个开源项目的重要用户。

Databend Cloud 是围绕 Databend 打造的一款易用、低成本、高性能的新一代大数据分析平台,让用户更加专注数据价值的挖掘。Databend Cloud 上线了国际版和国内版两个可用区,欢迎有需要的小伙伴申请试用。


关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。