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へのデータの変換と取り込み
Databricksは、レイクハウスへのデータの読み込みを高速化し、簡素化するための多数の製品を提供します。
Delta Live Tables:
取り込みオプションの完全なリストについては、 「Databricks レイクハウスへのデータの取り込み」を参照してください。
Delta Lakeテーブルの更新と変更
Delta Lakeを使用したアトミックトランザクションは、データとメタデータを更新するための多くのオプションを提供します。Databricksでは、テーブルの破損を避けるために、Delta Lakeファイルディレクトリ内のデータファイルやトランザクションログファイルと直接やり取りしないことをお勧めします。
Delta Lake は、マージ操作を使用した更新/挿入をサポートしています。 「 merge を使用した Delta Lake テーブルへの Upsert」を参照してください。
Delta Lake は、フィルターとパーティションに基づいて選択的に上書きするための多数のオプションを提供します。 「 Delta Lake を使用してデータを選択的に上書きする 」を参照してください。
データを書き換えることなく、テーブル スキーマを手動または自動で更新できます。 「Delta Lake テーブル スキーマの更新」を参照してください。
列マッピングを有効にして、データを書き換えずに列の名前を変更したり、列を削除したりします。 「Delta Lake 列マッピングを使用した列の名前変更と削除」を参照してください。
Delta Lakeでの増分ワークロードとストリーミングワークロード
Delta Lakeは、Databricks上の構造化ストリーミングに最適化されています。Delta Live Tablesは、簡素化されたインフラ展開、拡張されたスケーリング、管理されたデータ依存関係により、ネイティブ機能を拡張します。
以前のバージョンのテーブルのクエリを実行する
Deltaテーブルに書き込むたびに、新しいテーブルバージョンが作成されます。トランザクションログを使用して、テーブルへの変更を確認し、以前のテーブルバージョンをクエリできます。「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 ドキュメントを参照してください。