DuckDB 開發商 DuckLabs 併入 AWS 維持開源,ClickHouse 官方 .NET 驅動程式同日升上 1.3 版強化型別安全
DuckDB Blog · 2026-08-26
背景:DuckLabs 與 DuckDB 生態系
DuckLabs 前身為 DuckDB Labs,是 DuckDB 核心維護者所屬的公司,已於 2026 年 5 月 27 日更名為 DuckLabs,以反映其同時維護 DuckDB、DuckLake、Quack 等多個專案(合稱 DuckStack)的事實。DuckLabs 與雲端服務商 MotherDuck 是兩家不同的公司,MotherDuck 是獨立募資的雲端資料平台,DuckLabs 持有 MotherDuck 部分股權並為其提供開發服務,雙方長期合作但業務範疇並不重疊。這次公告的主角是 DuckLabs,不涉及 MotherDuck 的股權或業務。
核心改動:併入 AWS
DuckDB 官方部落格與DuckLabs 官方公告於 2026 年 8 月 26 日同步發布,宣布 DuckLabs 將加入 Amazon Web Services,交易預計於 2026 年 9 月初生效。公告由共同創辦人 Mark Raasveldt 與 Hannes Mühleisen 具名發表,DuckDB、DuckLake、Quack 等專案的原始碼將繼續以 MIT 授權維持開源,路線圖、授權模式與治理方式均不變動。DuckLabs 員工(包含兩位創辦人)將轉任 AWS 員工,並持續留守阿姆斯特丹辦公室,負責專案的技術方向。DuckDB Foundation 另將成立技術諮詢委員會,蒐集社群對路線圖的意見。
影響範圍
在此之前,DuckLabs 主要仰賴商業支援合約與客製功能開發案維持營運。併入 AWS 後,團隊不再需要依賴這類商業合約作為主要收入來源,理論上能把更多資源投入開源專案本身而非商業案件。兩篇公告均未提及 DuckDB 授權條款或核心 API 有任何變動,也未涉及 MotherDuck 的股權結構調整。
ClickHouse .NET 驅動程式:從 1.0 到 1.3
ClickHouse 官方部落格於 2026 年 8 月 26 日發布長文,回顧官方 .NET 驅動程式自 2026 年 2 月 1.0 版發布以來、到目前 1.3 版的演進。最大改動是從手動的物件陣列參數組裝,轉為型別安全的 POCO(Plain Old CLR Object)工作流程。在 1.0 版,每次寫入都要重新列出欄位順序,一旦欄位排列與型別不一致,就會在執行期拋出序列化錯誤。
POCO 工作流程範例
新版驅動程式改為以單一註冊呼叫同時支援讀取與寫入,並在編譯期完成型別檢查:
client.RegisterPocoType<SensorReading>();
long rows = await client.InsertBinaryAsync("sensors", readings);
這項改動把欄位對應的檢查從執行期提前到編譯期,減少因欄位順序或型別不符造成的執行期例外。
可擴充的序列化介面
驅動程式在後續版本陸續加入三個可插拔的擴充點:
IParameterTypeResolver(1.2版引入):控制 CLR 型別對應到 ClickHouse 型別的推斷邏輯IParameterFormatter(1.3版引入):決定參數在網路傳輸格式上的表示方式IReadValueConverter(1.3版引入):在查詢結果回傳時進行數值正規化
這些介面在預設未啟用時不影響效能,只有開發者主動客製化時才會介入序列化流程。
型別支援與效能
除了序列化擴充點,1.1 至 1.3 版也擴大了型別覆蓋範圍,包括多維陣列(含不規則陣列與矩形陣列)、二進位寫入時支援 ValueTuple,以及透過伺服器端 Identifier 參數安全綁定資料表與欄位名稱。效能方面,讀取緩衝區預設大小從 512 KiB 降到 8 KiB,記憶體配置大幅減少,搭配結構描述快取與預先編譯的屬性存取器,降低查詢期間的反射開銷。
生態系整合與後續規劃
這次更新也正式納入官方整合套件,涵蓋 Entity Framework Core(LINQ 轉譯、遷移與批次寫入)、Serilog 結構化紀錄接收器、.NET Aspire 容器資源與健康檢查,以及 Semantic Kernel 向量資料庫連接器。官方文件同時公開後續路線圖,1.4 版將聚焦效能(壓縮外掛與免裝箱的 POCO 操作),1.5 版則計畫實作原生 TCP 通訊協定以直接傳輸欄式資料。