DuckDB 预览其 v2.0 计划,以稳定 Quack 服务器模式

共同创建者 Mark Raasveldt 和 Hannes Muehleisen 计划在面向共享生产工作负载的 2026 年秋季发布中稳定 Quack 并加入 CONNECT。

By · Published

Primary source: DuckDB

Why it matters

DuckDB's founders are expanding the database into shared production workloads, creating a larger support market while putting its defining simplicity under pressure.

An isometric paper-cut render shows a duck icon connecting to a data cylinder and a server tower, representing DuckDB's new server mode.

Mark Raasveldt (@mraasveldt) and Hannes Muehleisen (@hfmuehleisen), the researchers who created DuckDB, previewed the planned DuckDB v2.0 on August 17, outlining a client-server mode intended to expand the analytical database beyond the embedded architecture that defined it. The release, code-named Cyanoptera, is planned for fall 2026 and has no exact launch date. (duckdb.org)

这两位创建 DuckDB 的研究人员在 8 月 17 日预览了计划中的 DuckDB v2.0,概述了一个客户-服务器模式,旨在将该分析型数据库扩展到超越其所定义的嵌入式架构。该发行版代号为 Cyanoptera,计划于 2026 年秋季发布,但尚无确切发布日期。(duckdb.org)

The pair began DuckDB as a research project at Amsterdam's Centrum Wiskunde & Informatica, aiming to put a fast analytical SQL engine directly inside applications and data-science tools. Muehleisen remains a senior researcher at CWI and is CEO of DuckLabs; Raasveldt, DuckLabs' CTO, wrote his doctoral work around the intersection of relational databases, machine learning and analytics. Their original thesis removed the network protocol and operational machinery that came with conventional database servers. (ducklabs.com)

他们在阿姆斯特丹的 Centrum Wiskunde & Informatica 发起了 DuckDB 作为一个研究项目,目标是将一个快速的分析型 SQL 引擎直接嵌入应用程序和数据科学工具中。Muehleisen 仍然是 CWI 的高级研究员并担任 DuckLabs 的 CEO;Raasveldt 是 DuckLabs 的 CTO,他的博士研究围绕关系数据库、机器学习与分析的交叉领域展开。他们最初的论点是去除传统数据库服务器所带来的网络协议和运行机制。(ducklabs.com)

The v2.0 plan bends that thesis in response to how people are actually deploying DuckDB. Users have repeatedly asked for multiple processes and remote clients to share a database, a pattern the in-process design could not handle cleanly. Raasveldt and Muehleisen are addressing that constraint with the Quack extension, which implements DuckDB's native remote protocol, and a planned CONNECT statement that routes queries to another DuckDB process. (duckdb.org)

v2.0 的计划在该论点上做出调整,以响应人们实际部署 DuckDB 的方式。用户多次要求多个进程和远程客户端共享一个数据库,而进程内设计无法干净地处理这种模式。Raasveldt 和 Muehleisen 通过 Quack 扩展 来解决这一限制,该扩展实现了 DuckDB 的原生远程协议,并计划加入 CONNECT 语句以将查询路由到另一个 DuckDB 进程。(duckdb.org)

A concession built into the product

DuckDB's appeal came from avoiding a server. Developers could install a library, open a file or in-memory database, and run analytical SQL within Python, R, JavaScript or another host application. That made DuckDB useful for notebooks, local data processing and software that needed an embedded query engine without a separate service to deploy.

产品内置的让步

DuckDB 的吸引力来自于无需服务器。开发者可以安装一个库,打开一个文件或内存数据库,并在 Python、R、JavaScript 或其他宿主应用中运行分析型 SQL。这使 DuckDB 在笔记本、本地数据处理以及需要嵌入式查询引擎而不想部署独立服务的软件中非常有用。

The same design created a hard boundary around multi-process writes. DuckDB can run concurrent transactions and multiple writer threads within one process, using multiversion concurrency control and optimistic concurrency control. Its current documentation says writes from multiple processes rely on Quack, which remains beta in the available 1.5 series and is expected to mature with v2.0. Conflicting updates to the same rows can still produce transaction errors. (duckdb.org)

同样的设计在多进程写入方面造成了一道严格的界限。DuckDB 能在单一进程内运行并发事务和多个写线程,采用多版本并发控制和乐观并发控制。其当前文档指出,多进程写入依赖于 Quack,该扩展在可用的 1.5 系列中仍处于测试版,并有望在 v2.0 中成熟。对同一行的冲突更新仍可能导致事务错误。(duckdb.org)

Quack places one DuckDB process in charge of the database and lets remote clients attach over the network. A client can issue CONNECT, run SQL on the server and stream results back. The same statement can target PostgreSQL and MySQL, with DuckDB's optimizer pushing SQL to those systems instead of first copying their tables across the network. (duckdb.org)

Quack 将一个 DuckDB 进程置于数据库的管理位置,并允许远程客户端通过网络附加。客户端可以发出 CONNECT,在服务器上运行 SQL 并将结果流回。同一语句也可以针对 PostgreSQL 和 MySQL,DuckDB 的优化器会将 SQL 推送到这些系统,而不是先将它们的表跨网络复制。(duckdb.org)

That changes DuckDB's practical role. A tool that was commonly embedded in a notebook or application process can also sit behind long-running services. The founders are pairing the protocol with expanded metrics, logs and observability, acknowledging that a persistent shared database needs a different operating surface from a local analytical library. (duckdb.org)

这改变了 DuckDB 的实际角色。原本常嵌入在笔记本或应用进程中的工具也可以置于长期运行的服务之后。创始人将该协议与扩展的指标、日志和可观测性功能配套,承认持久的共享数据库在运维面上需要与本地分析库不同的处理方式。(duckdb.org)

The production bet

The server push also fits the economics of DuckLabs, the founder-owned operation that maintains DuckDB and sells commercial support, advisory work and feature prioritization. DuckLabs says it has more than 30 engineers and researchers in Amsterdam and remains independent of venture capital. Its roadmap says revenue comes from support and paid feature work, while the nonprofit DuckDB Foundation governs the open-source project. (ducklabs.com)

面向生产的押注

推动服务器模式也符合 DuckLabs 的经济考量。DuckLabs 是由创始人拥有的组织,维护 DuckDB 并出售商业支持、顾问服务和功能优先级安排。DuckLabs 表示在阿姆斯特丹拥有超过 30 名工程师和研究人员,并保持独立于风投。其路线图 表明收入来自支持和付费功能开发,而非营利的 DuckDB Foundation 管理该开源项目。(ducklabs.com)

More production deployments give DuckLabs a wider market for those services. Networking and multi-user operation move DuckDB closer to workloads where teams pay for reliability guidance, architecture reviews and support agreements. DuckLabs said in May that DuckDB was seeing more than one million downloads a day, though it has not published revenue or customer figures alongside that adoption claim. (ducklabs.com)

更多的生产部署为 DuckLabs 的这些服务提供了更广泛的市场。网络化和多用户运行将 DuckDB 推向那些团队愿意为可靠性指导、架构评审和支持协议付费的工作负载。DuckLabs 在五月表示,DuckDB 的日下载量超过一百万次,但尚未在该采用声明的同时公布收入或客户数据。(ducklabs.com)

The approach differs from handing the project roadmap to outside investors. DuckLabs says the original creators retain ownership, while commercial collaborations fund work on the MIT-licensed core. That structure leaves Raasveldt and Muehleisen responsible for managing a delicate expansion: they can pursue the production use cases users want while keeping the local, low-operations experience that drove DuckDB's adoption. (ducklabs.com)

这种做法不同于将项目路线图交给外部投资者。DuckLabs 表示原始创始人保留所有权,同时通过商业合作为 MIT 许可核心的工作提供资助。这种结构使 Raasveldt 和 Muehleisen 负责管理这一微妙的扩展:他们可以在保持促成 DuckDB 被广泛采用的本地、低运维体验的同时,追求用户希望的生产化用例。(ducklabs.com)

Quack also changes DuckDB's boundary with managed products built around the engine. MotherDuck, a separate commercial service built around DuckDB, already provides managed multi-user operation. DuckDB v2.0 is expected to give users an open-source native route to shared remote operation, while users running Quack themselves will remain responsible for the surrounding deployment and operational work. (duckdb.org)

Quack 也改变了 DuckDB 与围绕该引擎构建的托管产品之间的边界。MotherDuck 是基于 DuckDB 的独立商业服务,已经提供托管的多用户运行。DuckDB v2.0 预计将为用户提供一个开源的原生路径以实现共享远程操作,而自行运行 Quack 的用户仍将负责其周边的部署和运维工作。(duckdb.org)

V2.0 reaches deeper than networking

The planned server mode leads a preview that Raasveldt and Muehleisen say covers more than 10,000 commits since DuckDB v1.5 shipped in March. The v2.0 plan includes a new default storage format, a PEG-based SQL parser, a broadened stable C API, triggers, asynchronous I/O and selected breaking changes. (duckdb.org)

V2.0 的改进不止于网络

计划中的服务器模式引出了一个预览,Raasveldt 和 Muehleisen 表示自 3 月 DuckDB v1.5 发布以来,相关更改已超过 10,000 次提交。v2.0 计划包括新的默认存储格式、基于 PEG 的 SQL 解析器、扩展的稳定 C API、触发器、异步 I/O 以及若干选定的破坏性变更。(duckdb.org)

The stable C API addresses a recurring cost for extension developers. Many DuckDB extensions have depended on an unstable C++ interface and needed rebuilding for each release. V2.0 is designed to let developers compile an extension once against a versioned API and keep the binary working across subsequent DuckDB versions. DuckDB already operates a Community Extensions repository for third-party extensions, but the project says it does not vet submitted code or guarantee that those extensions are safe. (duckdb.org)

稳定的 C API 解决了扩展开发者面临的反复成本。许多 DuckDB 扩展依赖于不稳定的 C++ 接口,并且需要在每次发布时重建。v2.0 的设计允许开发者针对版本化的 API 编译扩展一次,并让二进制在后续的 DuckDB 版本中继续工作。DuckDB 已经运行一个 Community Extensions 仓库用于第三方扩展,但项目方表示不会审查提交的代码,也不能保证这些扩展是安全的。(duckdb.org)

For semi-structured data, the VARIANT type introduced in v1.5 is set to gain direct storage execution, Parquet reading and writing, scan pushdown and new functions for inspecting and filtering nested values. DuckDB stores the detected structure in a columnar representation instead of treating every value as a JSON text blob, an approach aimed at logs and other records whose schemas change over time. (duckdb.org)

对于半结构化数据,v1.5 引入的 VARIANT 类型将获得直接存储执行、Parquet 的读写、扫描下推以及用于检查和过滤嵌套值的新函数。DuckDB 将检测到的结构存储为列式表示,而不是将每个值视为 JSON 文本块,这种方法针对日志和其他模式会随时间变化的记录。(duckdb.org)

Asynchronous I/O targets another growing DuckDB workload: querying Parquet and other files in object storage. DuckDB says the planned I/O layer separates network request concurrency from query-processing threads, allowing more remote reads to proceed simultaneously. The work covers Parquet first, with CSV, DuckDB files and asynchronous Parquet writes also included in the preview. (duckdb.org)

异步 I/O 针对另一个增长中的 DuckDB 工作负载:查询对象存储中的 Parquet 和其他文件。DuckDB 表示计划中的 I/O 层将网络请求并发性与查询处理线程分离,允许更多远程读取同时进行。该工作首先覆盖 Parquet,预览中也包含了 CSV、DuckDB 文件和异步 Parquet 写入。(duckdb.org)

The preview also describes partial aggregate pushdown below joins, reuse of redundant aggregations, a rewritten recursive CTE engine and the ability for aggregations to spill to disk when they outgrow memory. (duckdb.org)

预览还描述了连接下的部分聚合下推、对冗余聚合的重用、重写的递归 CTE 引擎,以及当聚合超出内存时能够将结果溢写到磁盘的能力。(duckdb.org)

The test begins after the preview

DuckDB v2.0 has not shipped. The release calendar lists v1.5.5, released July 22, 2026, as the latest published version and gives v2.0 only a fall window. Preview builds contain much of the announced work, and the maintainers warn that details can change before release.

预览之后才开始测试

DuckDB v2.0 尚未发布。发布日历 将 2026 年 7 月 22 日发布的 v1.5.5 列为最新已发布版本,并仅为 v2.0 预留了秋季窗口。预览构建包含了已宣布工作的很大一部分,维护者警告称细节在发布前可能会发生变化。

Quack 计划从测试版毕业,将承担最大的战略负担。Raasveldt 和 Muehleisen 花了数年时间证明分析型数据库可以以嵌入式方式在另一个进程中运行。V2.0 要求 DuckDB 保持那样小巧、可移植的引擎,同时还要为远程客户端、并发写入者和长期运行的生产工作负载提供服务。服务器功能是由用户压力推动发展起来的,其成败将取决于 DuckDB 是否能够吸收这些运维需求,而不使嵌入式体验变得更加困难。

Reader comments

Conversation for this story loads after sign-in.