すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:概要

最終更新日:Jan 11, 2025

Delta Lake は、Databricks によって開発されたデータレイクソリューションです。Delta Lake は、データレイクへのデータの書き込み、データの管理、データのクエリ、およびデータレイクからのデータの読み取りに使用できる機能を提供します。 Delta Lake とサードパーティのアップストリームおよびダウンストリームツールを使用することで、使いやすく安全なデータレイクを構築できます。

背景情報

従来のデータレイクソリューションでは、Alibaba Cloud Object Storage Service(OSS)や Hadoop Distributed File System(HDFS)などのビッグデータストレージエンジンを使用してデータレイクを構築し、さまざまな種類のデータをデータレイクに格納できます。 データレイクを Spark や Presto などの分析エンジンに接続して、データレイクに格納されているデータを分析できます。 従来のデータレイクソリューションには、次の欠点があります。
  • データの取り込みが失敗する可能性があります。 データの取り込みが失敗した場合、ダーティデータのクリーンアップとジョブリカバリが必要になります。
  • 抽出、変換、ロード(ETL)操作がないため、データ品質管理は利用できません。
  • ストリーミング処理とバッチ処理では、トランザクションを使用して読み取りと書き込みを分離することはできません。
Delta Lake ソリューションの説明:
  • このソリューションは、ビッグデータストレージレイヤーの上にデータ管理レイヤーを提供します。 このデータ管理レイヤーは、データベースのメタデータ管理モジュールと同様の方法で機能します。 Delta Lake メタデータはデータと共に保存され、ユーザーに表示されます。 データウェアハウスとデータレイク は例を示しています。
  • Delta Lake は、メタデータ管理に基づいて atomicity、consistency、isolation、durability(ACID)トランザクションを提供し、不正なデータの取り込みを防ぎ、データの取り込み中の読み取りと書き込みを分離します。 これにより、ダーティデータが生成されないことも保証されます。
  • フィールド情報はメタデータに保存されます。 Delta Lake は、データの取り込み中にデータを確認して、データ品質を確保します。
  • トランザクション機能は、ストリーミング処理とバッチ処理で読み取りを書き込みから分離します。
説明 ACID は、データベーストランザクションの 4 つの基本的なプロパティを指します。 4 つの基本的なプロパティは、原子性、一貫性、分離性、および耐久性です。
図 1. データウェアハウスとデータレイクdelta_data
次の表は、データウェアハウス、従来のデータレイク、および Delta Lake を比較したものです。
項目データウェアハウスデータレイクDelta Lake
アーキテクチャ統合または分離されたコンピューティングとストレージ分離されたコンピューティングとストレージ分離されたコンピューティングとストレージ
ストレージ管理厳格で非一般的な形式ネイティブ形式一般的で軽量な形式
シナリオレポートと分析レポート、分析、およびデータサイエンスレポート、分析、およびデータサイエンス
柔軟性
データ品質と信頼性
トランザクションサポートされているサポートされていないサポートされている
パフォーマンス
スケーラビリティ特定のシナリオに基づく
典型的なユーザー管理スタッフ管理スタッフとデータサイエンティスト管理スタッフとデータサイエンティスト
コスト

シナリオ

Delta Lake は、クラウドベースのデータレイクを管理するための理想的なソリューションです。 Delta Lake は、次のシナリオで使用できます。
  • リアルタイムクエリ: アップストリームデータはリアルタイムで Delta Lake に取り込まれ、リアルタイムクエリをサポートします。 たとえば、Change Data Capture(CDC)シナリオでは、Spark Streaming ジョブを使用してバイナリログをリアルタイムで消費する場合、Delta Lake によって提供されるマージ機能を使用して、アップストリームデータの更新をリアルタイムで Delta Lake にマージできます。 このようにして、Hive、Spark、または Presto を使用してデータをリアルタイムでクエリできます。 ACID トランザクションは、データの書き込みをクエリから分離して、ダーティリードを回避します。
  • 一般データ保護規則(GDPR)リクエストによるデータの削除と更新: 従来のデータレイクは、データの削除や更新をサポートしていません。 データを削除する場合は、手動でデータを削除する必要があります。 データを更新する場合は、元のデータを手動で削除し、更新されたデータをストレージに書き込む必要があります。 Delta Lake は、データの削除と更新をサポートしています。
  • CDC に基づくリアルタイムデータ同期: Delta Lake によって提供されるマージ機能を使用して、ストリーミングジョブを実行して、アップストリームデータの更新をリアルタイムで Delta Lake にマージできます。
  • データ品質管理: Delta Lake は、データの取り込み中に異常データを削除できるスキーマ検証機能を提供します。 この機能を使用して、異常データを処理することもできます。
  • データ進化: データスキーマを変更する必要がある場合があります。 Delta Lake は、データスキーマを変更するための API を提供します。
  • リアルタイム機械学習: 機械学習シナリオでは、データのクレンジング、変換、特性評価など、データの処理にかなりの時間がかかる場合があります。 また、履歴データとリアルタイムデータを個別に処理する必要があります。 Delta Lake は、これらのワークフローを簡素化します。 Delta Lake は、データのクレンジング、変換、および特性評価を行うための完全で信頼性の高いリアルタイムストリームを提供します。 履歴データとリアルタイムデータを個別に処理する必要はありません。

オープンソース Delta Lake との比較

EMR Delta Lake は、オープンソース Delta Lake よりもパフォーマンスが高くなっています。 たとえば、EMR Delta Lake はより多くの SQL ステートメントをサポートし、最適化機能を提供します。 次の表に、Delta Lake の基本機能を示し、EMR Delta Lake とオープンソース Delta Lake 0.6.1 を比較します。

機能EMR Delta Lakeオープンソース Delta Lake
SQL
  • ALTER
  • CONVERT
  • CREATE
  • CTAS
  • DELETE
  • DESC HISTORY
  • INSERT
  • MERGE
  • OPTIMIZE
  • UPDATE
  • VACUUM
  • SAVEPOINT
  • ROLLBACK
  • CREATE
    説明 CREATE TABLE 構文: CREATE TABLE <tbl> USING delta LOCATION <delta_table_path>
    • 既存の Delta ディレクトリにのみテーブルを作成できます。
    • テーブルを作成するときにスキーマを指定しないでください。
  • CONVERT
  • DESC HISTORY
  • VACUUM
API
  • バッチ読み取り/書き込み
  • ストリーミング読み取り/書き込み
  • 最適化
  • 削除
  • 更新
  • マージ
  • 変換
  • 履歴
  • vacuum
  • savepoint
  • rollback
  • バッチ読み取り/書き込み
  • ストリーミング読み取り/書き込み
  • 削除
  • 更新
  • マージ
  • 変換
  • 履歴
  • vacuum
Hive コネクタサポートされているサポートされている
Presto コネクタサポートされているサポートされている
Parquetサポートされているサポートされている
ORCサポートされていないサポートされていない
テキスト形式サポートされていないサポートされていない
データスキップサポートされているサポートされていない
Z オーダーサポートされているサポートされていない
ネイティブ DeltaLogサポートされているサポートされていない