Delta Lake 是一個開源儲存框架,支援使用 Spark、PrestoDB、Flink、Trino 和 Hive 等運算引擎以及 Scala、Java、Rust、Ruby 和 Python 的 API 來建立 Lakehouse 架構。
以下是一些比較流行的 Delta Lake 集成,請參閱 delta.io/integrations 以獲取完整列表:
請參閱最新版本的線上文件。
Delta Standalone 函式庫是一個單節點 Java 函式庫,可用於讀取和寫入 Delta 表。具體來說,該庫提供了 API 來與事務日誌中表的元資料進行交互,實現 Delta 事務日誌協定以實現 Delta Lake 格式的事務保證。
Delta Lake 專案提供了兩種類型的 API。
DataFrameReader
/ Writer
(即spark.read
、 df.write
、 spark.readStream
和df.writeStream
)讀取 Delta 表。這些 API 的選項將在 Delta Lake 的主要版本(例如 1.xx)中保持穩定。Delta Lake 保證所有 Delta Lake 表的向後相容性(即,較新版本的 Delta Lake 將始終能夠讀取舊版本 Delta Lake 寫入的表)。然而,我們保留隨著交易協議引入新功能而中斷前向相容性的權利(即舊版本的 Delta Lake 可能無法讀取新版本產生的表)。
協定中的重大變更透過增加Protocol
操作中的最低讀取器/寫入器版本來指示。
Delta 事務日誌協定文件提供了交易協定的規格。
Delta Lake ACID 保證基於儲存系統的原子性和持久性保證。具體來說,我們要求儲存系統提供以下內容。
有關詳細信息,請參閱有關儲存配置的線上文件。
Delta Lake 確保並發讀寫的可串行化。請參閱 Delta Lake 並發控制以了解更多詳細資訊。
我們使用 GitHub Issues 來追蹤社群報告的問題。您也可以聯繫社區以獲得答案。
我們歡迎對 Delta Lake 做出貢獻。請參閱我們的 CONTRIBUTING.md 以了解更多詳細資訊。
我們也遵守 Delta Lake 行為準則。
Delta Lake 使用 SBT 編譯。
編譯,執行
build/sbt compile
若要產生工件,請執行
build/sbt package
若要執行測試,請執行
build/sbt test
若要執行單一測試套件,請執行
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
若要在單一測試套件中執行單一測試,請執行
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
有關更多命令,請參閱 SBT 文件。
IntelliJ 是開發 Delta Lake 時建議使用的 IDE。將 Delta Lake 匯入為新專案:
~/delta
中。File
> New Project
> Project from Existing Sources...
並選擇~/delta
。Import project from external model
下選擇sbt
。按一下Next
。Project JDK
下指定有效的 Java 1.8
JDK 並選擇使用 SBT shell 進行project reload
和builds
。Finish
。等待 IntelliJ 建立索引後,透過在 IntelliJ 中執行測試套件來驗證您的設定。
DeltaLogSuite
Run 'DeltaLogSuite'
如果您看到以下形式的錯誤
Error:(46, 28) object DeltaSqlBaseParser is not a member of package io.delta.sql.parser
import io.delta.sql.parser.DeltaSqlBaseParser._
...
Error:(91, 22) not found: type DeltaSqlBaseParser
val parser = new DeltaSqlBaseParser(tokenStream)
然後依照下列步驟操作:
build/sbt compile
。File
> Project Structure...
> Modules
> delta-spark
。Source Folders
下刪除所有target
資料夾,例如target/scala-2.12/src_managed/main [generated]
Apply
,然後重新執行測試。 Apache 許可證 2.0,請參閱許可證。
Delta Lake 社區內有兩種溝通媒介。