開源嵌入式分析資料庫 DuckDB 公布 DuckDB 2.0 重大版本預覽,更新重點包括透過 Quack 實現的伺服器模式轉為穩定功能、完整支援資料庫觸發器、改用自行開發的 SQL 語法解析器,以及升級預設儲存格式。這些調整將使 DuckDB 從主要嵌入應用程式內執行的分析資料庫,進一步支援透過網路提供資料庫服務。
Quack 伺服器模式預計在 2.0 穩定
DuckDB 的設計概念類似 SQLite,使用者可以將它直接嵌入 Python 等應用程式,不必另外架設資料庫伺服器。它同時支援查詢 Parquet、CSV、JSON 及 S3 上的資料,過去主要應用於單一應用程式內的資料分析工作。
DuckDB 2.0 將透過 Quack 提供穩定的伺服器模式。DuckDB 今年 5 月已先行公開 Quack 遠端通訊機制,但目前仍處於預覽階段,預計在 2.0 版本轉為穩定功能。啟用後,一個 DuckDB 實例可以透過網路提供資料,其他 DuckDB 用戶端則能連線存取。
新版本也新增 CONNECT 指令,讓使用者把查詢工作切換至遠端資料庫執行。CONNECT 並不限於連接 DuckDB,SQL 查詢也可以直接交由 PostgreSQL 或 MySQL 執行,再將結果傳回,減少為了分析而先把資料表搬移到本機的需求。
伺服器模式意味著 DuckDB 不再只適合由單一應用程式直接使用,也能讓多個用戶端透過網路存取同一個資料庫服務。不過,來源資料僅指出相關功能與架構變化,尚未提供伺服器模式的效能、併發量或正式部署限制等細節。
完整資料庫觸發器補足服務型資料庫需求
DuckDB 2.0 也將完整加入資料庫觸發器。觸發器能在資料新增、修改等操作發生前或發生後,自動執行預先設定的工作,例如在資料異動時同步留下稽核紀錄。
新版本的觸發器可依每筆資料或每個 SQL 敘述觸發,並能取得修改前與修改後的資料內容。這些能力可支援資料異動追蹤等工作,補足 DuckDB 在長時間運作資料庫服務中常見的資料處理需求。
改用自製 SQL 解析器並升級儲存格式
在底層架構方面,DuckDB 2.0 將更換過去源自 PostgreSQL 的 SQL 語法解析器,改用自行開發的版本。官方更新方向包括改善錯誤訊息,並允許擴充套件加入新的 SQL 語法,為未來的語言功能與擴充能力提供更大的彈性。
預設儲存格式也同步升級至 2.0。新版大型索引不再需要全部常駐記憶體,而是依照使用需求載入,目標是降低大型資料庫在開啟時的記憶體需求。這項變更可能有助於在較有限的記憶體環境中處理大型資料集,但來源未提供具體的記憶體節省幅度或效能數據。
開發者使用比例持續增加
DuckDB 的使用規模目前仍不及傳統主流資料庫,但在開發者社群中的比例持續成長。2025 年 Stack Overflow 開發者調查顯示,DuckDB 的使用比例由前一年的 1.4% 增加至 3.3%。
DuckDB 2.0 將嵌入式分析、遠端資料庫連線、觸發器及可擴充的 SQL 解析能力整合到同一版本。不過目前公布內容仍屬重大版本預覽,Quack 伺服器模式在正式版的實際表現,以及新版功能對既有應用程式與相容性的影響,仍需等待後續版本資訊與實際使用結果確認。
Reference Link : ithome.com.tw




