最新のデータレイク - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

最新のデータレイク

最新のデータレイクにおける高度なユースケース

データレイクは、コスト、スケーラビリティ、柔軟性の観点からデータを保存するための最適なオプションの 1 つです。データレイクを使用すると、大量の構造化データと非構造化データを低コストで保持し、ビジネスインテリジェンスレポートからビッグデータ処理、リアルタイム分析、機械学習、生成人工知能 (AI) まで、さまざまなタイプの分析ワークロードにこのデータを使用して、より良い意思決定に役立てることができます。

これらの利点にもかかわらず、データレイクは当初、データベースのような機能で設計されていませんでした。データレイクは、アトミック性、一貫性、分離性、耐久性 (ACID) 処理セマンティクスをサポートしていません。これは、さまざまなテクノロジーを使用して、数百人または数千人のユーザー間でデータを大規模に効果的に最適化および管理するために必要になる場合があります。データレイクは、以下の機能をネイティブにサポートしていません。

  • ビジネスでのデータ変更に伴うレコードレベルの効率的な更新と削除の実行

  • テーブルが数百万のファイルと数十万のパーティションに拡大するにつれてクエリパフォーマンスを管理する

  • 複数の同時ライターとリーダー間でのデータ整合性の確保

  • オペレーションの途中で書き込みオペレーションが失敗した場合のデータ破損の防止

  • データセットを (部分的に) 書き換えることなく、時間の経過とともにテーブルスキーマを進化させる

これらの課題は、変更データキャプチャ (CDC) の処理や、プライバシー、データの削除、ストリーミングデータ取り込みに関するユースケースなど、ユースケースで特に一般的になっており、最適ではないテーブルが発生する可能性があります。

従来の Hive 形式のテーブルを使用するデータレイクは、ファイル全体の書き込みオペレーションのみをサポートします。これにより、更新と削除の実装が難しく、時間がかかり、コストがかかります。さらに、データの整合性と一貫性を確保するために、ACID 準拠システムで提供される同時実行制御と保証が必要です。

これらの課題を克服するために、Apache Iceberg は、Amazon Simple Storage Service (Amazon S3) などの費用対効果の高いシステムでストレージをサポートしながら、データレイクの最適化と管理のオーバーヘッドを簡素化するデータベースのような機能を追加で提供します。

Apache Iceberg の概要

Apache Iceberg は、これまでデータベースまたはデータウェアハウスでのみ使用されていたデータレイクテーブルの機能を提供するオープンソースのテーブル形式です。スケーリングとパフォーマンスのために設計されており、数百ギガバイトを超えるテーブルの管理に適しています。Iceberg テーブルの主な機能は次のとおりです。

  • 削除、更新、マージします。 Iceberg は、データレイクテーブルで使用するデータウェアハウス用の標準 SQL コマンドをサポートしています。

  • 高速スキャン計画と高度なフィルタリング。Iceberg は、クエリの計画と実行を高速化するためにエンジンで使用できるパーティションや列レベルの統計などのメタデータを保存します。

  • 完全なスキーマの進化。Iceberg は、副作用のない列の追加、削除、更新、名前変更をサポートしています。

  • パーティションの進化。データボリュームまたはクエリパターンの変化に応じて、テーブルのパーティションレイアウトを更新できます。Iceberg は、テーブルがパーティション化されている列の変更、複合パーティションへの列の追加、複合パーティションからの列の削除をサポートしています。

  • 非表示のパーティショニング。 この機能は、不要なパーティションを自動的に読み取るのを防ぎます。これにより、ユーザーがテーブルのパーティショニングの詳細を理解したり、クエリにフィルターを追加したりする必要がなくなります。

  • バージョンロールバック。ユーザーは、トランザクション前の状態に戻すことで問題をすばやく修正できます。

  • タイムトラベル。ユーザーは、特定の以前のバージョンのテーブルをクエリできます。

  • シリアル化可能な分離。テーブルの変更はアトミックであるため、読者は部分的またはコミットされていない変更を見ることはありません。

  • 同時ライター。Iceberg は楽観的な同時実行を使用して、複数のトランザクションを成功させます。競合が発生した場合、ライターの 1 人がトランザクションを再試行する必要があります。

  • ファイル形式を開きます。Iceberg は、Apache ParquetApache AvroApache ORC など、複数のオープンソースファイル形式をサポートしています。

要約すると、Iceberg 形式を使用するデータレイクは、トランザクションの一貫性、速度、スケール、スキーマの進化の恩恵を受けます。これらの機能やその他の Iceberg 機能の詳細については、Apache Iceberg のドキュメントを参照してください。

AWS Apache Iceberg のサポート

Apache Iceberg は、一般的なオープンソースデータ処理フレームワーク、および Amazon EMRAmazon AthenaAmazon Redshift、 AWS のサービス などの でサポートされていますAWS Glue。次の図は、Iceberg に基づくデータレイクの簡略化されたリファレンスアーキテクチャを示しています。

Apache Iceberg のトランザクションデータレイクアーキテクチャ AWS。

以下は AWS のサービス 、Iceberg のネイティブ統合を提供します。間接的に、または Iceberg ライブラリをパッケージ化することによって、Iceberg とやり取り AWS のサービス できる追加 があります。

  • Amazon S3 は、耐久性、可用性、スケーラビリティ、セキュリティ、コンプライアンス、監査機能を備えているため、データレイクを構築するのに最適な場所です。Iceberg は Amazon S3 とシームレスにやり取りするように設計および構築されており、Iceberg ドキュメントに記載されている多くの Amazon S3 機能をサポートしています。

  • Amazon EMR は、Apache Spark、Flink、Trino、Hive などのオープンソースフレームワークを使用して、ペタバイト規模のデータ処理、インタラクティブ分析、機械学習を行うためのビッグデータソリューションです。Amazon EMR は、カスタマイズされた Amazon Elastic Compute Cloud (Amazon EC2) クラスター、Amazon Elastic Kubernetes Service (Amazon EKS) AWS Outposts、または Amazon EMR Serverless で実行できます。

  • Amazon Athena は、オープンソースフレームワーク上に構築されたサーバーレスでインタラクティブな分析サービスです。オープンテーブル形式とファイル形式をサポートし、ペタバイト単位のデータを分析するためのシンプルで柔軟な方法を提供します。Athena は Iceberg の読み取り、タイムトラベル、書き込み、DDL クエリをネイティブにサポートし、Iceberg メタストア AWS Glue Data Catalog に を使用します。

  • Amazon Redshift は、クラスターベースとサーバーレスの両方のデプロイオプションをサポートするペタバイト規模のクラウドデータウェアハウスです。Amazon Redshift Spectrum は、 に登録 AWS Glue Data Catalog され、Amazon S3 に保存されている外部テーブルをクエリできます。Redshift Spectrum は Iceberg ストレージ形式もサポートしています。

  • AWS Glueは、分析、機械学習 (ML)、アプリケーション開発用の複数のソースからのデータを簡単に検出、準備、移動、統合できるサーバーレスデータ統合サービスです。 AWS Glue 3.0 以降のバージョンでは、データレイクの Iceberg フレームワークがサポートされています。 AWS Glue を使用して、Amazon S3 の Iceberg テーブルに対して読み取りおよび書き込みオペレーションを実行することも、 を使用して Iceberg テーブルを操作することもできます AWS Glue Data Catalog。挿入、更新、Spark クエリ、Spark 書き込みなどの追加のオペレーションもサポートされています。

  • AWS Glue Data Catalogは、Iceberg テーブルをサポートする Hive メタストア互換データカタログサービスを提供します。

  • AWS Glue クローラーは、Iceberg テーブルを に登録する自動化を提供します AWS Glue Data Catalog。

  • Amazon Data Firehose は、Amazon S3、Amazon Redshift、Amazon OpenSearch Service、Amazon OpenSearch Serverless、Splunk、Apache Iceberg テーブルなどの送信先、および Datadog、Dynatrace、LogicMonitor、MongoDB、New Relic、Coralogix、Elastic など、サポートされているサードパーティーサービスプロバイダーが所有するカスタム HTTP または HTTP エンドポイントにリアルタイムのストリーミングデータを配信するためのフルマネージドサービスです。Firehose では、アプリケーションを記述したり、リソースを管理したりする必要はありません。Firehose にデータを送信するデータプロデューサーを作成すると、それにより、指定した送信先にデータが自動配信されます。データを配信前に変換するように、Firehose を設定することもできます。

  • Amazon SageMaker AI は、Iceberg 形式を使用して Amazon SageMaker AI Feature Store の機能セットのストレージをサポートします。

  • AWS Lake Formationは、Athena または Amazon Redshift によって消費される Iceberg テーブルなど、データにアクセスするための粗くきめ細かなアクセスコントロール許可を提供します。Iceberg テーブルのアクセス許可のサポートの詳細については、Lake Formation ドキュメントを参照してください。

AWS には Iceberg をサポートする幅広いサービスがありますが、これらのサービスをすべてカバーすることは、このガイドの範囲外です。以下のセクションでは、Amazon EMR および の Spark (バッチおよび構造化ストリーミング) と AWS Glue Amazon Athena SQL について説明します。次のセクションでは、Athena SQL での Iceberg サポートについて簡単に説明します。