はじめに
Delta Lake について、下記のリンク先の記事と動画を参考に、内容を翻訳してまとめてみました。
本記事にはより詳細な内容が記載されているので、そちらも参照してください。
■リンク
Delta Lake について
Delta Lake とは
Delta Lake はデータレイクに信頼性をもたらすオープンソースのストレージレイヤです。
Delta Lake を利用するメリットとしては、3つ挙げられます。
Delta Lake の特徴
Delta Lake には、ユーザが快適に利用できるよう10の機能があります。
■Delta Lake の10の機能
-
ACID トランザクション
-
ACID トランザクションをデータレイクに提供
-
最強の分離レベルであるシリアライザビリティを提供
-
スケーラブルなメタデータのハンドリング
-
Spark の分散プロセス力を利用して、数十億のファイルを持つペタバイト規模のテーブルの全てのメタデータを簡単に処理可能
-
タイムトラベル(データのバージョニング)
-
ロールバックや監査証跡の全履歴、そして再現可能な機械学習実験などがデータのバージョニングで可能
-
オープンフォーマット
-
Delta Lake の全データを ApacheParquet 形式で保存
-
Parquet にとってネイティブな効率的な圧縮とエンコーディングスキームを提供
-
統一されたバッチとストリーミングのソースとシンク
-
Delta Lake のテーブルはバッチテーブルでもあると同時に、ストリーミングソースやシンクでもある
-
ストリーミングデータの読み込み、バッチ履歴の埋戻し、対話型クエリをそのまま使用可能
-
スキーマの実施
-
Delta Lake はスキーマを指定して実行する機能を提供
-
不良データによるデータ破損を回避し、正しいデータタイプとカラムの存在を確認することが可能
-
スキーマの進化
-
Delta Lake デーブルスキーマに変更を加え、自動的に適用される
-
DDLといった面倒は不要
-
監査履歴
-
Delta Lake のトランザクションログは、データに関するあらゆる変更履歴を記録
-
完全な監査証跡も提供
-
アップデートと削除
-
データセットのマージ・更新・削除する Scala/Java API のサポート
-
GDPR と CCPA に簡単に準拠でき、変更データキャプチャなどのユースケースも簡素化可能
-
Apache Spark API との 100% の互換性
-
大規模データ処理エンジンとして利用される Spark と完全互換性
-
Delta Lake を最小限の変更で既存のデータパイプラインと利用が可能
Data Lake と Delta Lake の違い
下記は、Data Lake と Delta Lake の違いを図に表したものです。
-
信頼性
-
Delta Lake:高(スキーマの ACID 操作を強化することでデータの信頼性を高める)
-
Data Lake:低(あらゆるデータを許可し、結合も遅いため、大量の孤立したデータが生まれる)
-
統一性
-
Delta Lake:高(バッチやストリームデータを同一のパイプラインで生成可能)
-
Data Lake:低(ストリーミングプロセスにはホットパイプランが必須)
-
パフォーマンス
-
Delta Lake:高(Zオーダスキッピングファイルで効率的な読み取り)
-
Data Lake:中(シーケンス読み取り)
-
使いやすさ
-
Delta Lake:中(DBA オペレーションを求められる)
-
Data Lake:高(スキーマへの記述も不要で、どのようなデータも許可)
信頼性、統一性、パフォーマンス、使いやすさ、の4項目でそれぞれ比較した結果、Delta Lake の方がData Lake に比べてより優れているのがわかります。
おわりに
Delta Lake に関する説明は以上となります。
より詳細な内容については、リンク先の記事等を参照ください。