DuckDB 1.0.0 代号 "Snow Duck"(雪鴨),寓意着 DuckDB 在資料分析領域已經達到了一個新的高度。
2024 年 6 月 3 日,備受矚目的資料分析引擎 DuckDB 迎來了一個重要的裡程碑 ——1.0.0 版本正式釋出。
DuckDB 是高性能的分析型關系資料庫,旨在實作高效的資料分析。它易于安裝,運作速度非常快,并且可以在程序内 (in-process) 運作。
DuckDB 背後的核心思想是保留 SQLite 的簡單性和易用性,同時通過 R/Python 和 RDBMS 之間的快速分析處理和快速資料傳輸進行增強,以處理 OLAP 工作負載。
該項目被命名為 “DuckDB”,因為建立者認為鴨子具有彈性并且可以靠任何東西為生,類似于他們設想的資料庫系統運作方式。
DuckDB 1.0.0 代号為 "Snow Duck"(雪鴨),寓意着 DuckDB 在資料分析領域已經達到了一個新的高度,同時也象征着 DuckDB 團隊對系統穩定性的不懈追求。
DuckDB 項目始于 2018 年,經過近 6 年的不斷打磨,如今已發展成為一個擁有 30 多萬行 C++ 引擎代碼、4.2 萬次代碼送出、解決了 4000 個 issue 的成熟開源項目。
DuckDB 以其卓越的查詢性能和易用性在業界赢得了廣泛贊譽,GitHub 和社交媒體平台上的關注者數以萬計,每月下載下傳量高達數百萬次,僅擴充子產品的下載下傳流量就超過了每天 4TB。現在,就連維基百科也開始認可 DuckDB 的地位。
DuckDB 之是以選擇在此時釋出 1.0.0 版本,是因為團隊意識到,資料管理系統作為應用程式的核心元件,開發者和使用者之間存在着信任的契約。
使用者依賴資料庫提供正确的查詢結果并確定資料安全,而系統開發者需要意識到不能随意破壞使用者應用程式的責任。
DuckDB 緻力于成為人們建構應用程式的可靠基礎,1.0.0 版本的釋出标志着 DuckDB 在存儲格式穩定性、查詢語義一緻性等方面的重大突破,為使用者提供了強有力的穩定性保證。
公告寫道,釋出v1.0.0的主要障礙之一是存儲格式 (storage format.)。DuckDB有自己的定制資料存儲格式。這種格式允許使用者在單個檔案中管理許多(可能非常大的)表,具有完整的事務語義和最先進的壓縮。
但設計新的檔案格式并非沒有挑戰,随着時間的推移,DuckDB 必須對格式進行重大更改。這導緻了 DuckDB 成為次優方案,即每當釋出新的DuckDB版本時,使用舊版本建立的檔案無法與新的DuckDB版本配合使用,必須手動更新。
此問題在2月份的v0.10.0中得到了解決——引入了DuckDB存儲格式的向後相容性和有限的前向相容性。團隊稱此功能現已使用一段時間,沒有出現嚴重問題——他們有信心保證使用DuckDB v1.0.0建立的DuckDB檔案将與未來的DuckDB版本相容。
除了系統穩定性,DuckDB 1.0.0 另一個核心方面是跨版本的穩定性。雖然永遠不會破壞任何人的工作流程可能是不可能的,但他們在今後會更加謹慎地處理面向使用者的變化。特别是,DuckDB計劃專注于為SQL方言以及C API提供穩定性。
展望未來,DuckDB 将持續專注于系統穩定性,同時也計劃豐富 DuckDB 周邊的擴充環境。通過社群貢獻的擴充,DuckDB 有望成為下一個資料革命的基礎,為使用者提供高性能的統一 SQL 接口。
此外,DuckDB 背後有着強大的資金支援和長期發展戰略。
DuckDB Labs 公司目前擁有近 20 人的核心團隊,專注于 DuckDB 的長期戰略發展;而非營利性的 DuckDB 基金會則確定了 DuckDB 在 MIT 開源許可下的長期發展。
P.S. 據稱 DuckDB Labs 公司 CTO Mark 是最主力的程式員,50%的代碼是他一人完成,另外還有13個程式員,1個測試實習生,1個人負責開發者生态,1個人負責教育訓練與文檔。
Reference
https://github.com/duckdb/duckdb/releases/tag/v1.0.0
https://duckdb.org/2024/06/03/announcing-duckdb-100.html