翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ストリーミングテーブル配信の仕組み
このトピックでは、ストリーミングテーブル配信が Amazon Kinesis Data Streams ストリームから、レコード変換、送信先テーブルの作成、パーティショニング、データ鮮度、デッドレターキュー、暗号化など、S3 テーブルバケットにバックアップされた Apache Iceberg のストリーミングテーブルにレコードを送信する方法について説明します。
配信の仕組み
ストリーミングテーブル配信は、次の手順で Apache Iceberg のストリーミングテーブルにレコードを送信します。
-
Read – 配信は、Kinesis Data Streams ストリーム内のすべてのシャードからレコードを読み取ります。
-
バッファ — 配信は、データの鮮度間隔に達するまでレコードをバッファします。
-
検証と変換 – 配信は、各レコードを AWS Glue Schema Registry のスキーマと照合して検証し、Apache Iceberg テーブルスキーマに変換します。検証に失敗したレコードは、デッドレターキューに送られます。
-
圧縮と書き込み – 配信は、レコードをインライン圧縮で最適化された Apache Parquet ファイルに変換し、送信先の Iceberg テーブルに書き込みます。
-
コミット — 配信は、データがクエリ可能になるように、新しいファイルを Iceberg テーブルにコミットします。
レコードの変換
ストリーミングテーブル配信には、スキーマレジストリに登録された AWS Glue スキーマが必要です。配信では、 スキーマを使用して受信レコードを Apache Iceberg テーブルスキーマに変換します。次の入力レコード形式をサポートしています。
-
JSON – プレーン JSON レコード。 AWS Glue Schema Registry に登録されたスキーマを参照
GSRSchemaARNする を指定します。 -
GSR_JSON – Schema Registry シリアライザーによって各レコードにスキーマ ID が埋め込まれた AWS Glue JSON レコード。スキーマは AWS Glue Schema Registry から自動的に解決されます。
完全な AWS Glue スキーマレジストリから Iceberg タイプへのマッピングとフィールド処理ルールについては、「」を参照してくださいストリーミングテーブルの Iceberg の動作。
送信先テーブル
ストリーミングテーブル配信を作成すると、Amazon Kinesis Data Streams は指定した S3 テーブルバケットに宛先 Iceberg テーブルを作成します。以下を指定します。
-
テーブルバケット ARN – テーブルが作成される S3 テーブルバケットの ARN。
-
名前空間 – テーブルの名前空間。
-
テーブル名 – 作成するテーブルの名前。配信ごとに独自のテーブルが作成されます。既存のテーブルに配信することはできません。
-
パーティション列 – テーブルを時間単位でパーティション化するために使用する
timestamptz列。パーティショニングの要件については、「」を参照してくださいストリーミングテーブルの Iceberg の動作。
データの鮮度
データの鮮度は、レコードが配信されるまでの最大バッファ時間を定義します。この値は 300~900 秒 (5~15 分) の間で設定できます。デフォルトは 300 秒です。値を小さくすると配信が速くなり、値を大きくすると送信先で生成されるファイルは少なくなります。
デッドレターキュー
テーブル配信のストリーミングにはデッドレターキューが必要です。検証に失敗したレコードに関する情報を受信する Amazon S3 バケットを指定します。バケット ARN、予想されるバケット所有者、およびオプションのエラー出力プレフィックスを指定します。デッドレターキューには、完全なレコードペイロードではなく、レコード識別子とエラーコンテキストが含まれます。
暗号化
ストリーミングテーブル配信は、Amazon S3 に保存されたデータを暗号化します。デフォルトでは、データは Amazon S3 マネージドキー (SSE-S3) で暗号化されます。代わりに、カスタマーマネージド AWS KMS キー (SSE-KMS) を使用できます。
重要
送信先の暗号化に AWS マネージドキー (エイリアス) aws/kinesis を使用することはできません。カスタマーマネージド AWS KMS キーを使用する必要があります。さらに、ソース Kinesis データストリームが で暗号化されている場合 AWS マネージドキー、配信を作成することはできません。ソースストリームの暗号化要件については、「」を参照してくださいソースストリームの暗号化。サービス実行ロールに必要なアクセス許可については AWS KMS 、「」を参照してくださいデータ配信の IAM アクセス許可。
クロスアカウントおよびクロスリージョン配信
ストリーミングテーブル配信は、クロスアカウントまたはクロスリージョン配信をサポートしていません。ソースストリーム、レプリケート先 S3 テーブルバケット、 AWS Glue スキーマレジストリはすべて、同じ AWS アカウント リージョンにある必要があります。