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

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

最終更新日:Nov 14, 2024

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

ハッシュアルゴリズム

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

設定方法

タスク作成ウィザードの [移行タイプとオブジェクトの設定] ステップで、データをKafkaパーティションに移行するためのポリシーを指定できます。 詳細については、「自己管理型OracleデータベースからMessage Queue For Apache Kafkaインスタンスへのデータの移行」および「データ移行シナリオの概要」をご参照ください。

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

ポリシー

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