AGENTIC COMMONSAI 產業簡報

繁中EN

主題AI 編程與開發工具出版

返回文章列表

DuckDB 推出 Quack 協定:內嵌資料庫補上主從架構缺口

本頁內容6 個段落
  1. Quack 究竟是什麼
  2. 捨 Arrow Flight SQL 而不用的原因
  3. 實測數據:一次往返帶來的差距
  4. 安全機制與現階段的限制
  5. 後續藍圖:v2.0、DuckLake 和唯讀複本
  6. 資料來源

摘要: DuckDB 於 2026 年 5 月 12 日公布實驗性遠端協定 Quack,讓一個 DuckDB 直接連到另一個,並支援多個行程併發讀寫。它建在 HTTP 上,正式版預定隨秋季 v2.0 交付;官方提醒預設未啟用 SSL,對外服務應搭配反向代理。

DuckDB 團隊在 2026 年 5 月 12 日公布了遠端協定 Quack,讓一個 DuckDB 從此可以直接連往另一個 DuckDB。同一套軟體既扮演 client 也扮演 server,多個行程——無論同機或跨機——得以併發讀寫資料表,誰也不會鎖住誰。協定現階段以實驗性擴充套件的形態問世,正式版本排定跟著 2026 年秋季登場的 v2.0 一起交付。

這正是懸宕多年的缺口。DuckDB 自問世之初便選定 in-process 路線(跟 SQLite 站在同一陣營),憑此在 notebook 與嵌入應用表現極為亮眼;但「好幾個行程要寫同一份資料」始終等不到官方答案。團隊把話講得很直白:他們看重的是使用者體驗,而非在架構路線之爭裡搶下結論。

Quack 究竟是什麼

Quack 沒有自訂傳輸層,直接疊在 HTTP 上。訊息採用全新的 MIME type application/duckdb,內容沿用 DuckDB 內部的序列化原語——與 write-ahead log 出自同一套機制。連線之後,每筆查詢來回一次就夠;結果太大時,改以 fetch 訊息接續取回,並能分派給多個執行緒平行處理。DuckDB-Wasm 對這套協定內建支援,瀏覽器裡的 DuckDB 於是能直接連上 EC2 上的 server。預設 port 為 9494——取其中的 94,呼應 Netscape Navigator 問世的年份。實務上,server 以 CALL quack_serve 啟動,client 則在建立 secret 後下 ATTACH。擴充套件採 MIT 授權,程式碼放在 duckdb/duckdb-quack repo。

捨 Arrow Flight SQL 而不用的原因

理由有兩個。第一,Flight SQL 屬於外部治理的交換格式,一旦採用,協定日後的演進就得遷就別人的時程。第二,它的每筆查詢固定要兩次往返——先送 CommandStatementQuery、再跑 DoGet——對講求小而頻繁的交易來說,round trip 成了明顯拖累。團隊也承認,這類需求早就有跡可循:社群各自補洞——自製 RPC、Flight adapter、MotherDuck 私有協定都有人做,甚至有人用 pg_duckdb 拼出「EleDucken」。

實測數據:一次往返帶來的差距

整表搬移的基準跑在 AWS m8g.2xlarge(8 vCPU、32 GB RAM)上,測試標的是 TPC-H lineitem:搬運 6,000 萬列,Quack 僅需 4.94 秒,經 GizmoSQL 走 Arrow Flight SQL 要 17.40 秒,PostgreSQL 則耗上 158.37 秒;規模降到 1,000 萬列時,三邊分別為 0.89、2.90 與 25.64 秒。單列 INSERT 的中位數結果:執行緒只有 1 條時,Quack 每秒可完成 1,038 筆,Arrow 只有 469,PostgreSQL 為 839;執行緒拉到 8 條時,數字依序是 5,434、1,358 與 4,320。官方替它下的註解是「把資料表塞進 socket 的最快方式」;不過執行緒一超過 8 條,PostgreSQL 的延展性反而領先,癥結是 DuckDB 的併發寫入限制。

安全機制與現階段的限制

server 每次啟動都生成一組隨機 auth token,且預設只監聽 localhost;SSL 並非預設開啟,要對外提供服務時,官方建議在前面架上 nginx 反向代理並搭配 Let’s Encrypt。驗證與授權兩個環節都開放覆寫:token 檢查可以整段換成自訂程式碼,授權 callback 甚至能直接以 SQL macro 撰寫(比方說對接 LDAP)。官方也不諱言,現階段屬於 pre-release 的實驗性產物,repo 裡的 Releases 清單至今空無一物。Hacker News 上的討論串目前已累積 387 點。打算前進生產環境的團隊,把「預設無加密」視為既定前提、據此設計網路邊界,會是比較務實的做法。

後續藍圖:v2.0、DuckLake 和唯讀複本

首個正式版本會跟著秋季的 DuckDB v2.0 一起到位,其後的規劃還包含:DuckLake 整合(由遠端 DuckDB 出任 catalog)、auto-install、更高的吞吐量、可擴充的訊息設計,以及面向唯讀複本的 replication。團隊同時致謝 MotherDuck 的 Boaz Leskes 與 GizmoSQL 的 Philip Moore——早在官方團隊動手之前,後者便已實作出 client-server 版的 DuckDB。下一階段的更多細節,將在 6 月 24 日的 DuckCon #7 上說明。

資料來源

AGENTIC COMMONS由 PHLEGON LABS 經營
分享X電郵
支持我們

相關閱讀

  1. AWS 收購 DuckLabs:DuckDB 母公司加入 Amazon,開源授權不變

    2026 年 8 月 26 日,AWS 宣布收購 DuckDB、DuckLake 與 Quack 背後的阿姆斯特丹公司 DuckLabs;產品維持 MIT 授權,DuckDB 基金會繼續持有 IP,三十多人團隊原地留任。

    AWS

  2. Cloudflare 開源 Void:Vite 全端部署一條龍

    Cloudflare 與 VoidZero 開源 Void 平台、SDK 與 CLI,把 Vite 前端工具鏈延伸到全端部署,並自動供應 Cloudflare 資源。

    Cloudflare

  3. 1M context 變成預設值:DeepSeek-V4 Preview 上線,開發者要改的其實只有一行

    DeepSeek-V4 Preview 開源上線,Pro 與 Flash 兩檔模型把 1M context 變成預設,deepseek-chat 七月退役前 API 只需改 model 名稱。

    LLM