翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Apache Iceberg へのテーブルストリーミング用のデータ配信
Amazon MSK データ配信を使用すると、Apache Kafka トピックを Amazon S3 Tables の Apache Iceberg テーブルとして継続的にマテリアライズできます。インテリジェントなインライン圧縮により、小さなファイルのパフォーマンスへの影響がなくなり、データの鮮度を犠牲にすることなくクエリのパフォーマンスを予測できます。組み込みの調整により、高スループットコンシューマー間での同時ライターの競合が解決されます。Amazon S3 Tables は、圧縮、スナップショットの有効期限、参照されていないファイルのクリーンアップなど、継続的なテーブルメンテナンスを自動的に処理します。
トピック
統合
Amazon MSK Express ブローカー — データソース。
Amazon S3 Tables — マネージド Iceberg 送信先。
AWS Glue Schema Registry — レコードスキーマの信頼できるソース。
Amazon CloudWatch — メトリクスと運用ログ。
AWS CloudTrail — API 監査ログ記録。
AWS KMS — オプションのカスタマー管理の保管時の暗号化。
一般的なユースケース
Kafka ストリーミングデータをクエリ可能な Iceberg テーブルに継続的に配置して分析します (Athena、Spark、その他のエンジン)。
圧縮や配信サービスを管理せずに、S3 Tables にストリーミングレイクハウスを構築します。
ブローカーロードを追加せずに、1 つのトピックを複数の送信先にファンアウトします。
API の仕様については、Amazon MSK API リファレンスCreateChannelのDescribeChannel「」、UpdateChannel「」、DeleteChannel「」、「」、「」、ListChannels「」を参照してください。
データフロー
次の図は、レコードが Amazon MSK Express ブローカートピックからデータ配信チャネルを経由して送信先に流れ、処理不可能なレコードがデッドレターキューにルーティングされる様子を示しています。
利点
管理するインフラストラクチャがない — コネクタやコンピューティングクラスターがない。チャネルを設定すると、サービスは配信、スケーリング、耐障害性を処理します。
ブローカーへの影響なし — チャネルは、ブローカーのスループットを消費したり、プロデューサーとコンシューマーのワークロードに影響を与えたりすることなく、トピックから読み取ります。
データによるスケーリング — 最大 10 GBps のデータ配信スループットをサポートし、手動スケーリングは必要ありません。
数分でのデータ鮮度 — 配信されたデータは、トピックに対して生成されてから 5~15 分以内にクエリまたは処理できます。
組み込みエラー処理 — 未処理のレコードはエラーコンテキストを使用してデッドレターキューにルーティングされるため、配信は中断されません。
仕組み
Iceberg でテーブルを確立するには、チャネルを作成します。Express ブローカーを使用する Amazon MSK プロビジョンドクラスターにチャネルを作成します。チャネルは Kafka トピックからレコードを読み取り、設定された送信先に配信します。
Apache Iceberg のストリーミングテーブルの場合、チャネルは Glue スキーマレジストリのスキーマを使用して JSON AWS レコードを変換し、それらを Apache Parquet データファイルとして書き込み、S3 Table バケットに保存されている新しい Iceberg テーブルに登録します。
処理できないレコードは、必要なデッドレターキュー (DLQ) S3 バケットにルーティングされます。
注記
チャネルは以前に生成されたデータをバックフィルしません。有効化が配信された後に生成されたデータのみ。Apache Iceberg のストリーミングテーブルの場合、チャネルは設定ごとに新しい Iceberg テーブルを作成します。既存の Iceberg テーブルへの配信はサポートされていません。
要件とサポートされている設定
Express ブローカーを使用する Amazon MSK プロビジョンドクラスター。標準ブローカーと Amazon MSK Serverless はサポートされていません。
少なくとも 1 つの Kafka トピック。
デッドレターキュー (DLQ) の Amazon S3 バケット。これは必須です。
チャネルがデータを配信するために引き受ける IAM サービスロール。
データ鮮度は 5~15 分の間で設定されます。
JSON (プレーン JSON、GSR スキーマ ARN 付き) または JSON_SCHEMA_GSR (スキーマ ID が埋め込まれた GSR シリアル化された JSON) のトピックデータ。
トピックデータに一致する Glue Schema Registry AWS に登録されたスキーマ。
Amazon MSK クラスターと同じ の Amazon S3 Table バケット。 AWS リージョン
最小 5 分間のデータ鮮度では、トピックは少なくとも 2.4 MBps の非圧縮データを生成する必要があります。スループットの低いトピックでは、より高いデータ鮮度値 (最大 15 分) を使用します。