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 テーブルと統合されます。

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

JQ 式を設定する

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

一意のキーを設定する

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

Firehose ストリーム作成の一部としてテーブルごとに一意のキーを設定することも、テーブルの作成またはテーブルの変更オペレーション中に 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 MiBs 、バッファ間隔は 0~900 秒を選択できます。バッファリングのヒントが大きいほど、S3 書き込みの回数が少なくなり、データファイルがより大きいために圧縮コストが低くなり、クエリの実行がより高速になりますが、レイテンシーも高くなります。バッファリングのヒントの値が小さいと、レイテンシーが低くなります。

詳細設定の設定

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

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