Databend 2022 年终总结
Databend Labs12月 30, 2022
上一次写总结还是在回顾 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 的新生云数仓,不光要充分发挥「云原生」的力量,带来全新的设计和实现,同时还要在性能和可维护性之间进行平衡。
-
支持 Stage 和 Data 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 进行数据归档的场景。同时也要感谢 茄子快传 、Voyance 、DIGIFINEX 、微盟 等用户对 Databend 的信任和支持。
Databend 生态中的其他项目也得到了用户的认可和喜爱:
-
OpenDAL 目前接管了 sccache 的数据访问层,从而进一步完成对 Firefox CI 的支持。同时 OpenDAL 也为 GreptimeDB 和 deepeth/mars 等数据库和数据分析项目提供数据访问支持。
-
OpenRaft 用于 Azure/Feathr 中的 Feature Registry(数据库,以承载特征元数 据)实现,也在 SAP、火币、美团 的内部项目中得到使用。
-
OpenSrv 的 MySQL 协议实现在 GreptimeDB 和 CeresDB 等多个数据库项目中得到应用。
知识传播
2022 年,Databend 社区还发起了「Data Infra 研究社」,围绕大数据数据架构和前沿技术进行交流。主题涵盖大数据平台、Data Mesh、Modern Data Stack 等,并邀请到 PingCAP 、快手 、多点 、茄子快传 的朋友分享知识和见解,目前在 B 站上一共发布了 9 期内容。
云
云是 Databend 商业化战略的重要部分,也是 Databend 这个开源项目的重要用户。
Databend Cloud 是围绕 Databend 打造的一款易用、低成本、高性能的新一代大数据分析平台,让用户更加专注数据价值的挖掘。Databend Cloud 上线了国际版和国内版两个可用区,欢迎有需要的小伙伴申请试用。
关于 Databend
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
-
Databend 文档:https://docs.databend.cn/
-
Wechat:Databend
订阅我们的新闻简报
及时了解功能发布、产品规划、支持服务和云服务的最新信息!