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

Databricks の Delta Lake とは何ですか?

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

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 Lake テーブルです。Apache Spark DataFrames と SQL のどちらを使用している場合でも、デフォルト設定でデータをレイクハウスに保存するだけで、Delta Lake のすべてのメリットを享受できます。

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

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

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

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

インジェスト オプションの完全な一覧については、「Lakeflowコネクトの標準コネクタ」を参照してください。

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

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

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

Delta Lake は、Databricks 上の構造化ストリーミング向けに最適化されています。Lakeflow Spark宣言型パイプラインは、簡素化されたインフラストラクチャ展開、強化されたスケーリング、および管理されたデータ依存関係によってネイティブ機能を拡張します。

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

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

Delta Lake スキーマの機能強化

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

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

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

Delta Lake 設定の構成と確認

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

Delta LakeおよびLakeflow Spark使用したデータパイプライン 宣言型パイプライン

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

Delta Lake 機能の互換性

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

Delta Lake API のドキュメント

Delta Lake テーブルに対するほとんどの読み取りおよび書き込み操作では、Spark SQL または Apache Spark DataFrame APIを使用できます。

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

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