本記事では、データ移行サービスを使用して、OceanBaseデータベース(MySQL互換モードおよびOracle互換モードを含む)のデータをDataHubに移行する方法について説明します。
注意
データ移行タスクが長期間非アクティブ状態(タスクの状態が失敗、一時停止、または完了の場合)にあると、増分ログの保持期間などの影響で、タスクが復旧できない可能性があります。データ移行は、非アクティブ状態が7日間を超えるタスクを自動的に解放し、関連リソースを回収します。タスクに対してアラートを設定し、タスク関連の異常を迅速に処理することを推奨します。
前提条件
ソース側のOceanBaseデータベースのクラスタとテナントが作成済みであること。詳細については、インスタンスの作成および新規テナントの作成を参照してください。
ターゲット側のデータベースインスタンスが作成済みであること。
ソース側とターゲット側に、データ移行専用のデータベースユーザーを作成し、関連する権限を付与していること。詳細については、ユーザー権限の説明を参照してください。
使用上の制限
データ移行タスクの新規作成は、プロジェクトロールが プロジェクト所有者、プロジェクト管理者、または データサービス管理者 のユーザーのみがサポートします。
フル移行を選択した場合、データ転送は一意のキーを持つテーブルの同期のみをサポートします。
DDLの同期はBLOB型のトピックのみをサポートします。
データ移行サービスは、データベース名、テーブル名、列名がASCIIコードであり、特殊文字(
.|"'`()=;/&および改行文字を含む)を含まないオブジェクトの移行のみをサポートします。同期対象のテーブル名およびその中の列名には中国語文字を含めることはできません。
データ移行中、データ転送はテーブルを削除してから新しいテーブルを作成することをサポートします。つまり、既に同期されているテーブルに対してDROP TABLE操作を実行した後、CREATE TABLEを実行することが可能です。データ転送は、リネームによる新しいテーブルの作成はサポートしていません。つまり、
RENAME TABLE a TO a_tmp操作の実行はサポートされません。
データ転送は、文字セットがUTF-8およびGBKに設定されたデータの同期をサポートします。
DataHubに関連する使用上の制限は以下のとおりです:
DataHubの公式な制限では、1メッセージの最大サイズはクラウド環境によって異なり、通常は1MBです。
バッチ送信のため、DataHubは1回に4MBのメッセージの送信のみをサポートします。
DataHubの公式な制限と命名規則については、制限の説明を参照してください。
注意事項
ノード間のクロックが同期していない場合、またはクライアント端末とサーバー間のクロックが同期していない場合、増分同期の遅延時間が正確でない可能性があります。
例えば、時計が標準時より進んでいると、遅延時間が負の値になる可能性があります。時計が標準時より遅れていると、遅延が発生する可能性があります。
ソース側が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になります。
データ移行タスクを新規作成する際に、**増分同期**のみを設定し、データ移行でソースデータベースのローカル増分ログを48時間以上保存する要件がある場合。
データ移行タスクを新規作成する際に、完全移行 + **増分同期**を設定した場合、データ移行ではソースデータベースのローカル増分ログを少なくとも7日間以上保持する必要があります。そうでない場合、増分ログを取得できないためデータ移行タスクが失敗したり、ソースとターゲットのデータが一致しなくなったりする可能性があります。
OceanBaseデータベースの増分データをDataHubに同期する際、それにはテーブル構造をDataHub Schemaに初期化するSchemaが含まれます。以下の表はDataHubデータ型のサポート状況であり、Tuple型のTopicにのみ適用されます。
型説明値の範囲BIGINT 8バイト符号付き整数型 -9223372036854775807 ~ 9223372036854775807 DOUBLE 8バイト倍精度浮動小数点数 -1.0 _10^308 ~ 1.0 _10^308 BOOLEAN ブール型 True/False BOOLEAN ブール型 true/false BOOLEAN ブール型 0/1 TIMESTAMP タイムスタンプ型 マイクロ秒単位のタイムスタンプ型 STRING 文字列、UTF-8エンコードのみサポート 単一STRING列は最大2MBをサポート INTEGER 4バイト整数型 -2147483648 ~ 2147483647 FLOAT 4バイト単精度浮動小数点数 -3.40292347_10^38 ~ 3.40292347_10^38 DECIMAL 数字型 - 10^38 +1 ~ 10^38 - 1
サポートされているソースおよびターゲットインスタンスタイプ
クラウドプロバイダー |
ソース |
ターゲット |
|---|---|---|
| Alibaba Cloud | OceanBase MySQL Compatible(トランザクション型) | クラウドインスタンスDataHub |
| Alibaba Cloud | OceanBase MySQL Compatible(分析型) | クラウドインスタンスDataHub |
| Alibaba Cloud | OceanBase MySQL Compatible(フラッグシップ版) | クラウドインスタンスDataHub |
| Alibaba Cloud | OceanBase Oracle Compatible(トランザクション型) | クラウドインスタンスDataHub |
| Alibaba Cloud | OceanBase Oracle Compatible(フラッグシップ版) | クラウドインスタンスDataHub |
データ型のマッピング
現在、DataHubへの移行でサポートされているデータ型は、INTEGER、BIGINT、TIMESTAMP、FLOAT、DOUBLE、DECIMAL、STRING、BOOLEANのみです。
新規トピックを作成するマッピング方法を選択した際に、他の型のトピックを作成した場合、データ移行が失敗します。
この記事の表で提供されているデフォルトのマッピングルールが最も適切なマッピングです。マッピングを変更すると、エラーが発生する可能性があります。
OceanBaseデータベースのMySQLテナントとDataHub間のデータ型マッピング
OceanBaseデータベースのMySQLテナントのデータをDataHubに移行する際、TopicタイプとしてBLOBおよびTupleを選択できます。以下の表は、DataHub(Tupleタイプ)でシリアル化形式をDefaultおよびDTSCompatibleに設定した場合のデータ型マッピングを説明します。DataHub(BLOBタイプ)のデータ型マッピングの詳細については、データ形式の説明を参照してください。
OceanBaseデータベースのMySQLテナントのデータをDataHub(Tupleタイプ)に移行する際、シリアル化形式をDefaultに設定した場合のデータ型マッピングは以下のとおりです。
OceanBaseデータベースのMySQLテナントデフォルトのDataHubタイプへのマッピングBIT STRING (Base64エンコード) CHAR STRING BINARY STRING (Base64エンコード) VARBINARY STRING (Base64エンコード) INT BIGINT TINYTEXT STRING SMALLINT BIGINT MEDIUMINT BIGINT BIGINT DECIMAL (符号なし型はJavaのLONGサイズを超えるため) FLOAT DECIMAL DOUBLE DECIMAL DECIMAL DECIMAL DATE STRING TIME STRING YEAR BIGINT DATETIME STRING TIMESTAMP TIMESTAMP (ミリ秒単位のタイムスタンプで表示) VARCHAR STRING TINYBLOB STRING (Base64エンコード) TINYTEXT STRING BLOB STRING (Base64エンコード) TEXT STRING MEDIUMBLOB STRING (Base64エンコード) MEDIUMTEXT STRING LONGBLOB STRING (Base64エンコード) LONGTEXT STRING OceanBaseデータベースのMySQLテナントのデータをDataHub(Tupleタイプ)に移行する際、シリアル化形式をDTSCompatibleに設定した場合のデータ型マッピングは以下のとおりです。
OceanBaseデータベースのMySQLテナントデフォルトのDataHubタイプへのマッピングCHAR STRING VARCHAR STRING BINARY STRING VARBINARY STRING BIT(1): BITの取り得る値は0と1です。 BOOLEAN - BIT列の値が0の場合、DataHubのBOOLEAN値はfalseです。
- BIT列の値が1の場合、DataHubのBOOLEAN値はtrueです。
BIT(n) STRING (HEXエンコード)。現在、BIT型データのビット数がデータベースのビット数と合わない場合があります。例えば、bit(10)では、データが0の場合、DTSでは000と表示されますが、データ転送では00と表示されます。 TINYINT BIGINT SMALLINT BIGINT MEDIUMINT BIGINT INT BIGINT BIGINT BIGINT。DataHubのBIGINTは符号付きで、範囲は-9223372036854775807 ~ 9223372036854775807です。9223372036854775807(ソース側は符号なしのBIGINT)を超えるデータが存在すると、DataHubのデータオーバーフローが発生し、データの不整合が生じる可能性があります。 FLOAT DOUBLE。有効桁数は7桁で、7桁を超えると精度の不整合が生じる可能性があります。 DOUBLE DOUBLE。有効桁数は16桁で、16桁を超えると精度の不整合が生じる可能性があります。 DECIMAL DECIMAL DATE TIMESTAMP(+08:00タイムゾーン変換を使用し、マイクロ秒精度) TIME STRING YEAR STRING DATETIME TIMESTAMP(+08:00タイムゾーン変換を使用し、マイクロ秒精度) TIMESTAMP TIMESTAMP(マイクロ秒精度) TINYTEXT STRING MEDIUMTEXT STRING TEXT STRING LONGTEXT STRING TINYBLOB STRING(HEXエンコード) MEDIUMBLOB STRING(HEXエンコード) BLOB STRING(HEXエンコード) LONGBLOB STRING(HEXエンコード)
OceanBaseデータベースOracleテナントとDataHub間のデータ型マッピング
OceanBaseデータベースOracleテナント |
デフォルトでマッピングされるDataHub型 |
|---|---|
| CHAR | STRING |
| NCHAR | STRING |
| VARCHAR2 | STRING |
| NVARCHAR2 | STRING |
| CLOB | STRING |
| BLOB | STRING(Base64エンコード) |
| NUMBER | DECIMAL |
| BINARY_FLOAT | DECIMAL |
| BINARY_DOUBLE | DECIMAL |
| DATE | STRING |
| TIMESTAMP | STRING |
| TIMESTAMP WITH TIME ZONE | STRING |
| TIMESTAMP WITH LOCAL TIME ZONE | STRING |
| INTERVAL YEAR TO MONTH | STRING |
| INTERVAL DAY TO SECOND | STRING |
| RAW | STRING(Base64エンコード) |
追加のProperties
独自にTopicを作成し、データ同期タスクを開始する前に、DataHubのスキーマに以下のPropertiesを追加してください。データ転送によって自動的にTopicと構造が同期される場合、データ転送が自動的に以下のPropertiesを追加します。
注意
この内容はTuple型のTopicに適用されます。
名前 |
型 |
意味 |
|---|---|---|
| oms_timestamp | STRING | 変更が発生した時間。 |
| oms_table_name | STRING | ソースがテーブルの場合、変更後のテーブル名。 |
| oms_database_name | STRING | ソースがデータベースの場合、変更後のデータベース名。 |
| oms_sequence | STRING | データが同期プロセスのメモリに格納されたタイムスタンプで、時刻と5桁の連番で構成されます。時刻逆戻りが発生した場合、データの不整合が生じる可能性があります。 |
| oms_record_type | STRING | 変更タイプ。UPDATE、INSERT、DELETEを含みます。 |
| oms_is_before | STRING | 更新タイプの場合、このデータが変更前のデータであることを示します。 |
| oms_is_after | STRING | 更新タイプの場合、このデータが変更後のデータであることを示します。 |
ソースがOceanBaseデータベースのMySQLテナントであり、同期オブジェクトの選択ページでTopicタイプをTupleに設定した場合、シリアル化方法 > **高度なオプションページで高度なオプション**をDTSCompatibleに設定すると、列名に一律にdts_接頭辞が付加されます。例えば、ソースのOceanBaseデータベースMySQLテナントの列名columnNameがc1の場合、ターゲットのDataHubに同期される列名はdts_c1となります。フィールドの変換については以下のとおりです。
フィールド名 |
データ型 |
説明 |
|---|---|---|
| dts_record_id | STRING | 増分ログのレコードIDで、そのログを一意に識別するものです。通常、レコードIDは自動的に増分されますが、災害復旧移行時には異なるマシン間で時刻が同期されていないため、不整合が生じる可能性があります。 |
| dts_operation_flag | STRING | 操作タイプ。値は以下のとおりです:
|
| dts_db_name | STRING | データベースの名前。OceanBaseデータベースでは、テナント名.データベース名の形式です。 |
| dts_table_name | STRING | テーブルの名前。 |
| dts_utc_timestamp | STRING | 操作のタイムスタンプ、すなわちBinlogのタイムスタンプ(UTC時間)です。 |
| dts_before_flag | STRING | すべての列の値が更新前の値であるかどうかを示します。値はYとNです。 |
| dts_after_flag | STRING | すべての列の値が更新後の値であるかどうかを示します。値はYとNです。 |
手順
データ移行タスクを新規作成します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の タスクを作成する をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
中国語、数字、英字の組み合わせを使用することを推奨します。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース セクションで、各パラメータを設定します。
既に作成・保存されているデータソースを参照する必要がある場合、クイック入力 の右側にある ソース をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択後、ソースエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、保存 エリアの右上にある ソース アイコンをクリックしてください。
データソースの管理 のドロップダウンリストで クイック入力 をクリックすることもできます。これにより、データソース ページに移動し、データソースの表示や管理を行えます。このページでは異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドベンダー 現在 Alibaba Cloud をサポートしています。 リージョン ソースデータベースのリージョンを選択します。 データベースタイプ 実際の状況に応じて、ソースデータベースのタイプを OceanBase MySQL Compatible または OceanBase Oracle Compatible に選択します。 インスタンスタイプ 対応するチャネルがサポートする クラスタインスタンス(トランザクション)、クラスタインスタンス(分析型) または クラスタインスタンス(フラッグシップ版) を選択します。 インスタンス OceanBaseデータベースが存在するインスタンスのIDまたは名前です。Cluster List ページで、対象インスタンスのIDまたは名前を確認できます。 説明
クラウドベンダーがAlibaba Cloudの場合、アカウント間認証をサポートするAlibaba Cloudのメインアカウントインスタンスを選択することもできます。詳細については、Alibaba Cloudアカウント認証を参照してください。
テナント OceanBaseデータベースのテナントIDまたは名前です。インスタンス ページで、対象インスタンスを展開し、そのインスタンス下の対象テナントのIDまたは名前を確認できます。 アカウント データ移行に使用するOceanBaseデータベースのユーザー名です。 パスワード データベースユーザーのパスワードです。 ターゲット セクションで、各パラメータを設定します。
既に作成・保存されているデータソースを参照する必要がある場合、クイック入力 の右側にある ターゲット をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択後、ターゲットエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、保存 エリアの右上にある ターゲット アイコンをクリックしてください。
データソースの管理 のドロップダウンリストで クイック入力 をクリックすることもできます。これにより、データソース ページに移動し、データソースの表示や管理を行えます。このページでは異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドベンダー 現在 Alibaba Cloud を選択できます。 リージョン ターゲットデータベースのリージョンを選択します。 データベースタイプ DataHub を選択します。 インスタンスタイプ 現在 クラウドインスタンス を選択できます。 接続タイプ Direct Private Network Connection と パブリック接続 が含まれます。ページに表示されているデータソースのIPアドレスをクラウドデータベースのセキュリティグループの許可リストに追加して、接続性を確保する必要があります。詳細については、Alibaba Cloudインスタンスの許可リストへの追加の Alibaba Cloud DataHubインスタンスのアクセス制御 を参照してください。 説明
ソースとターゲットのリージョンを選択すると、ページに許可リストに追加する必要があるデータソースのIPアドレスが表示されます。
Project DataHubインスタンスの名前。 AccessKey Alibaba Cloudアカウント管理コンソールで作成されたAccessKey IDで、認証に使用されます。 SecretKey Alibaba Cloudアカウント管理コンソールで作成されたAccessKeyの秘密鍵で、認証に使用されます。
**テストして続行**をクリックします。
**サブスクリプションタイプとオブジェクトを選択する**ページで、各パラメータを設定します。
**移行タイプ**エリアで、現在のデータ移行タスクの移行タイプを選択します。
パラメータ説明スキャナ移行 Topicを作成します。 フル移行 フル移行タスクが開始されると、データ移行サービスはソースデータベースのテーブルの既存データをターゲット側の対応するTopicに移行します。 増分同期 増分同期タスクが開始されると、データ移行はソースデータベースで変更されたデータ(追加、変更、削除)をターゲットデータベースの対応するTopicに同期します。**増分同期には、DML同期とDDL同期**が含まれており、ニーズに応じてカスタマイズして設定できます。詳細については、DML/DDLのカスタム設定を参照してください。 Topicタイプ TupleまたはBlobを選択できます。 - Tuple:強いスキーマを持つ構造化データをサポートし、データベースレコードのデータに似ています。各行には複数の列が含まれます。
- Blob:型のない非構造化データで、バイナリデータを1つのレコードとして書き込むことのみをサポートします。データはBASE64エンコードで送信されます。
**移行対象を選択してください**エリアで、移行対象の選択方法を設定します。
**オブジェクトの指定とルールによる一致**の2つの方法で移行対象を選択できます。
**移行範囲を選択してください**エリアで、移行する対象を選択します。
**オブジェクトの指定を選択した場合、データ移行はデータベースオブジェクトとデータベース全体**をサポートします。データベース・テーブル移行では、1つまたは複数のデータベース内のテーブルを移行対象として選択できます。データベース移行では、データベース全体を移行対象として選択できます。あるデータベースでデータベース・テーブル移行を選択した場合、そのデータベースはデータベース移行をサポートしなくなります。あるデータベースでデータベース移行を選択した場合、そのデータベースはデータベース・テーブル移行をサポートしなくなります。
説明
TopicタイプがTupleの場合、データベース・テーブル移行のみをサポートします。
OceanBaseデータベースのデータをDataHubに移行する際、複数のテーブルから複数のTopicへの移行をサポートします。
選択エリアの左側で、移行する対象を選択します。
**>**をクリックします。
業務要件に基づいて、マッピング方法を選択し、**OK**をクリックします。
同期タイプを選択する際に**Schema Synchronizationを選択しなかった場合、既存のトピックのみを選択できます。同期タイプを選択する際にSchema Synchronization**を選択した場合、Topicの作成または選択には1種類のマッピング方法のみを選択できます。
例えば、スキャナ同期を選択した状態で、新規Topicの作成と既存Topicの選択という2つのマッピング方法を使用したり、名前の変更によってTopicの名前を変更したりすると、オプションの競合により事前チェックでエラーが発生します。
パラメータ説明新規Topic テキストボックスに新規Topicの名前を入力します。128文字以内の英字、数字、またはアンダースコア(_)をサポートし、英字で始める必要があります。 Topicの置換 データ転送はDataHub Topicのクエリ機能を提供します。**トピックを選択してください**をクリックし、既存Topicのドロップダウンリストから、同期するTopicを検索して選択できます。 Topicの一括生成 Topicの生成ルールは Topic_${Database Name}_${Table Name}です。注意
新規TopicまたはTopicの一括生成を選択した場合、スキャナ同期が成功すると、新規に作成されたTopicがDataHub側でクエリ可能になります。そのシャーディング数はデフォルトで2個、データの有効期限はデフォルトで7日間で、変更はサポートされません。
追加後、選択されたボックスで移行対象を確認します。
操作説明オブジェクトのインポート 選択領域の右側のリストで、右上の インポート対象 をクリックします。移行オブジェクトのインポートを参照してください。 Topicの変更 データ移行では、ターゲットオブジェクトに対するTopic の置換操作をサポートしています。Topicの変更を参照してください。 設定 データ移行は WHERE条件を使用した行フィルタリング、およびシャーディング列と同期が必要な列の選択をサポートしています。Settingsダイアログで、以下の操作を実行できます。- 行フィルターエリアのテキストボックスに
WHERE条件を入力して行フィルタリングを行います。SQL条件でデータをフィルタリングするを参照してください。 - シャーディング列ドロップダウンリストから、ターゲットのシャーディング列を選択します。複数のフィールドをシャーディング列として選択できます。このパラメータはオプションです。
シャーディング列を選択する際、特別な状況がない限り、デフォルトで主キーを選択することを推奨します。主キーに負荷の偏りがある場合は、一意の識別子で負荷が比較的均等なフィールドをシャーディング列として選択し、潜在的なパフォーマンス問題を回避してください。シャーディング列の主な役割は以下の通りです:- 負荷分散:ターゲット側で同時書き込みが可能な場合、シャーディング列によってメッセージ送信に使用する特定のスレッドを区別します。
- 順序性:同時書き込みによって生じる可能性のある無秩序な問題に対処するため、データ移行はシャーディング列の値が同じ場合、ユーザーが受信するメッセージが順序付けられていることを保証します。ここでの順序とは、変更の順序(DMLが一列に対して実行される順序)を指します。
- 列の選択エリアで、同期が必要な列を選択します。列のフィルタリングを参照してください。
すべて削除/クリア データ移行では、データマッピング時に、一時的にターゲット側に選択された単一または複数のオブジェクトに対して削除操作を行うことをサポートしています。 - 単一移行オブジェクトの削除
選択領域の右側のリストで、ターゲットオブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択領域の右側のリストで、右上の すべてクリア をクリックします。ダイアログで、確定 をクリックすると、すべての移行オブジェクトが削除されます。
ルールによる一致 を選択した場合は、データベース間のマッチングルールの設定を参照してください。
次へ をクリックします。移行オプション ページで、増分同期の各パラメータを設定します。
フル移行
完全移行 ステップで、サブスクリプションタイプとオブジェクトを選択する を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明読み取り並列設定 このパラメータは、フル移行段階でソース側からデータを読み取る並列数を設定します。最大制限は512です。並列数が高すぎると、ソース側の負荷が過大になり、業務に影響を与える可能性があります。 書き込み並列設定 このパラメータは、フル移行段階でターゲット側にデータを書き込む並列数を設定します。最大制限は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 フル移行レートの制限 実際のニーズに応じて、フル移行レートの制限を有効にするかどうかを決定できます。有効にする場合は、ソース側読み取りRPS(フル移行段階で1秒間にソース側から読み取れる行数の最大制限)、ソース側読み取りBPS(フル移行段階で1秒間にソース側から読み取れる流量の最大制限)、ターゲット側書き込みRPS(フル移行段階で1秒間にターゲット側に書き込める行数の最大制限)、ターゲット側書き込みBPS(フル移行段階で1秒間にターゲット側に書き込める流量の最大制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。フル移行が実際に達成できる性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期
増分同期 ステップで、サブスクリプションタイプとオブジェクトを選択する を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明書き込み並列設定 このパラメータは、増分同期段階でターゲット側にデータを書き込む並列数を設定します。最大制限は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 増分移行レートの制限 実際のニーズに応じて、増分同期レートの制限を有効にするかどうかを決定できます。有効にする場合は、ターゲット側書き込みRPS(増分同期段階で1秒間にターゲット側に同期できるデータ行数の最大値の制限)とターゲット側書き込みBPS(増分同期段階で1秒間にターゲット側に同期できる流量の最大値の制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。増分同期が実際に達成できる性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始時点 - 移行タイプの選択時に 完全移行 を選択した場合、このパラメータは表示されません。
- 移行タイプの選択時に 完全移行 を選択せず、増分同期 を選択した場合は、この箇所で特定の時間点以降のデータの移行を指定してください。デフォルトは現在のシステム時刻です。増分同期の開始時点の設定を参照してください。
詳細オプション
パラメータ説明シリアライズ方式 DataHubへのデータ同期メッセージ形式を制御します。現在、Default、Canal、DataWorks(V2.0対応)、SharePlex、DefaultExtendColumnType、Debezium、DebeziumFlatten、DebeziumSmt、DTSCompatibleをサポートしています。詳細については、データ形式の説明を参照してください。 説明
- このパラメータは、同期オブジェクト選択ページでトピックタイプがBLOBを選択した場合、またはソース側がOceanBaseデータベースのMySQLテナントでトピックタイプがTupleを選択した場合にのみ表示されます。
- 現在、Debezium、DebeziumFlatten、DebeziumSmt、DTSCompatibleはOceanBaseデータベースのMySQLテナントでのみサポートされています。
- ソース側がOceanBaseデータベースのMySQLテナントで、かつ同期オブジェクト選択ページでトピックタイプがTupleを選択した場合、シリアライズ方式はDefaultとDTSCompatibleをサポートします。
パーティションルール ソース側データからDataHubトピックへの同期ルールです。現在、HashとTableをサポートしています。ダウンストリームがメッセージを消費する際にDDLとDMLの消費が一致しないことがないようにするため、Tableを選択することを推奨します。 - Hashは、一定のHashアルゴリズムを使用してデータ移行を行い、主キー値またはシャーディング列値のHashに基づいてDataHubトピックのパーティションを選択することを示します。
- Tableは、データ移行がテーブル内のすべてのデータを単一のパーティションに配信し、テーブル名をHashキーとして使用することを示します。
説明
同期タイプ選択ページでDDLの同期を選択した場合、パーティションルールはTableのみをサポートします。
以下の表は、異なるシナリオにおける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内の特定のパーティションに配信されます。
事前チェック をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェック の段階では、データ移行はデータベースユーザーの読み書き権限やデータベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目が合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックを再実行し、成功するまで繰り返すことができます。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。これにより、その操作をスキップする具体的な影響を示すダイアログボックスがポップアップ表示されます。スキップしてもよいことを確認したら、ダイアログボックス内の 確定 をクリックしてください。
事前チェックに成功したら、購入 をクリックし、データ移行インスタンスを購入する ページで購入を行います。
購入に成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入を参照してください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックしてデータ移行タスクの詳細ページに移動し、後から必要に応じて手動で購入することができます。
データ移行の詳細ページの右上にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベース間のデータ差異を比較できます。詳細については、データ検証タスクの新規作成を参照してください。
データ移行サービスは、データ移行タスクの実行中に移行オブジェクトを変更することをサポートしています。詳細については、移行オブジェクトの表示と変更を参照してください。データ移行タスクが開始されると、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細の表示の「移行詳細の表示」モジュールの内容を参照してください。