すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:データをKafkaパーティションに同期するためのポリシーを指定する

最終更新日:Nov 04, 2024

データをKafkaクラスターに同期するようにタスクを設定する場合、データをKafkaパーティションに同期するためのポリシーを指定できます。 このポリシーでは、同期パフォーマンスを向上させることができます。 たとえば、ハッシュ値に基づいてさまざまなパーティションにデータを同期できます。

ハッシュアルゴリズム

Data Transmission Service (DTS) は、JavaのhashCode() メソッドを使用してハッシュ値を計算します。

設定方法

タスク作成ウィザードの [同期するオブジェクトの選択] ステップで、データをKafkaパーティションに同期するためのポリシーを指定できます。 詳細については、「ApsaraDB RDS For MySQLインスタンスからセルフマネージドKafkaクラスターへのデータの同期」および「データ同期シナリオの概要」をご参照ください。

警告 データ同期タスクの開始後、ターゲットトピックのパーティション数を変更しないでください。 そうでない場合、データ同期は失敗します。

同期ポリシー

ポリシー説明利点と欠点
すべてのデータをパーティション0に同期DTSは、すべてのデータとDDLステートメントを宛先トピックのパーティション0に同期します。
  • 利点: すべてのオブジェクトが作成および変更される順序は、ソースデータベースの順序と同じです。
  • 短所: このポリシーは通常の同期パフォーマンスを提供します。
データベース名とテーブル名のハッシュ値に基づいてパーティションを分離するためのデータの同期DTSは、データベースとテーブル名をパーティションキーとして使用して、ハッシュ値を計算します。 次に、DTSは、各テーブルのデータおよびDDLステートメントを、宛先トピックの対応するパーティションに同期します。
説明
  • 同じテーブルのデータ文とDDL文は、同じパーティションに同期されます。
  • CREATE DATABASEなど、DDLステートメントがテーブルと無関係である場合、ステートメントはパーティション0に同期されます。
  • 利点: 宛先テーブルが作成および変更される順序は、ソーステーブルの順序と同じです。 このポリシーは、良好な同期パフォーマンスを提供します。
  • デメリット: テーブルは異なるパーティションに同期されます。 データ同期後、異なるテーブルでのデータ変更の順序が一致しなくなる可能性があります。
プライマリキーのハッシュ値に基づいてデータをパーティションに同期DTSは、テーブル列をパーティションキーとして使用してハッシュ値を計算します。 テーブル列はデフォルトで主キーです。 テーブルに主キーがない場合、一意のキーがパーティションキーとして使用されます。 DTSは、各行を宛先トピックの対応するパーティションに同期します。 1つ以上の列をパーティションキーとして指定して、ハッシュ値を計算できます。
説明
  • このポリシーを使用すると、DDLステートメントはデフォルトでターゲットトピックのパーティション0に同期されます。
  • テーブルに主キーまたは一意キーがない場合、DTSはテーブルのデータおよびDDLステートメントをターゲットトピックのパーティション0に同期します。
  • 利点: このポリシーは最高の同期パフォーマンスを提供します。
  • デメリット: データ同期後、各データレコードのデータ変更の順序は同じままです。 ただし、異なるテーブルまたはプライマリキーのないテーブルでのデータ変更の順序が一致しない場合があります。