DuckDB 0.10.0 DBMS 的發布,結合了 SQLite 的緊湊性、以嵌入式庫的形式連接的能力、將資料庫儲存在一個文件中和方便的 CLI 介面等屬性,以及用於執行的工具和優化分析查詢涵蓋了儲存資料的重要部分,例如聚合表的全部內容或合併多個大表。此專案代碼是根據 MIT 許可證分發的。由於儲存格式尚未穩定且版本之間存在變化,開發仍處於形成實驗版本的階段。
DuckDB 提供了 SQL 語言的擴展方言,其中包括處理非常複雜和長時間運行的查詢的附加功能。 它支持使用複雜類型(數組、結構、聯合)以及執行任意和嵌套相關子查詢的能力。 支持同時執行多個查詢,直接從 CSV 和 Parquet 格式的文件執行查詢。 可以從 PostgreSQL DBMS 導入。
除了來自 SQLite 的 shell 代碼外,該項目還使用了來自 PostgreSQL 的解析器、來自 MonetDB 的 Date Math 組件、自己的窗口函數實現(基於線段樹聚合算法)、基於 RE2 庫的正則表達式處理器、自己的查詢優化器、用於管理任務同時執行的 MVCC 機制(多版本並發控制)以及基於 Hyper-Pipelined Query Execut 算法的矢量化查詢執行引擎,它允許您處理大量值一次操作即可完成。
新版本的變化包括:
- 解析 CSV 格式資料的效能得到顯著提升。例如,新版本中讀取 11 萬行的 CSV 檔案的時間從 2.6 秒縮短。最多 1.15 秒,對 CSV 檔案執行「SELECT COUNT(*)」操作最多 1.8 秒。最多 0.3 秒。
- 新增了對固定大小數組的支持,該數組類似於包含固定數量元素的列表(“CREATE TABLE 向量(v DOUBLE [3]);”)。
- 新增了對連接 MySQL、PostgreSQL 和 SQLite DBMS 的支持,可讓您將資料從外部 DBMS 載入到 DuckDB 中並在不同系統之間移動。使用標準表存取外部資料庫。附加 'postgres:dbname=postgresscanner' AS postgres;從 postgres.film LIMIT 5 中選擇標題、發行年份、長度;
- 新增了對「COMMENT ON」表達式的支持,用於保存有關資料庫中物件的註解。
- 新增了對「COPY FROM DATABASE」表達式的支持,用於將所有內容從一個資料庫複製到另一個資料庫。
- 新增了對 EXCEPT 和 INTERSECT 表達式中的「ALL」修飾符的支援。
- 實施類型 »
來源: opennet.ru
