alitrack

DuckDB 月下载破 4000 万,2.0 代号 Cinnamon Teal

6 月 24 日,DuckCon #7 在阿姆斯特丹开完了。照例,Hannes Mühleisen 和 Mark Raasveldt 上台做了 "State of the Duck" 开场演讲。演讲的视频和 slides 这两天刚上线。

翻完 slides,几个数字让我停了一下。

● ● ●

40M 月下载

2024 年 8 月,DuckDB 月下载量是 400 万。2025 年 1 月涨到 1000 万。到今年 6 月——4000 万。

18 个月,10 倍。

GitHub stars 同期从 21K 涨到 39K。DB-Engines 排名从关系型数据库第 35 名跳到第 27 名。LinkedIn 关注者翻了一倍到 35K。

这个增速放在任何一个数据库项目上都值得认真看,何况 DuckDB 至今没有一个销售团队。

● ● ●

DuckLake 也在悄悄涨

今年 4 月发布的 DuckLake v1.0(DuckDB 的 lakehouse 格式),三个月下载量从 210 万涨到 300 万。按 Hannes 在 slides 里的说法——"production-ready"。

DuckLake 的思路和 Iceberg、Delta Lake 不一样。它把 lakehouse 的元数据存在数据库里,而不是散落在一堆 JSON 文件里。去年 5 月他们在 manifesto 里把这个想法写得很清楚——"why store metadata in files when you have a database?"

目前 DuckLake 月下载比 v1.0 刚发布时涨了 43%,但离 DuckDB 本身的 4000 万还有很远的距离。有意思的是,虽然 Iceberg 和 Delta 在行业里声量大很多,DuckLake 的增长几乎没有靠 marketing——纯靠 DuckDB 生态的自然溢出。

● ● ●

2.0 叫「Cinnamon Teal」

slides 里有一页专门给 DuckDB 2.0,标题就叫 "DuckDB 2.0 (Cinnamon Teal)"。页面上画了一个全是 INSERT 语句的终端窗口——暗示的重点很明确:写入性能。

不过目前 2.0 的发布时间还没有公开日期。Hannes 之前提过 Quack 协议会在 2.0 达到 production-ready,初步时间窗口是今年秋天。

● ● ●

两个新 SQL 能力:VARIANT 和 TRIGGER

slides 里正式展示了两个 DDL 新特性,之前只在 changelog 里零星出现:

VARIANT 类型——终于可以存半结构化数据了。语法就是 CREATE TABLE t (j VARIANT),插 JSON 进去后可以像其他列一样查询。以前靠 json 扩展或者自己解析,现在原生了。

TRIGGER 支持——CREATE TRIGGER t AFTER INSERT ON target FOR EACH ROW INSERT INTO audit VALUES (NEW.id)。审计、CDC、数据校验这些场景不用再靠应用层实现了。

这两个特性本身不算颠覆性创新(Postgres 和 MySQL 早就有了),但对 DuckDB 的意义不一样:它正在从一个"分析引擎"变成更像"数据库"的东西。

● ● ●

基础设施也在动

DuckDB 主仓库最近两周有两组值得注意的改动:

一个是 QualifiedName 大规模重构——把 catalog/schema/table 的名称处理统一成不可变对象,为后续的多层 schema 铺路。改动涉及几十个 PR,Mytherin 一个人写的。这种量级的内部重构往往是某个大特性的前置工程。

另一个是 Query Profiler 可视化翻新。EXPLAIN ANALYZE 的输出从方块变成了圆角框,耗时极短的操作自动折叠,CLI 里加了语法高亮。对日常调优很实用。

同时,C API v2 和新的可扩展解析器(extensible parser)被设为默认——这两个改动让第三方扩展的开发和维护成本降低了一个数量级。

● ● ●

一个观察

DuckDB 最初是个"嵌入式分析库"。现在它有:

  • 自己的 lakehouse 格式(DuckLake)
  • 自己的 client-server 协议(Quack)
  • 原生的 VARIANT 类型
  • TRIGGER 支持
  • 新的 C API
  • 4000 万月下载

它不太像一个"嵌入式工具"了。更像一个正在成型的数据平台。

2.0 能不能把这个方向坐实,今年秋天就知道了。