翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
注記
Firehose は、中国リージョン AWS GovCloud (US) Regions、アジアパシフィック (マレーシア) AWS リージョンを除くすべての で、ソースとしてデータベースをサポートしています。この機能はプレビュー版であり、変更される可能性があります。本番稼働用ワークロードには使用しないでください。
Firehose は、Apache Iceberg テーブルへのデータベース変更の配信をサポートしています。データベースをソースとして Firehose ストリームをセットアップするには、次の送信先設定を行います。
データカタログを接続する
Apache Iceberg には、Apache Iceberg テーブルに書き込むデータカタログが必要です。Firehose は、Apache Iceberg テーブル AWS Glue Data Catalog の と統合されます。Firehose ストリームと同じアカウント、またはクロスアカウント、および Firehose ストリームと同じリージョン (デフォルト)、または別のリージョンで AWS Glue Data Catalog を使用できます。
テーブルの自動作成を有効にする
このオプションを有効にすると、Firehose はソースデータベースと同じ名前とスキーマを使用して、ターゲット送信先に必要なデータベース、テーブル、列を自動的に作成します。このオプションを有効にし、Firehose が同じ名前とスキーマを持つテーブルが既に存在する場合、代わりにそれらの既存のテーブルを使用し、欠落しているデータベース、テーブル、列のみを作成します。
このオプションを有効にしない場合、Firehose は必要なデータベース、テーブル、列を検索しようとします。Firehose がそれらを見つけられない場合、エラーをスローし、S3 エラーバケットにデータを配信します。
注記
Firehose が Iceberg テーブルにデータを正常に配信するには、データベース、テーブル、および列名とスキーマが完全に一致する必要があります。データベースオブジェクトとスキーマの名前が一致しない場合、Firehose はエラーをスローし、S3 エラーバケットにデータを配信します。
MySQL データベースの場合、ソースデータベースは AWS Glue データベースにマッピングされ、ソーステーブルは AWS Glue テーブルにマッピングされます。
PostgreSQL の場合、ソースデータベースは AWS Glue データベースにマッピングされ、ソーステーブルは という名前の AWS Glue テーブルにマッピングされますSchemaName_TableName
。
注記
Amazon S3 テーブルの場合、Firehose はテーブルの自動作成をサポートしていません。Firehose ストリームを作成する前に、S3 テーブルを作成する必要があります。
スキーマ進化を有効にする
このオプションを有効にすると、Firehose はソーススキーマが変更されると Apache Iceberg テーブルのスキーマを自動的に進化させます。スキーマの進化の一環として、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 に変わります。