天天看點

DuckDB 1.0震撼釋出:30萬行C++引擎,百萬級下載下傳量!

作者:不秃頭程式員
DuckDB 1.0.0 代号 "Snow Duck"(雪鴨),寓意着 DuckDB 在資料分析領域已經達到了一個新的高度。

2024 年 6 月 3 日,備受矚目的資料分析引擎 DuckDB 迎來了一個重要的裡程碑 ——1.0.0 版本正式釋出。

DuckDB 是高性能的分析型關系資料庫,旨在實作高效的資料分析。它易于安裝,運作速度非常快,并且可以在程序内 (in-process) 運作。

DuckDB 背後的核心思想是保留 SQLite 的簡單性和易用性,同時通過 R/Python 和 RDBMS 之間的快速分析處理和快速資料傳輸進行增強,以處理 OLAP 工作負載。

DuckDB 1.0震撼釋出:30萬行C++引擎,百萬級下載下傳量!

該項目被命名為 “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震撼釋出:30萬行C++引擎,百萬級下載下傳量!

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震撼釋出:30萬行C++引擎,百萬級下載下傳量!

除了系統穩定性,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