理解当下,塑造未来。

搜索
UTC 00:09 · 2026年4月26日星期日 XIANDAI · Xiandai
2026年4月26日 · 更新于 UTC 00:09
科技

开源项目 OpenDuck 发布,将分布式 DuckDB 架构带向大众

全新的开源实现项目 OpenDuck 旨在普及由 MotherDuck 首创的混合执行与差异化存储模型。

Alex Chen

1 分钟阅读

开源项目 OpenDuck 发布,将分布式 DuckDB 架构带向大众
Distributed database architecture

开发者近日推出了 OpenDuck,这是一个全新的开源项目,旨在将分布式 DuckDB 的能力引入各种应用环境。该项目实现了差异化存储与混合执行的架构原理,让 MotherDuck 的云原生特性能够被独立使用并进行二次开发。

OpenDuck 支持用户执行跨本地机器与远程节点的分布式查询。通过自定义的 DuckDB 扩展,系统能够识别查询计划中哪些部分可以在本地运行,哪些部分需要远程资源,并利用“桥接算子”(bridge operators)仅在网络中传输必要的中间结果。

开放协议与灵活的后端支持

该项目采用精简的 gRPC 和 Arrow IPC 协议进行结果流式传输。由于协议是开放的,开发者可以用任何支持 gRPC 和 Arrow 的后端来替换内置的 Rust 网关,从而避免被特定厂商锁定。

OpenDuck 通过“仅追加”层来处理数据,利用 PostgreSQL 管理元数据,并使用对象存储来存储不可变的数据层。这种方法通过快照实现一致性读取,在提供单一写入路径的同时,能够支持大量的并发读取。

尽管 OpenDuck 的灵感源自 MotherDuck 的商业云服务,但它与后者并不具备协议兼容性。该项目作为一个独立的、可自托管的替代方案运行,拥有专属的 “openduck:” 连接方案,并开源实现了 StorageExtension 和 Catalog 接口。

与作为通用数据库协议的 Arrow Flight SQL 不同,OpenDuck 是专为 DuckDB 量身定制的。它直接集成到 DuckDB 的目录(catalog)中,使得远程表可以像本地文件一样参与 Join、CTE(公用表表达式)以及查询优化。

评论