What are all the Delta things in Databricks? | Databricks on AWS [2023/3/17時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
本書では、Databricksにおいて全体的にDeltaとブランドされているテクノロジーを紹介します。Deltaは、Delta Lakeオープンソースプロジェクトの、あるいはそれに関連するテクノロジーを指します。
本書では以下に回答します:
- DatabricksにおけるDeltaテクノロジーとは何か?
- それらは何をするのか?あるいは、何に使われるのか?
- それぞれはどのように他のものと関連するのか?
Delta的なものは何に使われるのか?
Deltaとは、Databricksレイクハウスプラットフォームにおいてデータやテーブルを格納する基盤であるDelta Lakeによって導入された用語です。Delta Lakeは、ParquetデータファイルをACIDトランザクションのためのファイルベースのトランザクションログやスケーラブルなメタデータ管理で拡張することで、ビッグデータに対するトランザクション型のリアルタイムあるいはバッチ処理のための、統合データ管理システムとして考え出されました。
Delta Lake: レイクハウスにおけるオープンソースのデータ管理
Delta Lakeは、クラウドストレージ(AWS S3、Azureストレージ、GCS)に格納されているデータの上にトランザクション型のストレージレイヤーを追加することで、データレイクに信頼性をもたらすオープンソースのストレージレイヤーです。これは、ACIDトランザクション、データのバージョン管理、ロールバック機能を実現します。同じ方法でバッチデータとストリーミングデータを取り扱うことができます。
Deltaテーブルはこのストレージレイヤー上に構築され、テーブルの抽象化を提供し、SQLやデータフレームAPIを用いて大規模な構造化データの取り扱いを簡単なものにします。
Deltaテーブル: デフォルトのデータテーブルアーキテクチャ
Deltaテーブルは、Databricksのデフォルトデータフォーマットであり、Delta Lakeオープンソースフレームワークの機能です。Deltaテーブルは通常、ストリーミングあるいは大規模バッチでデータが取り込まれるデータレイクで使用されます。
以下をご覧ください:
- Delta Lake quickstart: Create a table
- Updating and modifying Delta Lake tables
- DeltaTable class: Deltaテーブルをプログラムから操作するためのメインクラス。
Delta Live Tables: データパイプライン
Delta Liveテーブルは、大量のDeltaテーブル間のデータフローを管理し、ETL開発、管理におけるデータエンジニアの作業をシンプルにします。パイプラインはDelta Live Tablesにおける実行のメインユニットとなります。Delta Live Tablesは、宣言型のパイプライン開発、改善されたデータ信頼性、クラウド規模のプロダクションオペレーションを提供します。ユーザは、同じテーブルに対してバッチとストリーミングオペレーションの両方を実行することができ、データは即座にクエリーできるようになります。データに実行する変換処理を定義すると、Delta Live Tablesはタスクのオーケストレーション、クラスター管理、モニタリング、データ品質、エラーハンドリングの面倒を見ます。Delta Live Tablesの強化オートスケーリングは、スパイクがあったり、予測不可能なストリーミングワークロードに対応することができます。
Delta Live Tablesクイックスタートをご覧ください。
Deltaテーブル vs. Delta Live Tables
Deltaテーブルはテーブルにデータを格納する手段であり、Delta Live Tablesは、これらのテーブル間をどのようにデータが流れるのかを宣言的に記述することを可能とします。Delta Live Tablesは、大量のDeltaテーブルを作成し、最新の状態を保つことでそれらのテーブルを管理する宣言型のフレームワークです。要するに、Deltaテーブルはデータテーブルのアーキテクチャであり、Delta Live Tablesはデータパイプラインのフレームワークです。
Delta: オープンソースかプロプライエタリか?
Databricksプラットフォームの強みは、お客様をプロプライエタリなツールにロックインしないことです: テクノロジーの大部分は、Databricksがコミットしているオープンソースプロジェクトによって支えられています。
- Delta Lake project: レイクハウスのためのオープンソースストレージ。
- Delta Sharing protocol: セキュアなデータ共有のためのオープンプロトコル。
Delta Live Tablesは、Databricksのプロプライエタリなフレームワークです。
Databricksにおける他のDeltaは?
名前にDeltaを含む他の機能の説明です。
Delta Sharing
セキュアなデータ共有のためのオープンスタンダードであり、Delta Sharingによって、計算プラットフォームに関係なしに企業間でデータ共有を行うことができます。
Deltaエンジン
Databricksに含まれているDelta Lakeオープンソーステクノロジーを活用するビッグデータ向けのクエリーオプティマイザです。Deltaエンジンは、計算処理をデータにプッシュすることで、Spark SQL、Databricks SQL、データフレームオペレーションのパフォーマンスを最適化します。
Delta Lakeトランザクションログ(Deltaログ)
ユーザーがテーブルに行うすべての変更を追跡する単一の信頼できる情報源であり、Delta Lakeが原子性を保証するメカニズムです。GitHubのDelta transaction log protocolをご覧ください。
このトランザクションログは多くの重要な機能において実行される共通のスレッドなので、これはDelta Lakeを理解する際の鍵となります。
- ACIDトランザクション
- スケーラブルなメタデータハンドリング
- タイムトラベル
- などなど