返回
RSS InfoQ (AI/数据工程) AI 逐段翻译 发布 2026-08-25 14:06 收录于 08-26

DuckDB v2.0预览:内置客户端/服务器模式走向分布式网络能力

DataHot 速览

DuckDB Labs发布了DuckDB v2.0预览版,代号Cyanoptera,包含超过10000次提交,引入客户端/服务器模式,支持网络连接,并改进扩展可移植性、数据类型和解析器,还优化了异步I/O和存储。GA预计2026年秋季。

为什么值得关注:DuckDB从嵌入式分析引擎向分布式网络架构演进,对数据平台架构和数据工程师的技术选型有直接影响。

译文

AI 逐段翻译

DuckDB Labs 发布了DuckDB v2.0 的官方预览版,代号为“Cyanoptera”。自 1.5 版本以来,这标志着超过 10000 次提交,是该开源分析引擎的一次重大架构演进。DuckDB 以其快速、嵌入式、进程内列式数据库而闻名,而 v2.0 将其操作范围扩展到分布式拓扑,并稳定了其插件生态系统,同时不牺牲其单二进制文件的简单性。通用版本计划于秋季发布。

此版本的核心是原生客户端/服务器模式,由quack 协议扩展和新的 CONNECT SQL 语句驱动。开发人员无需直接嵌入引擎或依赖冗长的查询包装器,任何 DuckDB 实例现在都可以作为守护进程运行,并通过网络接受连接。用户可以附加远程 DuckDB 端点或外部关系引擎(如 PostgreSQL 和 MySQL),通过下推优化直接路由查询:

CALL quack_serve(token = 'my_token');

ATTACH 'quack:server.example.com' AS qk (TOKEN 'my_token');
CONNECT qk;
SELECT count(*) FROM events;
DISCONNECT;

此网络层依赖于 DuckDB 底层多版本并发控制(MVCC)和多连接事务隔离。为了支持长时间运行的多租户服务器部署,该版本还重新设计了可观测性和指标子系统。

对生态系统同样重要的是扩展可移植性的全面改革。以前,扩展是针对不稳定的内部 C++ API 编译的,迫使开发人员为每个 DuckDB 版本重建二进制文件。2.0 版本引入了一个版本化的 C API,具有明确的 YAML 定义规范和稳定的应用程序二进制接口(ABI)保证。一个高级 C++ 抽象层和即将推出的 Rust 绑定允许开发人员一次构建扩展,并在次要和补丁更新中运行。此外,组织不再局限于官方仓库;v2.0 允许团队定义、加密固定和自行托管自定义扩展仓库:

SET allow_extension_repositories = 'allowed';
CREATE EXTENSION REPOSITORY private_repo FROM 'https://extensions.corp.internal';
INSTALL analytics_toolkit FROM private_repo;
LOAD private_repo/analytics_toolkit;

除了服务器功能和扩展管理之外,该版本还使 VARIANT 类型完全成熟。引擎现在检测半结构化模式,并将类似 JSON 的数据从磁盘分解为列式表示到Parquet,从而无需显式模式即可扫描嵌套字段。

该分析引擎还将其传统的 PostgreSQL 派生解析器替换为自定义的基于 PEG 的语法,允许扩展注册自定义 SQL 语法,同时为诊断提供准确的源位置。其他 SQL 新增功能包括带有转换表的原生 BEFORE 和 AFTER 触发器、用于向量工作负载的 APPROX NEAREST 相似性连接,以及公共表表达式(CTE)中的 DML 表达式。

引擎性能已通过跨云对象存储(如 Amazon S3)的异步 I/O、分区感知查询规划以及通过默认 DICT_FSST 字典优化的字符串压缩得到提升。存储格式 v2.0 引入了惰性列元数据加载和自适应基数树(ART)索引的增量检查点真空清理。此外,DuckDB 已与外部 ICU 依赖解耦,用时区排序规则逻辑替换为紧凑的原生 IANA 支持子系统,减少了二进制占用空间,同时加速了时间转换。

Hacker News Reddit 的社区讨论显示开发人员对 DuckDB v2.0 的强烈热情,聚焦于实际运营收益和生态系统权衡。

在 Hacker News 上,从业者称赞 DuckDB 能够通过在消费级硬件上执行超内存的分析工作负载(out-of-core),大幅降低云基础设施成本。几位工程师强调使用 DuckDB-WASM 和 Parquet 直接在浏览器中驱动仪表板,无需后端 REST 层,而其他人则欢迎新的异步 I/O 引擎,作为提供 HTTP 查询流量和运行实时事件流管道的有效方式。在与 SQLite 的比较中,评论者强调 DuckDB 丰富的类型系统和专门的列式引擎是长期数据分析的关键优势。

与此同时,在 Reddit 的r/programming上,讨论集中在澄清 DuckDB 对 Web 应用程序开发人员的架构角色。用户强调 DuckDB 不是 PostgreSQL 的事务性 OLTP 替代品,而是一个敏捷、轻量级的 OLAP 主力,专为批量报告和跨 S3 中远程 CSV 和 Parquet 文件的临时 SQL 执行而构建。开发人员还表示赞赏即将推出的稳定 C ABI,指出它解决了与非 C++ 语言绑定(如 Go 的 CGO 开销和并发监控)的长期痛点。

有兴趣在 2026 年秋季正式发布之前测试新功能的开发人员,可以找到DuckDB v2.0 预览二进制文件和每晚构建包,适用于主要平台和语言客户端。

这篇内容对你有用吗?

反馈只用于改善内容筛选,不等同于收藏

分享这条资讯
分享海报
保存图片
iOS 也可以长按图片保存