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