メインコンテンツまでスキップ

Delta Lakeとは?

Delta Lake は、Databricks のレイクハウスのテーブルの基盤を提供する最適化されたストレージ レイヤーです。 は、 データACID ファイルをファイルベースのトランザクション ログで拡張し 、トランザクション とスケーラブルなメタデータ処理を実現するオープンソースDelta Lake ソフトウェア 。ParquetDelta Lake は Apache Spark APIsと完全に互換性があり、構造化ストリーミングとの緊密な統合のために開発されたため、バッチ操作とストリーミング操作の両方でデータの単一コピーを簡単に使用でき、大規模な増分処理を提供できます。

Delta Lake は、 Databricksに対するすべての操作のデフォルト形式です。 特に指定がない限り、Databricks 上のすべてのテーブルは Delta テーブルです。 DatabricksはもともとDelta Lakeプロトコルを開発し、オープンソースプロジェクトに積極的に貢献し続けています。 Databricks プラットフォームの最適化と製品の多くは、Apache Spark と Delta Lake によって提供される保証に基づいて構築されています。 Databricksの最適化に関する情報については、Databricksの最適化に関する推奨事項を参照してください。

Delta Lake SQL コマンドのリファレンス情報については、「 Delta Lake ステートメント」を参照してください。

Delta Lakeトランザクションログには、どのシステムでもログを読み取るために使用できる、明確に定義されたオープンプロトコルがあります。「Deltaトランザクションログプロトコル」を参照してください。

Delta Lake の使用を開始する

Databricks上のすべてのテーブルは、デフォルトによってDeltaテーブルです。Apache Spark データフレーム と SQL のどちらを使用している場合でも、デフォルト設定でデータをレイクハウスに保存するだけで、Delta Lake のすべてのメリットを享受できます。

テーブルの作成、データの読み取り、書き込み、更新などの基本的な Delta Lake 操作の例については、「 チュートリアル: Delta Lake」を参照してください。

Databricks には、 Delta Lake のベスト プラクティスに関する多くの推奨事項があります。

Delta Lake へのデータの変換と取り込み

Databricksは、レイクハウスへのデータの読み込みを高速化し、簡素化するための多数の製品を提供します。

インジェスト オプションの完全な一覧については、「 Databricks レイクハウスにデータを取り込む」を参照してください。

Delta Lake テーブルの更新と変更

Delta Lakeを使用したアトミックトランザクションは、データとメタデータを更新するための多くのオプションを提供します。Databricksでは、テーブルの破損を避けるために、Delta Lakeファイルディレクトリ内のデータファイルやトランザクションログファイルと直接やり取りしないことをお勧めします。

Delta Lake での増分ワークロードとストリーミング ワークロード

Delta Lake は、Databricks での構造化ストリーミング用に最適化されています。DLT は、インフラストラクチャのデプロイの簡素化、スケーリングの強化、データの依存関係の管理により、ネイティブ機能を拡張します。

以前のバージョンのテーブルをクエリする

Delta テーブルに書き込むたびに、新しいテーブル バージョンが作成されます。 トランザクションログを使用して、テーブルに対する変更を確認し、以前のテーブルバージョンをクエリできます。 「Delta Lake テーブル履歴の操作」を参照してください。

Delta Lake スキーマの機能強化

Delta Lakeは書き込み時にスキーマを検証し、テーブルに書き込まれたすべてのデータが設定した要件と一致することを確認します。

Delta Lake を使用したファイルの管理とデータのインデックス作成

Databricksは、データファイルのサイズと履歴に保持されるテーブルバージョンの数に影響を与える、Delta Lakeの多くの既定のパラメーターを設定します。Delta Lake は、メタデータ解析と物理データレイアウトを組み合わせて使用し、クエリを満たすためにスキャンされるファイルの数を減らします。

Delta Lake 設定の構成と確認

Databricksは、Delta Lakeテーブルのすべてのデータとメタデータをクラウドオブジェクトストレージに保存します。多くの構成は、テーブルレベルまたはSparkセッション内で設定できます。Deltaテーブルの詳細を確認して、どのようなオプションが構成されているかを確認できます。

Delta LakeとDLTを使用したデータパイプライン

Databricks は、 メダリオンアーキテクチャ を活用して、データのクリーニングとエンリッチメントを行う際に、一連のテーブルを通じてデータを処理することをユーザーに推奨しています。DLTは 、最適化された実行と自動化されたインフラストラクチャのデプロイとスケーリングにより、ETLワークロードを簡素化します。

Delta Lake 機能の互換性

Delta Lake のすべての機能が Databricks Runtime のすべてのバージョンに含まれているわけではありません。 Delta Lake のバージョン管理に関する情報については、「Databricks で Delta Lake 機能の互換性を管理する方法」を参照してください。

Delta Lake API のドキュメント

DeltaSpark SQLテーブルに対するほとんどの読み取りおよび書き込み操作では、 またはApache SparkデータフレームAPIs を使用できます。

Delta Lake 固有の SQL ステートメントについては、「 Delta Lake ステートメント」を参照してください。

DatabricksDelta LakeAPIsは、 のDatabricks Runtime とのバイナリ互換性を保証します。Delta LakeAPI各Databricks Runtime バージョンにパッケージ化されている バージョンを表示するには、Databricks Runtime リリースノート の関連記事の 「システム環境 」セクションを参照してください。Delta LakeAPIsPython、Scala 、および のJava のドキュメントについては、OSSDelta Lake のドキュメント を参照してください。