Delta Lakeとは?

Delta Lake は、Databricks 上のレイクハウス内のテーブルの基盤を提供する、最適化されたストレージ レイヤーです。 Delta Lake は、 ACID およびスケーラブルなメタデータ処理のためのファイルベースのトランザクション ログを使用して Parquet データ ファイルを拡張する オープンソース ソフトウェア です。Delta 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 DataFramesを使用していても、SQLを使用していても、デフォルト設定でデータをレイクハウスに保存するだけで、Delta Lakeのすべての利点を得ることができます。

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

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

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

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

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

Delta Lakeは、Databricks上の構造化ストリーミングに最適化されています。Delta Live Tablesは、簡素化されたインフラ展開、拡張されたスケーリング、管理されたデータ依存関係により、ネイティブ機能を拡張します。

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

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

Delta Lakeスキーマの機能強化

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

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

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

Delta Lake設定の構成と確認

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

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

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

Delta Lake 機能の互換性

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

Delta Lake APIドキュメント

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

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

Databricks は、Databricks Runtime の Delta Lake APIsとのバイナリ互換性を保証します。 Databricks Runtime の各バージョンにパッケージ化されている Delta Lake API のバージョンを確認するには、 Databricks Runtime リリース ノート の関連記事の 「System environment」 セクションを参照してください。Python、Scala、Java 用の Delta Lake APIsのドキュメントについては、 OSS Delta Lake ドキュメントを参照してください。