このトピックでは、Lindorm Streams(ApsaraDB for Lindormが提供)を使用して、Message Queue for Apache Kafkaのトピックにメッセージをパブリッシュする方法について説明します。メッセージには、ApsaraDB for HBaseパフォーマンス強化版の増分データが含まれています。このようにして、トピックをサブスクライブし、増分データを使用できます。
機能
Lindorm Streamsは、次のルールに基づいて、Message Queue for Apache Kafkaのトピックにメッセージをパブリッシュします。
Lindorm Streamsは、同じ行に対して実行された操作を、それらの操作が実行された順序で記録します。このようにして、記録された操作を同じ順序で再実行できます。
少なくとも1回(At-least-once)のセマンティクスがサポートされています。設定した再試行ポリシーに基づいて、メッセージを複数回使用できます。正確に1回(exactly-once)のセマンティクスを指定する場合は、チケットを送信してください。
メッセージ形式
Lindorm Streamsメッセージには、更新された行の2つのバージョンを含めることができます。行が更新される前のバージョンと、行が更新された後のバージョンです。次の例は、メッセージの内容を示しています。
{
"op" : <opType> // 実行される操作。有効な値:Put および DeleteFamily。
"table" : <tableName> // テーブルの名前。
"ts" : <defaultVersion> // デフォルトバージョン。行に ts キーが含まれていない場合、デフォルトバージョンが使用されます。
"keyOnly":<keyOnly> // プライマリキーのみが含まれているかどうかを示します。
"data" : [
{
"type" : <type> // 列のデータ型。
"name" : <name> // 列の名前。
"ts" : <version> // データバージョン。このパラメーターが空の場合、dts 値がバージョンとして使用されます。
"value" : <value> // 列の値。このパラメーターが空の場合、テーブル内の実際の値は null です。
},
{
"type" : <type> // 列のデータ型。
"name" : <name> // 列の名前。
"ts" : <version> // データバージョン。このパラメーターが空の場合、dts 値がバージョンとして使用されます。
"value" : <value> // 列の値。このパラメーターが空の場合、テーブル内の実際の値は null です。
}
]
}次の表に、Lindorm Streamsメッセージに指定できるパラメーターを示します。
パラメーター | タイプ | 必須 | 例 | 説明 |
key_only | boolean | いいえ | false | プライマリキーのみを同期するかどうかを指定します。デフォルト値:false。 |
unique_key | boolean | いいえ | false | バッチごとにプライマリキーを1回だけ送信するかどうかを指定します。デフォルト値:false。 |