Delta Lake は、Spark、PrestoDB、Flink、Trino、Hive などのコンピューティング エンジンと、Scala、Java、Rust、Ruby、Python の API を備えた Lakehouse アーキテクチャの構築を可能にするオープンソースのストレージ フレームワークです。
以下は、最も人気のある Delta Lake 統合の一部です。完全なリストについては、delta.io/integrations を参照してください。
最新リリースについては、オンライン ドキュメントを参照してください。
デルタ スタンドアロン ライブラリは、デルタ テーブルの読み取りおよび書き込みに使用できる単一ノードの Java ライブラリです。具体的には、このライブラリは、トランザクション ログ内のテーブルのメタデータと対話するための API を提供し、Delta Lake 形式のトランザクション保証を実現するために Delta Transaction Log Protocol を実装します。
Delta Lake プロジェクトが提供する API は 2 種類あります。
DataFrameReader
/ Writer
(つまり、 spark.read
、 df.write
、 spark.readStream
およびdf.writeStream
) を通じてデルタ テーブルを読み取ることができます。これらの API のオプションは、Delta Lake のメジャー リリース (1.xx など) 内で安定したままになります。Delta Lake は、すべての Delta Lake テーブルの下位互換性を保証します (つまり、新しいバージョンの Delta Lake は、古いバージョンの Delta Lake によって書き込まれたテーブルを常に読み取ることができます)。ただし、トランザクション プロトコルに新機能が導入されると、当社は互換性を打ち破る権利を留保します (つまり、古いバージョンの Delta Lake は、新しいバージョンで作成されたテーブルを読み取れない可能性があります)。
プロトコルの重大な変更は、 Protocol
アクションでリーダー/ライターの最小バージョンをインクリメントすることで示されます。
デルタ トランザクション ログ プロトコルの文書には、トランザクション プロトコルの仕様が記載されています。
Delta Lake ACID 保証は、ストレージ システムのアトミック性と耐久性の保証を前提としています。具体的には、ストレージ システムに以下を提供することを要求します。
詳細については、ストレージ構成に関するオンライン ドキュメントを参照してください。
Delta Lake は、同時読み取りと書き込みのシリアル化可能性を保証します。詳細については、「Delta Lake 同時実行制御」を参照してください。
私たちは GitHub Issues を使用して、コミュニティから報告された問題を追跡します。コミュニティに連絡して答えを得ることができます。
デルタ湖への貢献を歓迎します。詳細については、CONTRIBUTING.md を参照してください。
また、デルタ レイクの行動規範も遵守します。
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 を指定し、 project reload
とbuilds
に SBT シェルを使用することを選択します。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 License 2.0、「ライセンス」を参照してください。
デルタ レイク コミュニティ内には 2 つのコミュニケーション媒体があります。