←新闻详情

heise online更新于 10月28日 09:30

DuckDB 2.0.0 LTS 发布:异步 I/O 提速并新增 AI 智能体识别模式

DuckDB 2.0.0: Neues LTS-Release bringt Performanceschub und KI-Agent-Erkennung | heise online

AI 导读

DuckDB 发布 2.0.0 版本(代号 Cinnamon Teal),这是其迄今最大的功能版本,包含自 1.5 以来的近 2 万次提交,作为 LTS 版本支持至少到 2027 年 10 月。新版本为 Parquet、UTF-8 CSV 和自有存储格式引入异步 I/O,并新增命令行 Agent 模式,在识别到 Claude Code、Codex、Cursor 等编码智能体调用时自动输出紧凑 Markdown 表格、提前中止失控查询并以 JSON 报错。开发者称在 TPC-H 测试中该模式使模型需读取的输出从 123600 token 降至 50800 token,降幅 59%,但因系统提示词占输入大头,总成本与耗时变化不大。

推荐理由

AI 评分 58

DuckDB 2.0.0 作为 LTS 版本带来异步 I/O 和面向编码智能体的输出模式,读者可据此判断升级时机与迁移风险。

主题

标签

正文 · AI 翻译

关闭提示

本文也有英文版本。

本文在技术协助下翻译,并在发布前经过编辑审校。

。

DuckDB 现已推出新版本 2.0.0,代号“Cinnamon Teal”。与前代相比,这个数据库工具提供了更成熟的服务器模式,现在可以异步读取数据,并能识别 AI 智能体何时在调用它。同样新增的还有触发器和自有 SQL 解析器。

广告后继续阅读

DuckDB 团队在其博客中写道,10 月 21 日发布的 DuckDB 2.0.0 是迄今为止最大的功能版本,自 DuckDB 1.5 以来已有近 20,000 次提交纳入其中。作为 LTS 版本(长期支持),DuckDB 2.0.0 至少支持到 2027 年 10 月。

更多服务器功能

自 DuckDB 1.5.3 起为人所知的 Quack 协议得到了扩展,通过该协议可以在传统的客户端-服务器设置中运行数据库。开发者表示,在 2.0.0 版本中,该协议运行得更快、更稳定。

此外还新增了 CONNECT 指令。用户可以用一条命令接入远程数据库,并直接切换到该数据库。CONNECT 适用于任何支持远程执行的数据库,除 Quack 外还包括 PostgreSQL 和 MySQL。对于后两者,新的 Remote Pushdown Optimizer 会将查询直接发送到远程服务器,而不是通过网络加载整张表。在 CLI 中,新参数 -serve 和 -connect 分别用于启动 Quack 服务器或直接连接到某个服务器。

通过异步 I/O 提升性能

DuckDB 2.0.0 为 Parquet、UTF-8 未压缩 CSV 文件及其自有存储格式带来了异步 I/O。I/O 层现在独立于查询处理层进行扩展,在后台发起读取操作,并同时保持多个请求打开。这应能在读取远程数据时带来显著更高的并行性,并使对 s3:// 等对象存储的查询大幅提速。DuckLabs 在另一篇博客文章中详细介绍了 DuckDB 中异步 I/O 的工作原理。

广告后继续阅读

用于 JSON 等半结构化数据的 VARIANT 数据类型在 DuckDB 1.5 中就已存在,现在已完全集成。DuckDB 现在会将数据中的共同结构拆分为列(“Shredding”),从而使其更易于压缩、处理更快。

AI 智能体识别

命令行中新增了智能体模式。一旦数据库识别到 Claude Code、Codex 或 Cursor 等编码智能体在调用它,就会自动切换到该模式。此时 DuckDB 会输出紧凑的 Markdown 表格,提示结果被截断,提前中止失控的查询,并以 JSON 报告错误。长时间运行的查询会事先公布其预期开销。通过参数 -agent 和 -no-agent 也可以手动开启或关闭该模式。

DuckDB 开发者表示,在 TPC-H 测试中,借助智能体模式,AI 模型需要读取的 DuckDB 输出量减少了 59%,从 123,600 个 token 降至 50,800 个 token。为此,Claude Code 在一个缩放因子为 100 的数据集上回答了 22 个基准问题,每个问题分别在开启和关闭智能体模式下各运行三次。不过,这对总成本和运行时间几乎没有影响,因为智能体的系统提示词占了输入的大部分。节省的 token 仅相当于总输入的约 0.5%。

SQL 触发器和新解析器

触发器现在已成为 DuckDB 2.0.0 的 SQL 工具之一。借助它们,可以构建审计表或逐步更新的物化视图等。与此同时,DuckDB 用自有的基于 PEG 的解析器取代了此前使用的、源自 PostgreSQL 的 SQL 解析器,后者自 1.5 版本起就已作为可选功能提供。

扩展可以通过该解析器添加新的 SQL 语法,错误消息会显示查询中的确切位置。同样集成的还有自有扩展仓库,组织可通过它提供自己签名的扩展,以及经过修订的 C API v2,但后者尚未被视为稳定。

迁移到 2.0 版本

由于 DuckDB 2.0.0 只带来少量破坏性变更,对大多数用户来说迁移应该不会复杂。不过,较旧的 DuckDB 版本无法读取用 2.0 版本写入的数据库文件。DuckDB 开发者建议先在影子系统上测试 2.0.0 版本,然后再切换生产环境。在 DuckDB 上运行关键业务工作负载的用户可以考虑等待首个补丁版本,该版本计划于 11 月 18 日发布。

上一个 LTS 版本 1.4 将支持到 2026 年 11 月 17 日,1.5 版本支持到 2027 年 3 月。所有日期汇总在发布日历中。DuckDB 2.0.0 的完整发布说明可在 GitHub 上查看。团队将在后续文章中介绍其他较小的新功能。新版本以桂红鸭(学名 Spatula cyanoptera)命名,这是一种分布于北美和南美西部、羽毛呈红褐色的鸭类。

(mro)

来源

heise online