DuckDB Quack基于 HTTP的客户端 / 服务器协议面向多用户分析

在保持 DuckDB 轻量级工作流和 SQL 兼容性的同时,Quack 能让数据集共享、并发用户支持、远程运行分析,以及在不切换到更传统、更重量级数据库系统的情况下构建生产级数据服务变得更加容易。与现有方案相比,Quack 被设计得更易用,同时显著提升性能。

Quack 允许多个应用通过标准 HTTP 连接同时访问同一个 DuckDB 数据库,并使用 DuckDB 的原生数据格式。DuckDB 表示,这种方式在传输大规模数据集时,比 Arrow Flight 快约 3.5 倍,并且显著快于 PostgreSQL。

DuckDB 是在宽松 MIT 许可证下发布的流行开源分析型数据库,专为在本地文件、应用或笔记本环境中对大规模数据进行高速 SQL 查询而设计。它类似 SQLite,是一种进程内数据库,可以直接嵌入应用中运行,而无需单独的数据库服务器。在介绍 Quack 时,团队写道:

有了 Quack,DuckDB 现在可以应用于更广泛的新场景,其中"集中状态管理"比"极致化的本地查询"更为重要。随着数据湖的兴起,我们也已经认识到数据并不总是本地存在。说到数据湖,Quack 还将集成进 DuckLake,使 DuckDB 本身成为一个可远程访问的 Catalog 服务器。

DuckDB 选择不采用 Arrow Flight SQL(一种使用 Arrow 内存格式与 Flight RPC 框架与 SQL 数据库交互的协议),原因在于他们希望完全掌控数据传输方式以及协议演进方向。他们同时声称 Quack 在小查询场景下更高效,www.iissbbs.com因为它可以通过一次网络往返完成查询发送与结果返回。团队补充道:

我们认为,为了持续在数据系统领域进行创新,我们不能让自己受制于由外部控制的数据格式。

Hacker News 社区的反应整体较为积极,开发者普遍认为这是在保持 DuckDB 轻量和易部署的同时,迈向共享、多用户分析工作流的重要一步。Lattice Engineering 的管理负责人 Ryan Glover 表示:

这太棒了。我一直在考虑在公司内部应用框架中使用 DuckDB,这次更新直接解决了"但如何进行横向扩展"的问题。向 DuckDB 团队致敬。我也很喜欢协议名称"Quack"。

Reddit 用户 kvlonge 补充道:

能够在服务器上启动 DuckDB,并让用户像使用"普通数据库"一样远程访问它,这将是一个巨大的能力提升。

DuckDB 计划将 Quack 与 DuckLake 集成,进一步提升性能,并在 2026 年晚些时候随 DuckDB 2.0 发布生产级版本。团队也在开发对远程数据库的更好支持、更高的事务吞吐能力、可定制协议扩展以及复制功能。

在《从 DeepSeek 到 Quack:当分布式 DuckDB 的梦想开始变得真实》一文中,Amir Sefati 强调了 DuckDB 实例之间互相通信的优势:

当你将这一点与对象存储、DuckLake、Parquet 和向量数据库结合起来时,就形成了一种面向现代 AI 与数据工程的非常务实的架构。这不是因为它时髦,而是因为它减少了不必要的复杂性。

在讨论更多使用场景时,例如浏览器标签页直接与 DuckDB 服务器通信,或在 notebook 之间进行查询转发,MotherDuck(一家基于开源 DuckDB 查询引擎构建的云数据仓库公司)www.ntjrcw.com的数据工程师与开发者倡导者 Mehdi Ouazza 总结道:

我们是不是终于不再提"DuckDB 不支持多写入"的说法了?现在已经有很多方案了,只取决于你如何拆解和组合。

目前,该新协议需要在 DuckDB 实例中启用 Quack 扩展才能使用。最近发布的 DuckDB v1.5.3 已支持 Quack 作为可自动加载的核心扩展,并作为 DuckLake catalog 使用。

DuckDB 数据库的创建者、DuckDB Labs 的 CEO Hannes Mühleisen 此前在 QCon 上分享过关于基于进程内分析数据管理(in-process analytical data management with DuckDB)的演讲。

相关推荐
爱写代码的森9 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
GitLqr10 小时前
玩转 WebSocket:从原理到 Flutter 实战
websocket·网络协议·flutter
微硬创新12 小时前
耐达讯自动化 CC-Link IE 转 PROFINET网关在污水厂智能化升级实战
人工智能·物联网·网络协议·自动化·信息与通信
HLC++13 小时前
Linux的进程间通信
android·linux·服务器
白露与泡影14 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙15 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码15 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
TlSfoward17 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
张小姐的猫18 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯18 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信