Firehose ストリームを設定する - Amazon Data Firehose

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

Firehose ストリームを設定する

Apache Iceberg テーブルを送信先として Firehose ストリームを作成するには、以下を設定する必要があります。

注記

S3 テーブルバケットのテーブルに配信するための Firehose ストリームの設定は、Amazon S3 の Apache Iceberg テーブルと同じです。

ソースと宛先を設定する

Apache Iceberg テーブルにデータを配信するには、ストリームのソースを選択します。

ストリームのソースを設定するには、「Configure source settings」を参照してください。

次に、宛先として [Apache Iceberg テーブル] を選択し、Firehose ストリーム名を指定します。

データ変換を設定する

着信ストリーム内のレコードの追加や変更など、データに対してカスタム変換を実行するには、Firehose ストリームに Lambda 関数を追加できます。Firehose ストリームでの Lambda を使用したデータ変換の詳細については、「Amazon Data Firehose でソースデータを変換する」を参照してください。

Apache Iceberg テーブルの場合、受信レコードを異なる送信先テーブルにルーティングする方法と実行するオペレーションを指定する必要があります。必要なルーティング情報を Firehose に提供する方法の 1 つは、Lambda 関数を使用することです。

詳細については、「Route records to different Iceberg tables」を参照してください。

データカタログを接続する

Apache Iceberg には、Apache Iceberg テーブルに書き込むデータカタログが必要です。Firehose は AWS Glue Data Catalog for Apache Iceberg Tables と統合されています。

Firehose ストリームと同じアカウント AWS Glue Data Catalog 、クロスアカウント、および Firehose ストリームと同じリージョン (デフォルト)、または別のリージョンで を使用できます。

Amazon S3 テーブルに配信していて、コンソールを使用して Firehose ストリームを設定している場合は、Amazon S3 テーブルカタログに対応するカタログを選択します。CLI を使用して Firehose ストリームをセットアップしている場合は、CatalogConfiguration入力で CatalogARNの形式で を使用しますarn:aws:glue:<region>:<account-id>:catalog/s3tablescatalog/<s3 table bucket name>。詳細については、Amazon S3テーブルへの Firehose ストリームのセットアップ」を参照してください。

JQ 式を設定する

Apache Iceberg テーブルでは、着信レコードを異なる宛先テーブルにルーティングする方法と、挿入、更新、削除などの実行するオペレーションを指定する必要があります。これを実行するには、Firehose のために JQ 式を設定して、必要な情報を解析および取得します。詳細については、「JSONQuery 式を使用して Firehose にルーティング情報を提供する」を参照してください。

一意のキーを設定する

複数のテーブルを使用した更新と削除 – 一意のキーは、ソースレコード内の 1 つ以上のフィールドであり、Apache Iceberg テーブルの行を一意に識別します。複数のテーブルを含むシナリオのみを挿入する場合は、一意のキーを設定する必要はありません。特定のテーブルで更新と削除を実行する場合は、必要なテーブルのために一意のキーを設定する必要があります。テーブルの行が見つからない場合、更新によって行が自動的に挿入されることに注意してください。テーブルが 1 つしかない場合は、一意のキーを設定できます。更新オペレーションの場合、Firehose は削除ファイルと挿入を配置します。

Firehose ストリーム作成の一環としてテーブルごとに一意のキーを設定するか、または create table もしくは alter table オペレーション中に Iceberg で identifier-field-ids をネイティブに設定できます。ストリームの作成中にテーブルごとに一意のキーを設定することはオプションです。ストリームの作成中にテーブルごとに一意のキーを設定しない場合、Firehose は必要なテーブルについて identifier-field-ids をチェックし、それらを一意のキーとして使用します。両方が設定されていない場合、更新オペレーションと削除オペレーションを使用したデータの配信は失敗します。

このセクションを設定するには、データを更新または削除するテーブルのデータベース名、テーブル名、一意のキーを入力します。設定内の各テーブルのためにのみエントリを持つことができます。オプションで、次の例に示すように、テーブルからのデータが配信に失敗した場合に備えてエラーバケットプレフィックスを指定することもできます。

[ { "DestinationDatabaseName": "MySampleDatabase", "DestinationTableName": "MySampleTable", "UniqueKeys": [ "COLUMN_PLACEHOLDER" ], "S3ErrorOutputPrefix": "OPTIONAL_PREFIX_PLACEHOLDER" } ]

再試行期間を指定する

この設定を使用して、Amazon S3 の Apache Iceberg テーブルへの書き込みで障害が発生した場合に Firehose が再試行を試みる期間 (秒) を指定できます。再試行を実行するには、0~7,200 秒の任意の値を設定できます。デフォルトでは、Firehose は 300 秒間再試行します。

失敗した配信または処理に対応する

再試行期間の経過後にストリームの処理または配信に障害が発生した場合に備えて、レコードを S3 バックアップバケットに配信するように Firehose を設定する必要があります。これを実行するには、コンソールの [バックアップ設定] から、S3 バックアップバケットS3 バックアップバケットのエラー出力プレフィックスを設定します。

バッファリングのヒントを設定する

Firehose は、着信ストリーミングデータを、特定のサイズ (バッファリングサイズ)、および特定の期間 (バッファリング間隔) にわたって、メモリにバッファリングしてから、Apache Iceberg テーブルに配信します。バッファリングサイズ (1~128 MB) およびバッファリング間隔 (0~900 秒) を選択できます。バッファヒントが大きいほど、S3 書き込みの回数が少なくなり、データファイルが大きいため圧縮コストが低くなり、クエリランタイムが速くなりますが、レイテンシーは高くなります。バッファリングのヒントの値が小さいと、レイテンシーが低くなります。

詳細設定の設定

Apache Iceberg テーブルのサーバー側の暗号化、エラーログ記録、アクセス許可、タグを設定できます。詳細については、「詳細設定の設定」を参照してください。の一部として作成した IAM ロールを追加する必要がありますApache Iceberg テーブルを宛先として使用するための前提条件。Firehose は、 AWS Glue テーブルにアクセスして Amazon S3 バケットに書き込むロールを引き受けます。

Firehose ストリームの作成が完了するまでに数分かかる場合があります。Firehose ストリームが正常に作成されたら、そのストリームへのデータの取り込みを開始し、Apache Iceberg テーブルにデータを表示できます。