Apache Iceberg テーブルを宛先として使用するための前提条件
以下のオプションから選択し、必要な前提条件を完了します。
Amazon S3 で Iceberg テーブルに配信するための前提条件
開始する前に、次の前提条件を完了します。
-
Amazon S3 バケットを作成する – テーブルの作成中にメタデータファイルパスを追加するには、Amazon S3 バケットを作成する必要があります。詳細については、「Create an S3 bucket」を参照してください。
-
必要な許可を持つ IAM ロールを作成する – Firehose には、AWS Glue テーブルにアクセスしてデータを Amazon S3 に書き込むための特定の許可を持つ IAM ロールが必要です。同じロールを使用して、Amazon S3 バケットに対する AWS Glue アクセスを付与します。Iceberg テーブルと Firehose ストリームを作成するときに、この IAM ロールが必要になります。詳細については、「Firehose に Amazon S3 Tables へのアクセスを許可する」を参照してください。
-
Apache Iceberg テーブルを作成する – 更新と削除のために Firehose ストリームで一意のキーを設定する場合、Firehose はテーブルと一意のキーがストリーム作成の一部として存在しているかどうかを検証します。このシナリオでは、Firehose ストリームを作成する前にテーブルを作成する必要があります。AWS Glue を使用して Apache Iceberg テーブルを作成できます。詳細については、「Apache Iceberg テーブルの作成」を参照してください。Firehose ストリームで一意のキーを設定していない場合、Firehose ストリームを作成する前に Iceberg テーブルを作成する必要はありません。
注記
Firehose は、Apache Iceberg テーブルのために、次のテーブルバージョンと形式をサポートします。
-
テーブル形式バージョン – Firehose は V2 テーブル形式
のみをサポートします。V1 形式でテーブルを作成しないでください。V1 形式でテーブルを作成するとエラーが発生し、代わりにデータが S3 エラーバケットに配信されます。 -
データストレージ形式 – Firehose は、Parquet 形式でデータを Apache Iceberg テーブルに書き込みます。
-
行レベルのオペレーション – Firehose は、Apache Iceberg テーブルへのデータの書き込みにおいて Merge-on-Read (MOR) モードをサポートします。
-
Amazon S3 Tables に配信するための前提条件
Amazon S3 テーブルバケットにデータを配信するには、次の前提条件を完了します。
-
「Getting started with Amazon S3 Tables」で説明されている、Amazon S3 バケット、名前空間、およびテーブルバケット内のテーブルの作成、およびその他の統合手順を実行します。「S3 tables catalog integration limitations」で指定されているように、S3 Tables カタログ統合によって課された制限があるため、列名は小文字にする必要があります。
-
必要な許可を持つ IAM ロールを作成する – Firehose には、AWS Glue テーブルにアクセスしてデータを Amazon S3 テーブルバケットに書き込むための特定の許可を持つ IAM ロールが必要です。S3 テーブルバケット内のテーブルに書き込むには、AWS Lake Formation でも必要な許可を持つ IAM ロールを提供する必要があります。Firehose ストリームを作成するときに、この IAM ロールを設定します。詳細については、「Grant Firehose access to Amazon S3 Tables」を参照してください。
-
AWS Lake Formation アクセス許可を設定する – AWS Lake Formation はテーブルリソースへのアクセスを管理します。Lake Formation は、Data Catalog リソースに対するきめ細かなアクセスコントロールを可能にする独自のアクセス許可モデルを使用します。
段階的な統合については、ブログ「Build a data lake for streaming data with Amazon S3 Tables and Amazon Data Firehose