上一次写总结还是在回顾 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
-
支持直接读取查询位于本地 / satge / 远端的数据文件
极致能效比
经过一年来的持续精进,databend 整体进入到了一个新阶段,「存算分离、弹性调度」,能效比大幅提高。
-
在部分场景下可以和 clickhouse 达到接近性能
-
比 elasticsearch 下降 90% 成本,比 clickhouse 下降 30%以上成本
测试:吃一个定心丸
充分、全面的测试是保障数据库管理系统正确性的关键。databend 不光关注性能的极致释放,也同样关心结果的正确性和可重复性。
正确性测试
在这一年里,databend 首先使用 sql logic test 替换掉原有的 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.com
-
databend.cn
关于 databend
databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓m6米乐安卓版下载的解决方案,打造新一代开源 data cloud。
-
databend 文档:https://databend.rs/
-
twitter:https://twitter.com/datafuse_labs
-
slack:https://datafusecloud.slack.com/
-
wechat:databend
-
github :https://github.com/datafuselabs/databend