宛先の設定を構成する - Amazon Data Firehose

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

宛先の設定を構成する

注記

Firehose は、中国リージョン AWS GovCloud (US) Regions、アジアパシフィック (マレーシア) AWS リージョンを除くすべての でデータベースをソースとしてサポートしています。この機能はプレビュー版であり、変更される可能性があります。本番稼働用ワークロードには使用しないでください。

Firehose は、Apache Iceberg Tables へのデータベース変更の配信をサポートしています。データベースをソースとして Firehose ストリームをセットアップするには、次の送信先設定を構成します。

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

Apache Iceberg には、Apache Iceberg テーブルに書き込むデータカタログが必要です。Firehose は AWS Glue Data Catalog for Apache Iceberg Tables と統合されています。Firehose ストリームと同じアカウント、またはクロスアカウント、および Firehose ストリームと同じリージョン (デフォルト)、または別のリージョンで AWS Glue Data Catalog を使用できます。

テーブルの自動作成を有効にする

このオプションを有効にすると、Firehose はソースデータベースと同じ名前とスキーマを使用して、ターゲット送信先に必要なデータベース、テーブル、列を自動的に作成します。このオプションを有効にし、Firehose が同じ名前とスキーマを持つテーブルが既に存在する場合、代わりにそれらの既存のテーブルを使用し、欠落しているデータベース、テーブル、列のみを作成します。

このオプションを有効にしない場合、Firehose は必要なデータベース、テーブル、列を検索しようとします。Firehose がそれらを見つけられない場合、エラーをスローし、S3 エラーバケットにデータを配信します。

注記

Firehose が Iceberg Tables にデータを正常に配信するには、データベース、テーブル、列名とスキーマが完全に一致する必要があります。データベースオブジェクトとスキーマの名前が一致しない場合、Firehose はエラーをスローし、S3 エラーバケットにデータを配信します。

MySQL データベースの場合、ソースデータベースは AWS Glue データベースにマッピングされ、ソーステーブルは AWS Glue テーブルにマッピングされます。

PostgreSQL の場合、ソースデータベースは AWS Glue データベースにマッピングされ、ソーステーブルは という名前の AWS Glue テーブルにマッピングされますSchemaName_TableName

注記

Amazon S3 Tables の場合、Firehose はテーブルの自動作成をサポートしていません。Firehose ストリームを作成する前に S3 テーブルを作成する必要があります。

スキーマの進化を有効にする

このオプションを有効にすると、ソーススキーマが変更されると、Firehose は Apache Iceberg Tables のスキーマを自動的に進化させます。スキーマの進化の一環として、Firehose は現在新しい列の追加をサポートしています。たとえば、ソースデータベース側のテーブルに新しい列が追加された場合、Firehose は自動的にこれらの変更を行い、新しい列を適切な Apache Iceberg テーブルに追加します。

再試行期間を指定する

この設定を使用して、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 テーブルのサーバー側の暗号化、エラーログ記録、アクセス許可、タグを設定できます。詳細については、「詳細設定の設定」を参照してください。Apache Iceberg テーブルFirehose に、データベースの変更を Apache Iceberg テーブルにレプリケートするためのアクセス権を付与するを送信先として使用するには、 の一部として作成した IAM ロールを追加する必要があります。Firehose は、 AWS Glue テーブルにアクセスして Amazon S3 バケットに書き込むロールを引き受けます。

CloudWatch Logs を有効にすることを強くお勧めします。Firehose がデータベースに接続したり、テーブルのスナップショットを作成したりする際に問題が発生した場合、Firehose はエラーとログを設定済みのログにスローします。これは、エラーを通知する唯一のメカニズムです。

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

注記

1 つのデータベースに 1 つの Firehose ストリームのみを設定します。1 つのデータベースに複数の Firehose ストリームがあると、データベースへの複数のコネクタが作成され、データベースのパフォーマンスに影響します。

Firehose ストリームが作成されると、既存のテーブルの初期ステータスはスナップショット IN_PROGRESS になります。スナップショットのステータスが IN_PROGRESS に設定されている場合、ソーステーブルのスキーマを変更しないでください。スナップショットの進行中にテーブルのスキーマを変更すると、Firehose はテーブルのスナップショットをスキップします。スナップショットプロセスが完了すると、ステータスは COMPLETE に変わります。