Tablestore シンクコネクターを使用して、Apache Kafka のデータを Tablestore のデータテーブルまたは時系列テーブルにバッチでインポートできます。
背景情報
Apache Kafka は分散メッセージキューイング (MSMQ) システムです。データシステムは Kafka Connect を使用して、Apache Kafka へのデータストリームのインポートや、Apache Kafka からのデータストリームのエクスポートを行えます。
Tablestore チームは、Kafka Connect をベースに Tablestore シンクコネクターを開発しました。Tablestore シンクコネクターは、サブスクライブしたトピックに基づいて、ポーリングモードで Apache Kafka からメッセージレコードを取得し、メッセージレコードを解析して、データを Tablestore にバッチでインポートします。Tablestore シンクコネクターはデータインポート処理を最適化し、カスタム構成もサポートします。
Tablestore は Alibaba Cloud が開発したマルチモデルデータストレージサービスです。Tablestore は大量の構造化データを格納でき、Wide Column モデルや TimeSeries モデルなど、さまざまなデータモデルをサポートします。Apache Kafka から Tablestore のデータテーブルまたは時系列テーブルにデータを同期できます。データテーブルは Wide Column モデルのテーブルタイプ、時系列テーブルは TimeSeries モデルのテーブルタイプです。詳細については、「データテーブルへの Kafka データの同期」および「時系列テーブルへの Kafka データの同期」をご参照ください。
機能
Tablestore シンクコネクターは、次の機能をサポートします:
少なくとも 1 回の配信
Kafka トピックから Tablestore に、Kafka メッセージレコードが少なくとも 1 回配信されることを保証します。
データマッピング
Converter を使用して Kafka トピックのデータをデシリアライズします。データをデシリアライズする前に、Kafka Connect のワーカーまたはコネクターの構成で
key.converter属性とvalue.converter属性を変更する必要があります。Kafka Connect に組み込みの JsonConverter、サードパーティの Converter、またはカスタム Converter を選択できます。Tablestore における宛先テーブルの自動作成
Tablestore に宛先テーブルが存在しない場合、指定したプライマリキー列と属性列ホワイトリストに基づいて、宛先テーブルを自動的に作成できます。属性列ホワイトリストを指定しない場合、Kafka メッセージレコードの値に含まれるすべてのフィールドを、宛先テーブルの属性列として使用します。
エラー処理ポリシー
データはバッチでインポートされるため、メッセージレコードの解析時、または Tablestore への書き込み時にエラーが発生する場合があります。エラーが発生した場合は、タスクを終了するか、エラーを無視できます。また、Kafka または Tablestore にメッセージレコードとエラーメッセージをログとして記録することもできます。
動作モード
Tablestore シンクコネクターは、スタンドアロンモードまたは分散モードで動作できます。ビジネス要件に基づいてモードを選択できます。
スタンドアロンモードでは、すべてのタスクが単一プロセスで実行されます。このモードは構成や使用が簡単です。Tablestore シンクコネクターの機能を学習するために、スタンドアロンモードを使用できます。
分散モードでは、すべてのタスクが複数のプロセスで並列に実行されます。このモードは、プロセスのワークロードに基づいてタスクを各プロセスに割り当て、タスク実行時にフォールトトレランス機能を提供します。このため、分散モードは安定性の面でスタンドアロンモードより優れています。分散モードの使用を推奨します。