DuckLake 不绑 DuckDB 了,Rust 引擎跑进生产环境
前几天 HN 上有个帖子:DuckDB 官方的 DuckLake 仓库,237 分,38 条评论。分数不算炸,但评论区第一条就是重点——
「很多人不知道,DuckLake 并不要求你用 DuckDB:它只是一份(优秀的)数据湖 spec,恰好能在 DuckDB 里跑。」
跟帖里一半人在惊讶「我一直以为 catalog 就是个 .duckdb 文件」。
这个误解值得单独写一篇。
● ● ●
先说结论
DuckLake 已经是一个独立于 DuckDB 的表格式标准:catalog 能跑在 Postgres、SQLite、MySQL 上,Rust 生态的 DataFusion 实现进了生产,TPC-H 22 条查询跑下来性能不掉,三个规模还都快了 1% 到 6%。
● ● ●
catalog 不是 DuckDB 文件
很多人对 DuckLake 的想象是这样的:数据放在一堆 Parquet 文件里,哪个文件是有效的、哪些被软删了,这些元数据记在一个 DuckDB 文件里。
实际架构两回事。DuckLake 是一份规范:元数据全部放进一个支持事务的关系数据库,数据放 Parquet。查询时不用像 Iceberg 那样先遍历一堆 manifest 文件再决定扫哪些 Parquet,而是一次带索引的 SQL 查找。
DuckLake 主开发 Pedro Holanda(pdet)在帖子里给出了 catalog 数据库的三条硬要求:
支持主键 支持基础类型(INTEGER、VARCHAR、TIMESTAMP) 支持 ACID
满足这三条的数据库都能当 catalog。目前 DuckDB 官方扩展支持 DuckDB、SQLite、Postgres、DuckDB + Quack,MySQL 还处在实验状态。
DuckLake 架构:引擎层任选,catalog 落在事务数据库
● ● ●
HN 帖里 smithclay 提到的 datafusion-ducklake,是个 Rust 原生的 DuckLake 引擎,捐给了 Apache DataFusion Contrib 组织。仓库 2025 年 10 月建的,现在 208 stars,最近一次提交是 2026 年 10 月 10 日,活跃度不低。
真正有意思的我觉得还是它背后的生产故事。做 AI 基础设施的 Hotdata 公司,业务是给每个 AI agent 毫秒级开一个隔离数据库。他们之前自建过专用 catalog,太难维护;评估过 Iceberg,对他们的低延迟场景太重。最后选了 DuckLake,用 Postgres 当 catalog 存储,跑在高并发亚秒级响应的生产流量上。
他们还扩展了逻辑 catalog 能力:一个元数据库里装多个互相独立的 DuckLake catalog,支撑百万级的临时数据库,元数据基础设施和底层 Parquet 都不用复制。
性能他们自己量过,TPC-H 全部 22 条查询,DuckLake 管理的表对比直接扫 Parquet:
注意这些其实是 Hotdata 自报的数字,用的 DataFusion 引擎,场景是他们自己的低延迟负载。不过趋势说得通:两边最终都走 DataFusion 的 Parquet reader,而 DuckLake 天然知道一个快照对应哪些文件,省掉了通用 Parquet 表的元数据发现开销。加上了快照、schema 演进、catalog 管理,代价约等于零。
● ● ●
标准化在加速
另一个信号:MotherDuck 在自己网站上免费送 O'Reilly 的《DuckLake: The Definitive Guide》。HN 帖里一堆人排队领书,中间还出了个小插曲——表单显示提交成功但书没发出去,MotherDuck 联合创始人 Ryan 七个小时前跟帖说已经修好,之前申请的人会补收。
一家商业公司给一个开放表格式出正式教科书并免费发放,意图很明确:把 DuckLake 往「跨引擎标准」的位置推。配合 DuckLake v1.0 今年 4 月宣布生产就绪,时间线是对得上的。
● ● ●
对你意味着什么
如果你的栈里已经有 Parquet 加 Postgres,什么都不用换:加一层 DuckLake catalog,就有了快照、time travel 和 schema 演进。查询引擎用 DuckDB 也行,用 DataFusion 也行,两边的实现都在。
回到 HN 那条热评。半年前说「DuckLake 只是 spec」还是个冷知识,现在 Rust 实现进了生产、教科书免费领,这个冷知识正在变成常识。
你的 Parquet 目录上,用的是哪家的 catalog?评论区聊聊。
● ● ●
参考来源
- 01
HN 帖 "DuckDB Ducklake"(237 分,38 评论):https://news.ycombinator.com/item?id=49996149 - 02
Bringing DuckLake to DataFusion(Hotdata,ducklake.select,2026-07-29):https://ducklake.select/2026/07/29/bringing-ducklake-to-datafusion/ - 03
datafusion-ducklake 仓库:https://github.com/datafusion-contrib/datafusion-ducklake - 04
DuckLake v1.0 生产就绪公告(2026-04-13):https://ducklake.select/2026/04/13/ducklake-v1-0/ - 05
MotherDuck DuckLake 页面(免费书):https://motherduck.com/product/ducklake/