Amazon Data Firehose のデータ配信を理解する - Amazon Data Firehose

Amazon S3 の Apache Iceberg テーブルへの Amazon Data Firehose ストリームの配信はプレビュー中であり、変更される可能性があります。

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

Amazon Data Firehose のデータ配信を理解する

Firehose ストリームにデータを送信すると、選択した送信先にデータが自動的に配信されます。次の表では、さまざまな宛先へのデータ配信について説明します。

デスティネーション 詳細
Amazon S3

Amazon S3 へのデータ配信の場合、Firehose は Firehose ストリームのバッファリング設定に基づいて複数の受信レコードを連結します。次に、Amazon S3 オブジェクトとしてレコードを Amazon S3 に配信します。デフォルトでは、Firehose は区切り文字なしでデータを連結します。レコード間に新しい行区切り文字を使用する場合は、Firehose コンソール設定またはAPIパラメータ でこの機能を有効にすることで、新しい行区切り文字を追加できます。

Amazon Redshift

Amazon Redshift へのデータ配信の場合、Firehose はまず、前述の形式で受信データを S3 バケットに配信します。次に、Firehose は Amazon Redshift COPY コマンドを発行して、S3 バケットから Amazon Redshift でプロビジョニングされたクラスターまたは Amazon Redshift Serverless ワークグループにデータをロードします。Amazon Data Firehose が複数の受信レコードを Amazon S3 オブジェクトに連結した後、Amazon S3 オブジェクトを Amazon Redshift でプロビジョニングされたクラスターまたは Amazon Redshift Serverless ワークグループにコピーできることを確認します。詳細については、「Amazon Redshift COPY コマンドデータ形式パラメータ」を参照してください。

OpenSearch サービスと OpenSearch サーバーレス OpenSearch サービスおよび OpenSearch サーバーレスへのデータ配信の場合、Amazon Data Firehose は Firehose ストリームのバッファリング設定に基づいて受信レコードをバッファリングします。次に、 OpenSearch サービスクラスターまたは OpenSearchサーバーレスコレクションに複数のレコードをインデックスするための OpenSearch サービスまたは OpenSearch サーバーレス一括リクエストを生成します。Amazon Data Firehose に送信する前に、レコードが UTF-8 でエンコードされ、単一行JSONオブジェクトにフラット化されていることを確認してください。また、サービスクラスターの OpenSearch rest.action.multi.allow_explicit_indexオプションを true (デフォルト) に設定して、レコードごとに設定された明示的なインデックスを持つ一括リクエストを受け取る必要があります。詳細については、「Amazon OpenSearch OpenSearch Service デベロッパーガイド」の「サービス設定の詳細オプション」を参照してください。
Splunk

Splunk へのデータ配信の場合、Amazon Data Firehose は送信するバイトを連結します。データを改行文字などで区切る場合は、自分で挿入する必要があります。Splunk がそのような区切り記号を解析するように設定されていることを確認してください。S3 エラーバケット (S3 バックアップ) に配信されたデータを Splunk にリドライブするには、Splunk ドキュメント に記載されているステップに従います。

HTTP エンドポイント サポートされているサードパーティーサービスプロバイダーが所有するHTTPエンドポイントへのデータ配信の場合、統合された Amazon Lambda サービスを使用して、受信レコードをサービスプロバイダーの統合が期待する形式と一致する形式に変換する関数を作成できます。送信先にHTTPエンドポイントを選択したサードパーティーサービスプロバイダーに連絡して、受け入れられるレコード形式の詳細を確認してください。
Snowflake

Snowflake へのデータ配信の場合、Amazon Data Firehose は内部的に 1 秒間データをバッファリングし、Snowflake ストリーミングAPIオペレーションを使用して Snowflake にデータを挿入します。デフォルトでは、挿入したレコードは 1 秒ごとにフラッシュされ、Snowflake テーブルにコミットされます。挿入呼び出しを行うと、Firehose は Snowflake にデータがコミットされるまでにかかった時間を測定する CloudWatch メトリクスを出力します。Firehose は現在、レコードペイロードとして 1 つのJSON項目のみをサポートしており、JSON配列はサポートしていません。入力ペイロードが有効なJSONオブジェクトであり、余分な二重引用符、引用符、エスケープ文字なしで適切に形成されていることを確認してください。

Firehose の各送信先には、独自のデータ配信頻度があります。詳細については、「バッファリングヒントを設定する」を参照してください。

重複レコード

Amazon Data Firehose は、データ配信に at-least-once セマンティクスを使用します。データ配信がタイムアウトした場合など、状況によっては、Amazon Data Firehose による配信の再試行によって、元のデータ配信リクエストが最終的に処理された場合に重複が発生することがあります。これは、Amazon Data Firehose がサポートするすべての送信先タイプに適用されます。