Amazon SQS (S3) 統合タスク (Preview)
このページでは、SQS キューから S3 オブジェクト作成イベントを消費し、対応するオブジェクトデータを TiDB Cloud Lake に書き込む Amazon SQS (S3) 統合タスクを作成する方法について説明します。
このタスクは、S3 のイベント駆動型データ取り込み向けに設計されています。上流システムが S3 にオブジェクトを書き込むと、S3 は ObjectCreated イベントを SQS に送信します。TiDB Cloud Lake は AssumeRole を通じて SQS メッセージを消費し、イベント内のバケットとオブジェクトキーに基づいてデータを TiDB Cloud Lake に書き込みます。
先に再利用可能な SQS (S3) 接続設定を作成する必要がある場合は、Amazon SQS (S3) - IAM Role (Preview) を参照してください。
ユースケース
- S3
ObjectCreatedイベントに基づいて、新しく書き込まれた S3 オブジェクトを自動的に取り込む - S3 イベント通知を使用してデータ取り込みを駆動し、新しいファイル到着後のレイテンシーを削減する
- 新しいファイルの検出を S3 パスのポーリングのみに依存しないようにする
ワークフロー
- 上流システムが S3 バケットにオブジェクトを書き込みます。
- S3 Event Notification が
ObjectCreatedイベントを SQS 標準キューに送信します。 - TiDB Cloud Lake は、ユーザーが設定した IAM Role を通じて SQS キューからメッセージを読み取ります。
- タスクがメッセージ内の S3 イベントレコードを解析します。
- タスクは、S3 イベントレコード内のバケット、オブジェクトキー、およびファイル形式に基づいて、データを TiDB Cloud Lake のターゲットテーブルに書き込みます。
- 書き込みが成功すると、タスクは処理済みの SQS メッセージをキューから削除します。
前提条件
SQS (S3) 統合タスクを作成する前に、以下を確認してください。
- Amazon SQS (S3) - IAM Role データソースがすでに作成されている
- S3 バケットで
ObjectCreatedイベント通知が設定され、対象の SQS キューにイベントが送信されている - SQS キューポリシーで Amazon S3 に
sqs:SendMessageの呼び出しが許可されている - ユーザー IAM Role で、TiDB Cloud Lake プラットフォームロールが
sts:AssumeRoleを通じてアクセスできるよう許可されている - ユーザー IAM Role に、対象の S3 オブジェクトの読み取り権限と対象の SQS キューの消費権限がある
- SQS キューに標準的な S3 Event Notification 形式のメッセージが含まれている
- S3 通知内のバケット、プレフィックス、サフィックスがデータソース設定と一致している
SQS (S3) 統合タスクの作成
ステップ 1: 基本情報
Data > Data Integration に移動し、Create Task をクリックします。
SQS (S3) データソースを選択し、基本パラメータを設定します。
ステップ 2: データのプレビュー
基本設定の完了後、Next をクリックしてソースデータをプレビューします。
プレビュー結果は Amazon S3 統合タスク と同じです。システムは SQS (S3) 設定に基づいて対応する S3 オブジェクトを特定し、ファイル内容を読み取り、以下を表示します。
- カラム名とデータ型を含むサンプルデータ
- 一致した S3 オブジェクトの一覧とオブジェクトサイズ
ステップ 3: ターゲットテーブルの設定
TiDB Cloud Lake 内のターゲット場所を設定します。
システムは、プレビューした S3 オブジェクトの内容からカラム名とデータ型を推論します。続行する前に、ターゲットテーブルのスキーマを確認および編集できます。既存のテーブルに書き込む場合は、ターゲットテーブルを選択し、カラムマッピングを確認してください。
Create をクリックして統合タスクを作成します。
タスクの動作
SQS (S3) 統合タスクは継続的に実行されるタスクです。開始後、手動で停止されるまで、定期的に SQS キューからメッセージを読み取り、ターゲットテーブルにデータを書き込みます。
Amazon S3 統合タスクとの違い
目的が S3 パスを定期的にスキャンしてファイル内容をインポートすることであれば、Amazon S3 統合タスクを使用してください。目的が S3 ObjectCreated イベントに基づいて取り込みをトリガーすることであれば、Amazon SQS (S3) 統合タスクを使用してください。