函式庫 / SDK
delta-io/delta avatar
delta-io/delta

Delta Lake:開放儲存框架的實作

專案速覽:一個開源儲存框架,支援使用 Spark、PrestoDB、Flink、Trino 和 Hive 等運算引擎和 API 來建立 Lakehouse 架構。

8,996 個 Star2,173 個 ForkScalaApache-2.0

秒懂

它是什麼?
delta-io/delta 是 Delta Lake 格式的參考實作,支援透過 Spark、Flink、Trino 等引擎建立 Lakehouse 架構。
適合誰用?
Delta Lake 的 README 將其定位為開放儲存框架,核心是交易日誌協定與多種計算引擎的整合。關於具體的版本發布、完整儲存設定和並行控制細節,README 均指向官方文件,本文未展開驗證。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Scala(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

delta|1|倉庫定位與核心內容

delta-io/delta 是一個以 Scala 編寫的開放原始碼儲存框架,README 將其描述為「能夠建立 Lakehouse 架構」的框架,支援的計算引擎包括 Spark、PrestoDB、Flink、Trino 和 Hive,並提供 Scala、Java、Rust、Ruby 和 Python 的 API。倉庫本身是 delta.io 組織下多個專案之一,同組織還包含 delta-rs、delta-sharing、kafka-delta-ingest 等專案。README 沒有給出 Lakehouse 架構的完整定義,只提供了外部論文連結和官方文件入口。

delta-io/delta 的第 1 個核對點要回到專案本身:它以 Scala 為主要語言,預設分支是 master,素材標示的授權為 Apache-2.0。README 明列的命令、模組名稱、設定鍵與資料格式,才是這一節能確認的範圍;效能上限、部署規模、外部整合與可靠性若沒有文件依據,就只能保留為未知。

實際檢查時,請在隔離環境執行 delta-io/delta README 的安裝或最小範例命令,保存完整終端輸出,並把輸入、產物位置、退出狀態與錯誤訊息分開記錄。對版本相關行為,再以 delta-io/delta 的 GitHub Releases 標記核對;若 README 指向特定檔案或設定,逐一確認該檔案在目前版本存在,不能以相似專案的慣例補足。這些記錄只說明 delta 這一項入口是否按文件運作,不代表其他未測試介面也具備相同結果。

delta-io/delta 第 1 次檢查應保存 README 指定命令的完整輸出,核對輸入格式、產物路徑、退出狀態與錯誤訊息,並標記目前版本是否重現文件描述。未被 delta 文件列出的能力仍不可視為承諾。

delta|2|相容性:API 與資料儲存

README 將 API 分為兩類:直接提供的 Java/Scala/Python API,其中文件化的類別和介面被視為穩定公開 API,其餘可存取的類別和方法屬於內部 API,可能在不同版本間變化;另一類是 Spark 的 DataFrameReader/Writer 及串流讀寫 API,這些選項在 Delta Lake 的一個大版本內保持穩定。資料儲存層面,README 聲稱新版 Delta Lake 始終能讀取舊版寫入的表格,即向後相容;但保留破壞向前相容的權利,即舊版可能無法讀取新版產生的表格。協定變更透過遞增 Protocol 動作中的最低讀寫版本號來標識。

delta-io/delta 的第 2 個核對點要回到專案本身:它以 Scala 為主要語言,預設分支是 master,素材標示的授權為 Apache-2.0。README 明列的命令、模組名稱、設定鍵與資料格式,才是這一節能確認的範圍;效能上限、部署規模、外部整合與可靠性若沒有文件依據,就只能保留為未知。

delta-io/delta 第 2 次檢查應保存 README 指定命令的完整輸出,核對輸入格式、產物路徑、退出狀態與錯誤訊息,並標記目前版本是否重現文件描述。未被 delta 文件列出的能力仍不可視為承諾。

delta|3|交易協定與底層儲存需求

Delta Lake 的 ACID 保證依賴底層儲存系統的原子性和持久性。README 明確列出三項需求:原子可見性,檔案要麼整體可見要麼完全不可見;互斥,同一最終位置只能有一個寫入者建立或重新命名檔案;一致的列表,檔案寫入目錄後,後續所有目錄列表都必須返回該檔案。交易日誌協定規範在 PROTOCOL.md 中,但 README 沒有給出協定本身的內容。

delta-io/delta 的第 3 個核對點要回到專案本身:它以 Scala 為主要語言,預設分支是 master,素材標示的授權為 Apache-2.0。README 明列的命令、模組名稱、設定鍵與資料格式,才是這一節能確認的範圍;效能上限、部署規模、外部整合與可靠性若沒有文件依據,就只能保留為未知。

delta-io/delta 第 3 次檢查應保存 README 指定命令的完整輸出,核對輸入格式、產物路徑、退出狀態與錯誤訊息,並標記目前版本是否重現文件描述。未被 delta 文件列出的能力仍不可視為承諾。

delta|4|並行控制與已知保證

README 宣告 Delta Lake 為並行讀寫提供「可序列化」保證,並指向文件頁面 delta.io/concurrency-control 取得更多細節。但 README 本身沒有解釋實作機制,也沒有說明在何種設定下該保證成立。若需要驗證具體的隔離等級、衝突處理或效能影響,應查閱所引用的官方文件。

delta-io/delta 的第 4 個核對點要回到專案本身:它以 Scala 為主要語言,預設分支是 master,素材標示的授權為 Apache-2.0。README 明列的命令、模組名稱、設定鍵與資料格式,才是這一節能確認的範圍;效能上限、部署規模、外部整合與可靠性若沒有文件依據,就只能保留為未知。

delta-io/delta 第 4 次檢查應保存 README 指定命令的完整輸出,核對輸入格式、產物路徑、退出狀態與錯誤訊息,並標記目前版本是否重現文件描述。未被 delta 文件列出的能力仍不可視為承諾。

delta|5|建置與開發環境

README 說明專案使用 SBT 建置,要求 Java 版本至少為 17。編譯執行 build/sbt compile,產生構件執行 build/sbt package,執行測試執行 build/sbt test。對於 Python 測試,README 要求使用 Conda 建立環境並安裝 JDK 11,然後執行 python3 <delta-root>/python/run-tests.py。IntelliJ 被推薦為 IDE,匯入專案時需指定 Java 11 並產生必要的索引檔案。README 沒有提供針對其他作業系統或建置工具的說明。

delta-io/delta 的第 5 個核對點要回到專案本身:它以 Scala 為主要語言,預設分支是 master,素材標示的授權為 Apache-2.0。README 明列的命令、模組名稱、設定鍵與資料格式,才是這一節能確認的範圍;效能上限、部署規模、外部整合與可靠性若沒有文件依據,就只能保留為未知。

delta|6|整合列表與驗證方向

README 列舉了若干流行的整合:Apache Spark 連接器支援讀寫;Apache Flink 連接器標註為預覽版,僅支援寫入;PrestoDB 連接器唯讀;Trino 連接器支援讀寫;Delta Standalone 允許 Scala 和 Java 專案讀寫;Apache Hive 唯讀;Delta Rust API 提供低層存取並支援 Python 和 Ruby 繫結。這些描述直接來自 README。但具體連接器的版本、安裝方式或生產環境支援情況,README 沒有說明,需要查看各個整合專案的文件或 delta.io/integrations 頁面。

delta-io/delta 的第 6 個核對點要回到專案本身:它以 Scala 為主要語言,預設分支是 master,素材標示的授權為 Apache-2.0。README 明列的命令、模組名稱、設定鍵與資料格式,才是這一節能確認的範圍;效能上限、部署規模、外部整合與可靠性若沒有文件依據,就只能保留為未知。

編輯結論

Delta Lake 的 README 將其定位為開放儲存框架,核心是交易日誌協定與多種計算引擎的整合。關於具體的版本發布、完整儲存設定和並行控制細節,README 均指向官方文件,本文未展開驗證。 對 delta-io/delta 而言,適合能管理 Scala 執行環境並願意依 README 入口核對結果的開發者;不適合把倉庫描述當成跨平台、跨版本或效能保證。先執行 delta-io/delta README 的最小命令,記下 master 版本下的輸入、輸出與錯誤,再依文章列出的檔案和設定鍵決定是否導入。Apache-2.0 對修改、散布或託管方式的限制,也要配合你的交付模式逐項確認。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記