如果团队有一批每天都要运行的 SQL 查询,升级数据库就像给行驶中的车换发动机:新版本可能更快,但查询结果、客户端和扩展也可能出现意外变化。DuckDB 2.0 现在正处于这样的换挡时刻。官方已切出 v2.0-cyanoptera 分支,进入 feature freeze——暂缓增加新功能,集中测试和修错,并计划在 2026 年 10 月下半月发布正式版。这个日期仍是项目方预期,并非确定承诺。本文信息均来自 DuckDB 团队官方博客,性能表述也尚无独立验证。
倒计时开始,但还不能上生产
DuckDB 是一种嵌入式数据库:它直接运行在分析程序内部,不必另行维护数据库服务器,主要用于本地数据分析。我们在 8 月 20 日已经梳理过 2.0 预览中的服务端模式、远程下推、VARIANT、新存储格式及兼容风险。这次的进展更实际:功能范围大体锁定,公开测试窗口已经打开。
官方目前提供 Python 和 CLI(命令行工具)两个 alpha 客户端。alpha 是供人提前试用、帮助发现问题的未完成版本,接口和行为仍可能变化。博客示例中的 CLI 为 v2.0.0-alpha39764;Python 客户端则为 1.6.0.dev365,其中包含 duckdb 2.0.0-alpha38615。这些构建号并不相同,也不能当成统一、稳定的 DuckDB 2.0 版本。
项目方明确提醒:这些 alpha 客户端尚未达到生产可用状态。换句话说,现在适合在隔离环境里试跑,不适合直接替换线上版本。
测试重点不只是一条 SQL
DuckDB 的多数外围工作都依赖核心仓库,因此核心分支稳定下来后,客户端和扩展才能跟进。官方称,更多客户端会逐步加入测试;不同客户端所处的运行环境不同,也能扩大问题覆盖面。
扩展是另一处重点。quack 扩展将在 DuckDB 2.0 中从 0.x 升至 1.0。官方宣称,新版可提高客户端与服务端双向查询的吞吐量,并改善兼容性。但博客没有给出基准数据、测试条件或外部验证,因此目前只能视为项目方目标,不能写成已经证实的性能提升。
httpfs、ducklake、iceberg 和 spatial 等核心扩展也已进入 2.0 alpha 测试。社区扩展维护者则可提供 ref_next SHA——也就是指定一份代码版本的标识——提前针对 v2.0-cyanoptera 分支构建和验证。
数据团队现在该测什么?
主版本号升级通常允许引入不兼容改动。对数据团队而言,这段 alpha 期的价值不在于抢先使用,而在于提前发现迁移成本。可以从五类检查入手:
- 用真实但脱敏的数据重跑关键 SQL,核对结果、类型和报错是否变化。
- 对比常用查询的耗时和资源占用,同时记录环境与数据规模,避免只凭体感判断“更快”。
- 检查 Python、CLI 以及其他客户端的连接和调用流程。
- 逐一验证依赖的核心扩展、社区扩展与 C API 等接口。
- 检查既有文件和存储格式能否按原方式读写,并为异常准备可复现的最小案例。
官方预计多数既有工作负载可以正常运行,部分可能明显加快,也有一部分会报错。这仍是项目方预测。对测试者来说,最有价值的恰恰是最后一类:把环境、查询和错误压缩成可复现案例,提交到核心仓库或相应客户端、扩展仓库。
局限与未知
- 正式版只给出了“10 月下半月”的预计窗口,测试结果可能影响进度。
- alpha 仍可能改变接口和行为,当前构建结果不能代表最终版。
- quack 的吞吐量与兼容性提升尚无公开基准数据或独立验证。