本記事では、データ移行サービスを使用して、OceanBaseデータベース(MySQL互換モードおよびOracle互換モードを含む)のデータをKafkaに移行する方法について説明します。
注意
データ移行タスクが長期間非アクティブ状態(タスクステータスが 失敗、一時停止、または 完了)の場合、増分ログの保持期間などの影響でタスクが復旧できない可能性があります。データ移行は、非アクティブ状態が7日間を超えるタスクを自動的に解放し、関連リソースを回収します。タスクに対してアラートを設定し、タスク関連の異常を速やかに処理することを推奨します。
背景
Kafkaは現在広く利用されている高性能な分散ストリーム処理プラットフォームです。データ移行サービスは、OceanBaseデータベースの2つの互換モードとKafkaデータソース間のリアルタイムデータ同期をサポートし、メッセージ処理能力を拡張します。リアルタイムデータウェアハウスの構築、データクエリ、レポートの分流などのビジネスシナリオで広く利用されています。
Kafkaネットワーク接続タスクには、クラウドインスタンスKafkaネットワークとセルフマネージド Kafkaネットワークが含まれます。異なるタイプのネットワーク接続タスクのプロセスは以下のとおりです。
クラウドインスタンスKafkaネットワーク接続タスク
セルフマネージド Kafkaネットワーク接続タスク
前提条件
ソース側のOceanBaseデータベースのクラスタとテナントが作成済みであること。詳細については、インスタンスの作成およびテナントの作成を参照してください。
ソース側とターゲット側にデータ移行専用のデータベースユーザーを作成し、関連する権限を付与していること。詳細については、ユーザー権限の説明を参照してください。
使用上の制限
データ移行タスクを新規作成できるのは、プロジェクトロールが プロジェクト所有者、プロジェクト管理者、または データサービス管理者 のユーザーのみです。
ソースデータベースの操作上の制限
フル移行段階では、データベースまたはテーブル構造を変更するDDL操作を実行しないでください。そうしないと、データ移行タスクが中断する可能性があります。
現在、データ移行はKafka V0.9、V1.0、V2.x、OceanBaseデータベース(MySQL互換モードおよびOracle互換モードを含む)V2.x、V3.x、V4.xをサポートしています。
データ移行サービスは、ASCIIコードで表記され、特殊文字(.|"'`()=;/& および改行を含む)を含まないデータベース名、テーブル名、列名のオブジェクトのみの移行をサポートします。
データ移行の対象は物理テーブルのみであり、他のオブジェクトはサポートしていません。
データ移行中に、ソース側で移行範囲内のテーブル名を変更し、その後の名前が移行対象に含まれなくなった場合、そのデータはターゲットKafkaインスタンスに同期されません。
注意事項
ノード間の時刻が同期されていない場合、またはコンピュータ端末とサーバー間の時刻が同期されていない場合、増分同期の遅延時間が正確でない可能性があります。
例えば、時計が標準時より早い場合、遅延時間が負の値になる可能性があります。時計が標準時より遅い場合、遅延が発生する可能性があります。
ソース側がOceanBaseデータベースでDDL同期が有効なデータ移行タスクにおいて、ソース側のデータベーステーブルでRENAME操作が発生した場合、増分同期でデータが失われないよう、タスクを再起動することを推奨します。
OceanBaseデータベースがV4.0.0からV4.3.xのバージョン(V4.2.5 BP1を除く)で、かつ増分同期を選択した場合は、生成列にSTORED属性を設定してください。設定しない場合、増分ログには生成列の情報が保存されず、増分同期データに異常が発生する可能性があります。
更新される行にLOB列が含まれる場合:
LOB列が更新列である場合、UPDATEまたはDELETE操作前のLOB列の値に依存しないでください。
現在、LOB列を使用して格納されるデータ型には、JSON、GIS、XML、UDT(ユーザー定義型)、およびLONGTEXT、MEDIUMTEXTなどの各種TEXTが含まれます。
LOB列が更新対象外の列である場合、UPDATEまたはDELETE操作の前後で、LOB列の値はNULLとなります。
タスクが予期せず中断され、中断ポイントからの再開送信が行われる場合、Kafkaインスタンス内には一部の重複データ(直近1分以内のもの)が存在する可能性があります。そのため、ダウンストリームシステムには重複除去機能が必要です。
OceanBaseデータベースのデータをKafkaに同期する際、ソース側で一意インデックスの作成ステートメントの実行に失敗した場合、KafkaはDDL作成ステートメントとDDL削除ステートメントを消費します。ダウンストリームに送信されたインデックス作成DDLの実行に失敗した場合は、この例外を無視してください。
データ移行タスクを新規作成する際に、増分同期 のみを設定した場合、データ移行ではソースデータベースのローカル増分ログを48時間以上保持する必要があります。
データ移行タスクを新規作成する際に、完全移行 + 増分同期 を設定した場合、データ移行ではソースデータベースのローカル増分ログを少なくとも7日間以上保持する必要があります。そうでない場合、増分ログを取得できないためデータ移行タスクが失敗し、ソース側とターゲット側のデータが一致しなくなる可能性があります。
OceanBaseデータベースをソースとして増分同期を行う場合、データベーステーブルオブジェクトにUDT列が含まれていると、UDT列をサポートしていないため増分同期タスクが異常終了する可能性があります。
サポートされているソースおよびターゲットインスタンスタイプ
以下の表では、OceanBase MySQL CompatibleおよびOceanBase Oracle Compatibleがサポートするインスタンスタイプには、専用インスタンス(トランザクション型) と 自己管理データベース が含まれます。
クラウドプロバイダー |
ソース |
ターゲット |
|---|---|---|
| AWS | OceanBase MySQL Compatible | Cloud Instance |
| AWS | OceanBase MySQL Compatible | Self-managed Kafka |
| AWS | OceanBase Oracle Compatible | Cloud Instance |
| AWS | OceanBase Oracle Compatible | Self-managed Kafka |
| Huawei Cloud | OceanBase MySQL Compatible | Cloud Instance |
| Huawei Cloud | OceanBase MySQL Compatible | Self-managed Kafka |
| Huawei Cloud | OceanBase Oracle Compatible | Cloud Instance |
| Huawei Cloud | OceanBase Oracle Compatible | Self-managed Kafka |
| Google Cloud | OceanBase MySQL Compatible | Cloud Instance |
| Google Cloud | OceanBase MySQL Compatible | Self-managed Kafka |
| Google Cloud | OceanBase Oracle Compatible | Cloud Instance |
| Google Cloud | OceanBase Oracle Compatible | Self-managed Kafka |
| Alibaba Cloud | OceanBase MySQL Compatible | Cloud Instance |
| Alibaba Cloud | OceanBase MySQL Compatible | Self-managed Kafka |
| Alibaba Cloud | OceanBase Oracle Compatible | Cloud Instance |
| Alibaba Cloud | OceanBase Oracle Compatible | Self-managed Kafka |
手順
データ移行タスクを新規作成します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の 移行タスクを作成する をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
中国語、数字、英字の組み合わせを使用することを推奨します。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース セクションで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、ソース の右側にある クイック入力 をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択後、ソースエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合、保存 エリアの右上にある 保存 アイコンをクリックしてください。
クイック入力 のドロップダウンリストで、データソースの管理 をクリックすることもできます。これにより、データソース ページに移動し、データソースの表示と管理を行えます。このページでは、異なるタイプのデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドベンダー 現在、AWS、Huawei Cloud、Google Cloud、および Alibaba Cloud をサポートしています。 データベースタイプ データベースタイプを選択してください。ソースを OceanBase MySQL互換モード または OceanBase Oracle互換モード に設定します。 インスタンスタイプ インスタンスタイプを選択してください。現在、専用インスタンス(トランザクション型) と オンプレデータベース をサポートしています。 リージョン リージョンを選択してください。ソースデータベースのリージョンを選択します。 接続タイプ 接続タイプを選択してください。エンドポイント と パブリックネットワーク接続 が含まれます。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDを、エンドポイントサービスの許可リストに追加する必要があります。これにより、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようになります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントを参照してください。
- パブリックネットワーク接続 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをOceanBaseデータベースインスタンスの許可リストに追加して、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントを参照してください。
説明
このパラメータは、インスタンスタイプがセルフマネージドデータベースの場合にのみ表示されます。ソースとターゲットのリージョンを選択すると、ページに許可リストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 接続タイプを選択してください。インスタンスタイプがセルフマネージドデータベースの場合にのみこのパラメータが表示されます。 - 接続タイプ を エンドポイント に選択した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックネットワーク接続 に選択した場合、データベースホストのIPアドレスとポート番号を入力してください。
インスタンス インスタンスを選択してください。OceanBaseデータベースが配置されているインスタンスのIDまたは名前です。クラスターリスト ページで、ターゲットインスタンスのIDまたは名前を確認できます。 説明
クラウドベンダーがAlibaba Cloudの場合、アカウント間認証をサポートするAlibaba Cloudのメインアカウントインスタンスの選択も可能です。詳細については、Alibaba Cloudアカウント認証を参照してください。
テナント テナントを選択してください。OceanBaseデータベーステナントのIDまたは名前です。インスタンス ページで、ターゲットインスタンスを展開し、そのインスタンス下のターゲットテナントのIDまたは名前を確認できます。 データベースアカウント データ移行用のOceanBaseデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 インスタンスタイプが オンプレデータベース の場合、構造移行と増分同期を行う必要がある場合は、詳細設定 エリアで各パラメータを設定してください。
**スキーマ移行または増分同期**を選択するには、sysテナントアカウントを有効にし、以下のパラメータを設定してください。
パラメータ説明Sys Account sysユーザーの名前です。このユーザーは主にOceanBaseデータベースの増分ログとデータベースオブジェクト構造情報の読み取りに使用されます。業務クラスタのsysテナント内に作成してください。 Password sysユーザーのパスワード。 **増分同期**を選択するには、OBLogProxyを有効にし、OBLogProxy接続情報を入力してください。
説明
増分同期をサポートするには、sysテナントアカウントとOBLogProxyの両方を有効にする必要があります。
OBLogProxy接続情報は、OceanBaseデータベースの増分ログプロキシサービスであり、サービス形態でリアルタイムの増分プロジェクトへのアクセスと管理機能を提供し、アプリケーションがOceanBaseデータベースの増分ログにアクセスすることを容易にします。同時に、ネットワークが分離されている状況でも増分ログのサブスクリプションニーズを解決できます。形式は
OBLogProxy IP:OBLogProxy Portです。
**ターゲット**エリアで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合は、**ターゲットの右側にあるクイック入力をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ターゲット側エリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ターゲット側エリアの右上にある保存**アイコンをクリックしてください。
**クイック入力のドロップダウンリストで、データソースの管理をクリックすると、データソース**ページに移動し、データソースの表示と管理ができます。このページでは、異なるタイプのデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドプロバイダー 現在、AWS、Huawei Cloud、Google Cloud、および**Alibaba Cloud**をサポートしています。ソース側と同じクラウドプロバイダーを選択することも、異なるクラウドプロバイダー間でのデータ移行も可能です。 説明
現在、クラウドプロバイダー間のデータ移行機能はデフォルトで利用できません。この機能を使用する場合は、OceanBase Cloudのテクニカルサポートにお問い合わせください。
データベースタイプ ターゲット側をKafkaに選択します。 インスタンスタイプ **クラウドインスタンスとセルフマネージド Kafka**をサポートしています。 リージョン ターゲット側インスタンスのリージョンを選択します。 接続タイプ **エンドポイントとパブリックIP**が含まれます。 - エンドポイント接続方式を選択した場合、ページに表示されているアカウントIDを事前にエンドポイントサービスの許可リストに追加し、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントを参照してください。
- クラウドプロバイダーをAWSに選択し、エンドポイントサービスの作成時に、エンドポイントの使用を許可するパラメータで必要を選択した場合、データ移行サービスが初めてプライベート接続にアクセスする際、AWSコンソールにアクセスし、受信したConnectionsリクエストに対してエンドポイント接続リクエストの受け入れ操作を行うよう求められます。
- クラウドプロバイダーをGoogle Cloudに選択した場合、Published Servicesに認可プロジェクトを追加してください。認可後は、データソースの接続テスト時に手動で認可する必要はありません。
- パブリックネットワーク接続接続方式を選択した場合、ページに表示されているデータソースIPアドレスをKafkaインスタンスの許可リストに追加し、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントを参照してください。
説明
ソース側とターゲット側のリージョンを選択すると、ページに許可リストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 - 接続タイプをエンドポイントに選択した場合、エンドポイントサービス名とKafkaアクセスポイントを入力してください。
- 接続タイプをパブリックネットワーク接続に選択した場合、Kafkaアクセスポイントを入力してください。
Kafkaデータソースのセキュリティ認証設定が完了していない場合、そのデータソースをソース側またはターゲット側のデータ移行タスクとして使用すると、接続に失敗する可能性があります。セキュリティ認証エリアの設定は以下の通りです。
**ファイルをアップロード**をクリックし、.jks拡張子を持つ信用証書をアップロードします。
業務要件に応じて、SASLを有効にするかどうかを選択します。SASLを有効にする場合は、以下のパラメータを設定してください。
パラメータ説明認証方式 PLAIN、SCRAM-SHA-256、およびSCRAM-SHA-512をサポートしています。 - PLAIN認証方式は比較的シンプルですが、ユーザーを動的に変更できず、ユーザー名とパスワードを平文で設定するため、セキュリティは高くありません。
- SCRAM(Salted Challenge Response Authentication Mechanism)認証方式は、ユーザー名とパスワードの認証を行う従来のメカニズムを実行することでセキュリティ上の問題を解決します。KafkaはSCRAM-SHA-256をサポートしており、TLSと組み合わせてセキュリティ認証を実行できます。
この認証方式ではユーザーを動的に変更でき、ユーザーデータはZookeeperに保存されます。Brokerを起動する前に、まずZookeeperと通信し、Brokerとの通信ユーザーを作成する必要があります。ただし、この認証方式ではユーザー名とパスワードを平文で設定する必要があります。 - KafkaはSCRAM-SHA-512をサポートしており、TLSと組み合わせてセキュリティ認証を実行できます。
ユーザー名 データ移行に使用するユーザー名。 パスワード データ移行に使用するユーザーパスワード。
- エンドポイント接続方式を選択した場合、ページに表示されているアカウントIDを事前にエンドポイントサービスの許可リストに追加し、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントを参照してください。
**テストして続行**をクリックします。
**タイプとオブジェクトを選択**ページで、各パラメータを設定します。
**移行タイプ**エリアで、現在のデータ移行タスクの移行タイプを選択します。
移行タイプ には、全量移行 と 増分同期 が含まれます。
パラメータ説明フル移行 フル移行タスク開始後、データ移行サービスは、ソースデータベースのテーブルの既存データをターゲット側データベースの対応するテーブルに移行します。 増分同期 増分同期 タスク開始後、データ移行は、ソースデータベースで変更されたデータ(追加、変更、削除)をターゲットデータベースの対応するテーブルに同期します。増分同期には DML同期 と DDL同期 が含まれ、ニーズに応じてカスタマイズ設定できます。詳細については、DML/DDLのカスタム設定を参照してください。 移行対象を選択してください 領域で、移行オブジェクトの選択方法を設定します。
オブジェクトの指定 と マッチングルール の 2 種類の方法で移行オブジェクトを選択できます。
移行範囲を選択してください 領域で、移行するオブジェクトを選択します。
オブジェクトの指定 を選択した場合、データ移行は データベースオブジェクト と データベース全体 をサポートします。データベース・テーブル移行では、1 つまたは複数のデータベースのテーブルやビューを移行オブジェクトとして選択できます。データベース移行では、データベース全体を移行オブジェクトとして選択できます。あるデータベースでデータベース・テーブル移行を選択した場合、そのデータベースはデータベース移行をサポートしなくなります。あるデータベースでデータベース移行を選択した場合、そのデータベースはデータベース・テーブル移行をサポートしなくなります。
OceanBaseデータベースのデータをKafkaに移行する際、複数のテーブルから複数のTopicへの移行をサポートします。
選択領域の左側で、移行するオブジェクトを選択します。
> をクリックします。
オブジェクトをトピックにマッピングする ダイアログの 既存のトピック ドロップダウンリストで、移行するTopicを検索して選択します。
わかりました をクリックします。
データ移行は、テキストによるオブジェクトのインポートをサポートし、ターゲット側のオブジェクトに対してTopicの変更、行フィルタリングの設定、単一オブジェクトまたはすべてのオブジェクトの削除などの操作をサポートします。
説明
データベース移行を選択した場合:
右側のリストにはデータベース名のみが表示され、具体的なオブジェクトの表示はサポートされません。
増分同期-DDL同期 移行タイプを選択した場合、ソース側で新規作成されたテーブルはターゲット側に同期されます。
操作説明オブジェクトのインポート 選択領域の右側のリストで、右上の インポート対象 をクリックします。詳細については、移行オブジェクトのインポートを参照してください。 Topicの変更 データ移行は、ターゲットオブジェクトに対するTopicの変更操作をサポートします。詳細については、Topicの変更を参照してください。 設定 データ移行は WHERE条件を使用した行フィルタリングと、シャーディング列および同期する列の選択をサポートします。設定 ダイアログで、以下の操作を実行できます。- 行フィルタ条件 領域のテキストボックスに
WHERE条件を入力して行フィルタリングを実行します。詳細については、SQL条件によるデータのフィルタリングを参照してください。 - シャーディング列 ドロップダウンリストから、ターゲットのシャーディング列を選択します。複数のフィールドをシャーディング列として選択できます。このパラメータはオプションです。
シャーディング列を選択する際、特別な状況がない限り、デフォルトで主キーを選択することを推奨します。主キーに負荷の偏りがある場合は、一意の識別子で負荷が比較的均等なフィールドをシャーディング列として選択し、潜在的なパフォーマンス問題を回避してください。シャーディング列の主な役割は以下の通りです:- 負荷分散:ターゲット側で同時書き込みが可能な場合、シャーディング列によってメッセージ送信に使用する特定のスレッドを区別します。
- 順序性:同時書き込みによって生じる可能性のある無秩序な問題を防ぐため、データ移行はシャーディング列の値が同じ場合、ユーザーが受信するメッセージが順序付けられていることを保証します。ここでの順序とは、変更の順序(DMLが列に対して実行される順序)を指します。
- 列の選択領域で、同期する列を選択します。詳細については、列のフィルタリングを参照してください。
すべて削除/クリア データ移行は、データマッピング時に、一時的にターゲット側に選択された単一または複数のオブジェクトを削除する操作をサポートします。 - 単一移行オブジェクトの削除
選択領域の右側のリストで、対象オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択領域の右側のリストで、右上の すべてクリア をクリックします。ダイアログで OK をクリックすると、すべての移行オブジェクトが削除されます。
マッチングルール を選択する場合、詳細については データベースからメッセージキューへのマッチングルールの設定を参照してください。
**次へをクリックします。移行オプション**ページで、各パラメータを設定します。
フル移行
**タイプとオブジェクトを選択ステップで、完全移行**を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明読み取り並列設定 このパラメータは、フル移行段階でソース側からデータを読み取る並列数を設定します。最大値は512です。並列数が高すぎると、ソース側の負荷が過大になり、業務に影響を与える可能性があります。 書き込み並列設定 このパラメータは、フル移行段階でターゲット側にデータを書き込む並列数を設定します。最大値は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 フル移行レートの制限を有効にするかどうか 実際のニーズに応じて、フル移行レートの制限を有効にするかどうかを決定できます。有効にする場合は、ソース側の読み取りRPS(フル移行段階で1秒間にソース側から最大で読み取れる行数の上限)、ソース側の読み取りBPS(フル移行段階で1秒間にソース側から最大で読み取れる流量の上限)、ターゲット側の書き込みRPS(フル移行段階で1秒間にターゲット側に最大で書き込める行数の上限)、およびターゲット側の書き込みBPS(フル移行段階で1秒間にターゲット側に最大で書き込める流量の上限)を設定してください。 説明
ここで設定されたRPSとBPSは、スロットリング機能としてのみ機能します。フル移行で実際に達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期
サブスクリプションタイプとオブジェクトを選択する の手順で、増分同期 を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明書き込み並列設定 このパラメータは、増分同期段階でターゲット側にデータを書き込む並列数を設定します。最大値は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 増分移行レートの制限を有効にするかどうか 実際のニーズに応じて、増分同期レートの制限を有効にするかどうかを決定できます。有効にする場合は、ターゲット側の書き込みRPS(増分同期段階で1秒間にターゲット側に同期できるデータ行数の最大値の制限)とターゲット側の書き込みBPS(増分同期段階で1秒間にターゲット側に同期できる流量の最大値の制限)を設定してください。 説明
ここで設定されたRPSとBPSは、スロットリング機能としてのみ機能します。増分同期で実際に達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始時点 - 移行タイプの選択時に フル移行 を選択している場合、このパラメータは表示されません。
- 移行タイプの選択時に フル移行 を選択していないが、増分同期 を選択した場合は、特定の時間点以降のデータの移行を指定してください。デフォルトは現在のシステム時刻です。詳細については、増分同期ポイントの設定を参照してください。
詳細オプション
パラメータ説明シリアライズ方式 Kafkaへのデータ移行時のメッセージ形式を制御します。現在、Default、Canal、DataWorks(V2.0対応)、SharePlex、DefaultExtendColumnType、Debezium、DebeziumFlatten、DebeziumSmt、Avroをサポートしています。詳細については、データ形式の説明を参照してください。 説明
- 現在、OceanBaseデータベースのMySQL互換モードのみが Debezium、DebeziumFlatten、DebeziumSmt、Avro をサポートしています。
- DataWorks を選択した場合、DDLの同期は
COMMENT ON TABLEとALTER TABLE…TRUNCATE PARTITIONをサポートしません。
パーティションルール OceanBaseデータベースのデータをKafka Topicに同期するルールです。現在、Hash、Table、Oneをサポートしています。異なるシナリオでのDDLステートメントの配信と例については、表の下部の説明を参照してください。 - Hashは、データ移行が特定のHashアルゴリズムを使用し、主キー値またはシャーディング列値のHashに基づいてKafka Topicのパーティションを選択することを意味します。
- Tableは、データ移行がテーブルのすべてのデータを同じパーティションに配信し、テーブル名をHashキーとして使用することを意味します。
- Oneは、JSONメッセージがTopicの下の特定のパーティションに配信されることを意味します。これは、ソートを維持するためです。
業務システム識別子(オプション) シリアル化方法 をDataWorksに選択した場合にのみ、このパラメータが表示されます。データの業務システムの出所を識別するために使用され、後のカスタム処理に役立ちます。この業務システム識別子の長さは1〜20文字に制限されます。 次の表は、異なるシナリオでのDDLステートメントの配信方法を示しています。
パーティションルールDDLステートメントが複数のテーブルに関連する場合(例:RENAME TABLE)DDLステートメントで関連テーブルが確認できない場合(例:DROP INDEX)DDLステートメントが単一のテーブルに関連する場合Hash DDLステートメントは、関連テーブルが存在するTopicのすべてのパーティションに配信されます。
例えば、DDLステートメントがA、B、Cの3つのテーブルに関連する場合、AがTopic 1に、BがTopic 2に、Cがこのタスクに含まれていない場合、そのDDLステートメントはTopic 1とTopic 2のすべてのパーティションに配信されます。DDLステートメントは、このタスクのすべてのTopicのすべてのパーティションに配信されます。
例えば、DDLステートメントがデータ移行によって認識されない場合、このタスクに3つのTopicが存在する場合、そのDDLステートメントはこれら3つのTopicのすべてのパーティションに配信されます。DDLステートメントは、そのテーブルが属するTopicのすべてのパーティションに配信されます。 Table DDLステートメントは、関連テーブルが存在するTopicの、対応するテーブル名のHash値が存在するパーティションに配信されます。
例えば、DDLステートメントがA、B、Cの3つのテーブルに関連する場合、AがTopic 1に、BがTopic 2に、Cがこのタスクに含まれていない場合、そのDDLステートメントはTopic 1とTopic 2の関連テーブルのHash値が存在するパーティションに配信されます。DDLステートメントは、このタスクのすべてのTopicのすべてのパーティションに配信されます。
例えば、DDLステートメントがデータ移行によって認識されない場合、このタスクに3つのTopicが存在する場合、そのDDLステートメントはこれら3つのTopicのすべてのパーティションに配信されます。Table Nameに基づいてHashし、そのテーブルが属するTopic内の特定のパーティションに配信されます。 One DDLステートメントは、関連テーブルが存在するTopicの固定パーティションに配信されます。
例えば、DDLステートメントがA、B、Cの3つのテーブルに関連する場合、AがTopic 1に、BがTopic 2に、Cがこのタスクに含まれていない場合、そのDDLステートメントはTopic 1とTopic 2の特定の固定パーティションに配信されます。DDLステートメントは、このタスクのすべてのTopicの特定の固定パーティションに配信されます。
例えば、DDLステートメントがデータ移行によって認識されない場合、このタスクに3つのTopicが存在する場合、そのDDLステートメントはこれら3つのTopicの特定の固定パーティションに配信されます。DDLステートメントは、そのテーブルが属するTopicの特定の固定パーティションに配信されます。
次へ をクリックすると、システムはデータ移行タスクの事前チェックを実行します。
事前チェック の段階では、データ移行はターゲット側のKafka接続状況を検出します。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックを再実行し、成功するまで繰り返すことができます。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。ダイアログボックスが表示され、この操作をスキップする具体的な影響について警告します。スキップしてもよいことを確認したら、ダイアログボックスの OK をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに進んで購入します。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入を参照してください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックしてデータ移行タスクの詳細ページに移動し、後から必要に応じて手動で購入できます。
データ移行サービスは、データ移行タスクの実行中に移行オブジェクトを変更することをサポートしています。詳細については、移行オブジェクトの表示と変更を参照してください。データ移行タスクが開始されると、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細の表示の「移行の詳細を見る」モジュールの内容を参照してください。