Delta Lake について翻訳し、まとめてみた

はじめに

Delta Lake について、下記のリンク先の記事と動画を参考に、内容を翻訳してまとめてみました。
本記事にはより詳細な内容が記載されているので、そちらも参照してください。

■リンク

Delta Lake について

Delta Lake とは

Delta Lake はデータレイクに信頼性をもたらすオープンソースのストラテジレイヤです。
Delta Lake を利用するメリットとしては、3つ挙げられます。
image.png

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 の違いを図に表したものです。
image.png

  • 信頼性
    • 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 に関する説明は以上となります。
より詳細な内容については、リンク先の記事等を参照ください。

 

 

 

Azure Databricksの導入ならナレコムにおまかせください。

導入から活用方法までサポートします。お気軽にご相談ください。

Azure Databricksソリューションページはこちら