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

Data Transmission Service:データ移行:ApsaraDB RDS for MySQL から ApsaraDB for SelectDB へ

最終更新日:Jul 18, 2026

ApsaraDB for SelectDB は、サブ秒単位で大規模データセットをクエリし、数万件の同時ポイントクエリを処理でき、高スループットな複雑分析を実行できます。Data Transmission Service (DTS) を使用して、自己管理 MySQL データベースや ApsaraDB RDS for MySQL インスタンスなどの MySQL データベースから ApsaraDB for SelectDB にデータを移行し、大規模データ分析を実現できます。本トピックでは、ApsaraDB RDS for MySQL インスタンスを使用してその手順を説明します。

前提条件

ソースとなる ApsaraDB RDS for MySQL インスタンスと、ターゲットとなる ApsaraDB for SelectDB インスタンス が準備されている必要があります。

制限事項

種別

説明

ソースデータベース

  • 帯域幅要件:ソースデータベースをホストするサーバーには十分なアウトバウンド帯域幅が必要です。そうでない場合、移行速度が低下します。

  • 移行オブジェクトに関する要件:

    • 移行対象のすべてのテーブルにプライマリキーまたは一意制約がある場合:

      テーブル列の一意性を確認してください。そうでない場合、ターゲットデータベースに重複データが発生する可能性があります。

    • 移行オブジェクトにプライマリキーまたは一意制約のないテーブルが含まれる場合:

      インスタンス構成時に、スキーマ移行移行タイプ として選択し、テーブル・列設定 ステップで、該当テーブルの エンジンの選択duplicate に設定することを推奨します。そうしないと、インスタンスが失敗したり、データ損失が発生したりする可能性があります。

      説明

      スキーマ移行中に、DTS は宛先テーブルに追加列を追加します。詳細については、「追加列情報」をご参照ください。

  • テーブルレベルでデータを移行し、オブジェクト名マッピングなどの方法でオブジェクトを編集する必要がある場合、1 つのデータ移行タスクで移行できるテーブルの最大数は 1,000 です。この上限を超えると、タスクを送信した際にエラーが報告されます。その場合は、テーブルを複数の移行タスクに分割するか、データベース全体を移行するタスクを構成してください。

  • 増分移行が必要な場合は、バイナリロギングを有効にしてください:

    • binlog_format を ROW に、binlog_row_image を FULL に設定します。そうしないと、事前チェックが失敗し、タスクを開始できません。

      重要

      セルフマネージド MySQL ソースがデュアルマスタクラスター(各インスタンスがマスタおよびスレーブの両方の役割を果たす)の場合、log_slave_updates パラメーターを有効にしてください。これにより、DTS がすべてのバイナリログを読み取れるようになります。

    • RDS for MySQL インスタンスの場合、ローカルバイナリログを最低でも 3 日間(推奨は 7 日間)保持してください。セルフマネージド MySQL データベースの場合は、ローカルバイナリログを最低でも 7 日間保持してください。DTS がバイナリログにアクセスできない場合、タスクは失敗します。最悪の場合、データの不整合やデータ損失が発生する可能性があります。DTS の要件よりも短いバイナリログ保持期間によって発生した問題は、DTS の SLA ではカバーされません。

      説明

      RDS for MySQL インスタンスでローカルバイナリログの 保持期間 を設定する方法については、「ローカルログの自動削除」をご参照ください。

  • スキーマ移行および完全移行フェーズ中は、データベースまたはテーブルスキーマを変更する DDL 操作を実行しないでください。そうしないと、データ移行タスクが失敗します。

    説明

    完全移行フェーズ中、DTS はソースデータベースをクエリします。これによりメタデータロックが発生し、ソースデータベースでの DDL 操作がブロックされる可能性があります。

  • 完全なデータ移行のみを実行する場合、ソースデータベースに新しいデータを書き込まないでください。そうしないと、ソースデータベースとターゲットデータベースの間にデータの不整合が発生します。リアルタイムのデータ整合性を維持するには、スキーマ移行、完全なデータ移行、および増分データ移行を選択してください。

  • DTS は、バイナリログに書き込まれない変更によって生成されたデータ(物理バックアップからの復元データやカスケード操作によって作成されたデータなど)を移行しません。

    説明

    このような状況が発生した場合は、ビジネス上の許容範囲内で完全移行を再実行してください。

  • ソース MySQL データベースのバージョンが 8.0.23 以降で、非表示の隠し列が含まれている場合、DTS はそれらの列を読み取ることができません。これによりデータ損失が発生する可能性があります。

    説明

    隠し列を表示可能にするには、ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; を実行してください。詳細については、「Invisible Columns」をご参照ください。

その他の制限事項

  • ApsaraDB for SelectDB インスタンスでは、Unique モデルまたは Duplicate モデルを使用するテーブルにのみデータを移行できます。

    Unique モデル

    宛先テーブルが Unique モデルテーブルの場合、宛先テーブルのすべての一意キーがソーステーブルに存在し、移行オブジェクトに含まれていることを確認してください。そうでない場合、データの不整合が発生する可能性があります。

    Duplicate モデル

    宛先テーブルが Duplicate モデルテーブルの場合、以下の状況で宛先データベースに重複データが発生する可能性があります。_is_deleted、_version、_record_id などの追加列に基づいて、手動で重複排除を行ってください。

    • 移行インスタンスが再試行されました。

    • 移行インスタンスが再起動されました。

    • 移行インスタンスの開始後に、同じ行のデータに対して 2 回以上の DML 操作を実行した場合。

      説明

      宛先テーブルが Duplicate モデルテーブルの場合、DTS は UPDATE または DELETE 文を INSERT 文に変換します。

  • DTS は、インデックス、パーティション、ビュー、プロシージャ、関数、トリガー、外部キーの移行をサポートしていません。

  • 選択中のオブジェクト ボックスでパラメーターを設定する際、現在は bucket_count(バケット数)パラメーターのみを設定できます。

    説明

    bucket_count パラメーターは正の整数にのみ設定できます。デフォルト値は auto です。

  • データ移行中に、宛先の ApsaraDB for SelectDB インスタンスにクラスターを作成しないでください。そうしないと、タスクが失敗します。失敗したタスクを再開するには、移行インスタンスを再起動できます。

  • ApsaraDB for SelectDB インスタンスは、英字で始まるデータベース名およびテーブル名のみをサポートしています。移行対象のデータベースまたはテーブル名が英字で始まらない場合、オブジェクト名マッピング機能を使用して名前を変更する必要があります。

  • データベース、テーブル、列などの移行オブジェクト名に漢字が含まれている場合、オブジェクト名マッピング機能を使用して名前を変更(例:英語名に変更)する必要があります。そうしないと、タスクが失敗する可能性があります。

  • DTS は、一度に複数の列を変更する DDL 操作や、同じテーブルに対して連続的に変更を加える DDL 操作の移行をサポートしていません。

  • データ移行中に、ApsaraDB for SelectDB データベースにバックエンドノードを追加しないでください。そうしないと、タスクが失敗します。失敗したタスクを再開するには、移行インスタンスを再起動できます。

  • 複数のソーステーブルから 1 つの宛先テーブルにデータを移行するマルチテーブルマージのシナリオでは、すべてのソーステーブルが同じスキーマを持っていることを確認してください。そうでない場合、データの不整合やタスクの失敗が発生する可能性があります。

  • MySQL では、VARCHAR(M) 型の M は文字数を指定します。一方、ApsaraDB for SelectDB では、VARCHAR(N) 型の N はバイト数を指定します。DTS のスキーマ移行機能を使用しない場合、ApsaraDB for SelectDB の VARCHAR 列の長さを MySQL の長さの 4 倍に設定することを推奨します。

  • ソースで DMS または gh-ost を使用してオンライン DDL 操作を実行する場合、DTS は元の DDL 文のみを宛先に移行します。このシナリオでは、DTS は一時テーブルの大量データを移行する必要がないため、宛先でテーブルロックが発生する可能性があります。

    説明

    DTS は、pt-online-schema-change などのツールによるソースでのオンライン DDL 変更の移行をサポートしていません。ソースでこのような変更が行われた場合、宛先でデータ損失やタスクの失敗が発生する可能性があります。

  • データ移行前に、ソースおよびターゲットデータベースのパフォーマンスを評価してください。データ移行はオフピーク時間帯に実行することを推奨します。完全なデータ移行中、DTS はソースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。

  • 完全なデータ移行では、INSERT 操作が並行して実行されるため、宛先データベースでテーブルの断片化が発生します。その結果、完全移行完了後、宛先インスタンスで使用されるテーブル領域がソースインスタンスよりも大きくなります。

  • データ移行中に、DTS 以外のソースが宛先データベースにデータを書き込むと、ソースデータベースとターゲットデータベースの間にデータの不整合が発生する可能性があります。

  • RDS for MySQL インスタンスで Always-Encrypted が有効になっている場合、完全移行はサポートされていません。

    説明

    透過的データ暗号化 (TDE) が有効になっている RDS for MySQL インスタンスは、スキーマ移行、完全移行、および増分移行をサポートしています。

  • 増分移行中、DTS は宛先への負荷を軽減するためにバッチ同期戦略を使用します。デフォルトでは、DTS は 1 つの同期オブジェクトに対して最大で 5 秒に 1 回書き込みを行います。そのため、DTS 移行タスクでは定期的な同期遅延(通常は 10 秒以内)が発生する可能性があります。この定期的な移行遅延を軽減するには、コンソールで DTS インスタンスパラメーター selectdb.reservoir.timeout.milliseconds を変更してバッチ間隔を調整してください。許容範囲は [1000, 10000] ミリ秒です。

    説明

    バッチ間隔を調整する際、値を小さくすると DTS の書き込み頻度が増加します。これにより、宛先の負荷および書き込みレスポンスタイム (RT) が増加し、結果として DTS 同期遅延が増加する可能性があります。宛先の負荷に基づいて値を調整してください。

  • タスクが失敗した場合、DTS サポートスタッフが 8 時間以内に復旧を試みます。復旧中、タスクを再起動したり、パラメーターを調整したりする可能性があります。

    説明

    データベースパラメーターではなく、DTS タスクパラメーターのみが変更されます。 調整対象となるパラメーターは、「インスタンスパラメーターの変更」に記載されています。

特殊なケース

  • セルフマネージド MySQL ソースの場合:

    • ソースデータベースでマスタ–スタンバイスイッチオーバーが発生すると、移行タスクが失敗します。

    • DTS は、宛先データベースに最後に移行されたレコードのタイムスタンプと現在時刻を比較して遅延を計算します。ソースで長時間 DML 操作が実行されない場合、遅延レポートが不正確になります。遅延が高すぎると思われる場合は、ソースで DML 操作を実行して遅延値を更新してください。

      説明

      データベース全体の移行を選択する場合、ハートビートテーブルを作成し、毎秒更新または書き込みを行ってください。

    • DTS は、バイナリログオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` を実行します。

    • ソースが Amazon Aurora MySQL またはその他のクラスター化された MySQL インスタンスの場合、タスクに設定されたドメイン名または IP アドレスとその DNS 解決が常に読み取り–書き込み (RW) ノードを指していることを確認してください。そうでない場合、移行タスクが失敗する可能性があります。

  • RDS for MySQL ソースの場合:

    • 増分移行が必要な場合、トランザクションログを記録しない RDS for MySQL インスタンス(例:RDS for MySQL 5.6 読み取り専用インスタンス)はソースとしてサポートされていません。

    • DTS は、バイナリログオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` を実行します。

課金

移行タイプ

タスク設定料金

パブリックトラフィック料金

スキーマ移行および完全なデータ移行

無料です。

この例では無料です。

説明

宛先データベースの アクセス方法パブリック IP アドレス の場合、インターネットデータ転送料金が適用されます。詳細については、「課金概要」をご参照ください。

増分データ移行

課金対象です。詳細については、「課金概要」をご参照ください。

増分移行でサポートされる SQL

操作タイプ

SQL ステートメント

DML

INSERTUPDATE、および DELETE

DDL

  • ADD COLUMN

  • MODIFY COLUMN

  • CHANGE COLUMN

  • DROP COLUMN および DROP TABLE

  • TRUNCATE TABLE

  • RENAME TABLE

    重要

    RENAME TABLE 操作により、データの不整合が発生する可能性があります。たとえば、移行オブジェクトとして 1 つのテーブルのみを選択し、移行中にソースインスタンスでそのテーブル名を変更した場合、このテーブルのデータは宛先データベースに移行されません。この問題を回避するには、データ移行タスクを構成する際に、テーブルが属するデータベース全体を移行オブジェクトとして選択してください。また、RENAME TABLE 操作の前後でテーブルが属するデータベースがどちらも移行オブジェクトに含まれていることを確認してください。

データベースアカウントの権限要件

データベース

スキーマ移行

完全なデータ移行

増分データ移行

ソース ApsaraDB RDS for MySQL

SELECT 権限

SELECT 権限

読み取りおよび書き込み権限

ターゲット ApsaraDB for SelectDB

クラスターへのアクセス権限 (Usage_priv) およびデータベースに対する読み取りおよび書き込み権限 (Select_privLoad_privAlter_privCreate_priv、および Drop_priv)

データベースアカウントを作成し、権限を付与するには、以下をご参照ください。

説明

ソースデータベースアカウントが ApsaraDB RDS for MySQL コンソール外で作成された場合、REPLICATION CLIENTREPLICATION SLAVESHOW VIEW、および SELECT 権限が付与されていることを確認してください。

操作手順

  1. 次のいずれかの方法で、宛先リージョンの移行タスクリストページに移動します。

    DTS コンソールから

    1. Data Transmission Service (DTS) コンソール にログインします。

    2. 左側のナビゲーションウィンドウで、データの移行 をクリックします。

    3. ページ左上隅で、移行インスタンスが配置されているリージョンを選択します。

    DMS コンソールから

    説明

    実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。

    1. Data Management (DMS) コンソール にログインします。

    2. 上部のメニューバーで、Data + AI > Data Transmission (DTS) > データ移行 を選択します。

    3. データ移行タスク の右側で、移行インスタンスが配置されているリージョンを選択します。

  2. タスクの作成 をクリックして、タスク設定ページに移動します。

  3. ソースおよびターゲットデータベースを設定します。

    セクション

    パラメーター

    説明

    該当なし

    タスク名

    DTS は自動的にタスク名を生成します。識別しやすいように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。

    移行元データベース

    既存の接続情報の選択

    • システムに追加済み(作成または保存済み)のデータベースインスタンスを使用する場合、ドロップダウンリストから目的のデータベースインスタンスを選択します。これにより、以下のデータベース情報が自動的に設定されます。

      説明

      DMS コンソールでは、このパラメーターの名前は DMS データベースインスタンスの選択 です。

    • データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用しない場合は、以下のデータベース情報を手動で設定します。

    データベースタイプ

    MySQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    ソース ApsaraDB RDS for MySQL インスタンスが配置されているリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    この例では、単一の Alibaba Cloud アカウント内でのデータ移行を想定しています。× を選択します。

    RDS インスタンス ID

    ソース ApsaraDB RDS for MySQL インスタンスのインスタンス ID を選択します。

    データベースアカウント

    ソース ApsaraDB RDS for MySQL インスタンスのデータベースアカウントを入力します。必要な権限の詳細については、「データベースアカウントの権限要件」をご参照ください。

    データベースのパスワード

    データベースアカウントに対応するパスワードを入力します。

    暗号化

    必要に応じて、非暗号化 または SSL 暗号化 を選択します。SSL 暗号化 を選択する場合、事前に RDS for MySQL インスタンスで SSL 暗号化を有効にしておく必要があります。詳細については、「クラウド証明書を使用した SSL 暗号化の迅速な有効化」をご参照ください。

    移行先データベース

    既存の接続情報の選択

    • システムに追加済み(作成または保存済み)のデータベースインスタンスを使用する場合、ドロップダウンリストから目的のデータベースインスタンスを選択します。これにより、以下のデータベース情報が自動的に設定されます。

      説明

      DMS コンソールでは、このパラメーターの名前は DMS データベースインスタンスの選択 です。

    • データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用しない場合は、以下のデータベース情報を手動で設定します。

    データベースタイプ

    ApsaraDB for SelectDB を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    宛先 ApsaraDB for SelectDB インスタンスが配置されているリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    この例では、単一の Alibaba Cloud アカウント内でのデータ移行を想定しています。× を選択します。

    インスタンス ID

    宛先 ApsaraDB for SelectDB インスタンスのインスタンス ID を選択します。

    データベースアカウント

    宛先 ApsaraDB for SelectDB インスタンスのデータベースアカウントを入力します。必要な権限の詳細については、「データベースアカウントの権限要件」をご参照ください。

    データベースのパスワード

    データベースアカウントのパスワードを入力します。

  4. 設定が完了したら、ページ下部の 接続をテストして続行 をクリックします。

    説明
    • DTS サーバーからのアクセスを許可するために、ソースおよびターゲットデータベースのセキュリティ設定に DTS サーバーの IP アドレス CIDR ブロックを追加してください。これは自動または手動で行えます。詳細については、「DTS サーバーの IP アドレス CIDR ブロックをホワイトリストに追加」をご参照ください。

    • ソースまたはターゲットデータベースが自己管理データベース(アクセス方法Alibaba Cloud インスタンス ではない)の場合、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックする必要もあります。

  5. タスクオブジェクトを設定します。

    1. オブジェクト設定 ページで、移行対象のオブジェクトを設定します。

      パラメーター

      説明

      移行タイプ

      • 完全なデータ移行のみを行う場合、スキーマ移行 および 完全データ移行 の両方を選択します。

      • サービス中断なくデータ移行を行う場合、スキーマ移行完全データ移行、および 増分データ移行 を選択します。

      重要
      • MySQL から ApsaraDB for SelectDB にデータを移行する際、データ型が変換されます。スキーマ移行 を選択しない場合、事前に宛先 ApsaraDB for SelectDB インスタンスに Unique Key または Duplicate Key モデルを使用するテーブルを作成しておく必要があります。詳細については、「データ型マッピング」、「追加列」、および「データモデル」をご参照ください。

      • 増分データ移行 を選択しない場合、データ整合性を確保するために、データ移行中にソースインスタンスにデータを書き込まないでください。

      競合するテーブルの処理モード

      • エラーの事前チェックと報告:DTS は、宛先データベースに同じ名前のテーブルが存在するかどうかをチェックします。同じ名前のテーブルが存在しない場合、事前チェックは合格します。同じ名前のテーブルが存在する場合、事前チェックでエラーが報告され、データ移行タスクは開始されません。

        説明

        宛先データベースのテーブルを削除または名前変更できない場合、宛先データベースのテーブル名を変更できます。詳細については、「スキーマオブジェクト名のマッピング」をご参照ください。

      • エラーを無視して続行:DTS は、宛先データベースの同じ名前のテーブルのチェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスにリスクをもたらす可能性があります。例:

        • テーブルスキーマが一致しており、宛先データベースのレコードがソースデータベースのレコードと同じプライマリキー値を持つ場合、DTS は宛先レコードを保持しません。ソースレコードが宛先レコードを上書きします。

        • テーブルスキーマが不一致の場合、一部の列のデータのみが移行されるか、移行が失敗する可能性があります。慎重に進めてください。

      移行先インスタンスでのオブジェクト名の大文字化

      移行オブジェクト(データベース、テーブル、列など)の名前の大文字小文字の扱いを、宛先インスタンスで設定できます。デフォルトでは、DTS のデフォルトポリシー が選択されています。ソースまたは宛先データベースのデフォルトポリシーに合わせることも可能です。詳細については、「宛先データベースでのオブジェクト名の大文字小文字の扱い」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト ボックスで、移行対象のオブジェクトをクリックし、Right arrow をクリックして 選択中のオブジェクト ボックスに移動させます。

      説明

      移行オブジェクトとしてデータベースまたはテーブルを選択できます。

      選択中のオブジェクト

      • 宛先インスタンスでの移行オブジェクトの名前を変更するには、選択中のオブジェクト セクションで移行オブジェクトを右クリックします。詳細については、「スキーマオブジェクト名のマッピング」をご参照ください。

      • 移行タイプスキーマ移行 を選択し、テーブルを選択してバケット数(bucket_count パラメーター)を設定する必要がある場合、選択中のオブジェクト セクションでテーブルを右クリックします。パラメーター設定 エリアで、パラメーター設定の有効化 に設定し、ビジネス要件に基づいて パラメーター値 を指定してから、OK をクリックします。

      説明
      • データベースまたはテーブルレベルで増分移行の SQL 操作を選択するには、選択中のオブジェクト セクションで移行オブジェクトを右クリックし、表示されるダイアログボックスで移行する SQL 操作を選択します。

      • WHERE 条件を設定してデータをフィルターするには、選択中のオブジェクト セクションでテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を指定します。詳細については、「データのフィルター」をご参照ください。

      • オブジェクト名マッピング機能を使用する場合、名前が変更されたオブジェクトに依存する他のオブジェクトの移行が失敗する可能性があります。

    2. 詳細設定へ をクリックして、詳細パラメーターを設定します。

      パラメーター

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、DTS は共有クラスター上でタスクをスケジューリングします。選択する必要はありません。より安定したタスクを実行したい場合は、DTS 移行タスクを実行するための専用クラスターを購入できます。

      失敗した接続の再試行時間

      移行タスク開始後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続の再試行を開始します。デフォルトの再試行時間は 720 分です。再試行時間を 10~1440 分の範囲でカスタマイズできます。30 分以上に設定することを推奨します。指定された時間内に DTS がソースおよびターゲットデータベースに再接続できた場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      説明
      • 同じソースまたはターゲットを共有する複数の DTS インスタンスの場合、ネットワーク再試行時間は最後に作成されたタスクの設定によって決まります。

      • 接続再試行期間中もタスクに対して課金されるため、ビジネス要件に基づいて再試行時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスをリリースした後はできるだけ早く DTS インスタンスをリリースすることを推奨します。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      移行タスク開始後、ソースまたはターゲットデータベースで DDL または DML 実行例外などの接続性以外の問題が発生した場合、DTS はエラーを報告し、すぐに操作の再試行を開始します。デフォルトの再試行時間は 10 分です。再試行時間を 1~1440 分の範囲でカスタマイズできます。10 分以上に設定することを推奨します。指定された再試行時間内に関連操作が成功した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。

      完全移行率を制限するかどうか

      完全移行中、DTS はソースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。必要に応じて、完全移行タスクの速度制限を有効化できます。1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS を設定して、宛先データベースの負荷を軽減できます。

      説明
      • この設定項目は、移行タイプ完全データ移行 を選択した場合にのみ利用できます。

      • 移行インスタンスの実行後も、完全移行速度を調整 できます。

      増分移行率を制限するかどうか

      必要に応じて、増分移行タスクの速度制限を設定することもできます。1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS を設定して、宛先データベースの負荷を軽減できます。

      説明
      • この設定項目は、移行タイプ増分データ移行 を選択した場合にのみ利用できます。

      • 移行インスタンスの実行後も、増分移行速度を調整 できます。

      環境タグ

      ビジネス要件に基づいて、インスタンスを識別するための環境タグを選択できます。この例では、このパラメーターは必須ではありません。

      順方向および逆方向タスクのハートビートテーブル SQL を削除

      DTS インスタンス実行中に、ハートビート SQL 情報をソースデータベースに書き込むかどうかを選択します。

      • :ハートビート SQL 情報はソースデータベースに書き込まれません。これにより、DTS インスタンスが遅延を報告する可能性があります。

      • ×:ハートビート SQL 情報をソースデータベースに書き込みます。これにより、ソースデータベースの物理バックアップやクローンなどの機能に干渉する可能性があります。

      ETL 機能の設定

      ビジネス要件に基づいて、データを処理するためにETL 機能を設定するかどうかを選択します。

      • :ETL 機能を設定します。また、テキストボックスにデータ処理ステートメントを入力する必要があります。

      • ×:ETL 機能を設定しません。

      監視アラート

      ビジネス要件に基づいて、アラートを設定し、アラート通知を受信するかどうかを選択します。

      • ×:アラートを設定しません。

      • アラートのしきい値 および アラート通知 を設定してアラートを構成します。移行が失敗した場合や遅延がしきい値を超えた場合、システムがアラート通知を送信します。

    3. オプション: 上記の設定が完了したら、次:データベースおよびテーブルのフィールド設定 をクリックして、宛先テーブルの プライマリキー列の追加配布キー、および エンジンの選択 を設定します。

      説明
      • このステップは、タスクオブジェクトを設定する際に 移行タイプスキーマ移行 を選択した場合にのみ利用できます。定義ステータスすべて に設定して、設定を変更できます。

      • プライマリキー列の追加 では、複数のカラムを選択して複合プライマリキーを構成できます。また、プライマリキー列の追加 から 1 つ以上のカラムを選択して、配布キー として設定する必要があります。

      • プライマリキーまたは一意制約のないテーブルの場合、エンジンの選択duplicate を選択する必要があります。そうしないと、インスタンスが失敗したり、データ損失が発生したりする可能性があります。

  6. タスクを保存して事前チェックを実行します。

    • このインスタンスを API オペレーションで呼び出す際のパラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにポインターを合わせ、表示されるバルーンで OpenAPI パラメーターのプレビュー をクリックします。

    • API パラメーターを表示する必要がない場合、または表示が完了した場合は、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • 移行タスク開始前に、DTS は事前チェックを実行します。事前チェックに合格した後でのみ、タスクが開始されます。

    • 事前チェックが失敗した場合、失敗したチェック項目の横にある 詳細を表示 をクリックし、プロンプトに基づいて問題を修正してから、再度事前チェックを実行してください。

    • 事前チェック中に警告が報告された場合:

      • 無視できないチェック項目の場合、失敗した項目の横にある 詳細を表示 をクリックし、プロンプトに基づいて問題を修正してから、再度事前チェックを実行してください。

      • 無視できるチェック項目の場合、アラートの詳細を確認無視OK、および 再度事前チェックを実行 をクリックして、アラート項目をスキップし、再度事前チェックを実行できます。警告を無視することを選択した場合、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。

  7. インスタンスを購入します。

    1. 成功率 が 100% になったら、次:インスタンスの購入 をクリックします。

    2. 購入 ページで、データ移行インスタンスのリンク仕様を選択します。詳細については、次の表をご参照ください。

      カテゴリ

      パラメーター

      説明

      新しいインスタンスクラス

      リソースグループの設定

      インスタンスが属するリソースグループを選択します。デフォルト値はデフォルトリソースグループです。詳細については、「Resource Management とは」をご参照ください。

      インスタンスクラス

      DTS は、さまざまなパフォーマンスレベルを持つ移行仕様を提供しています。リンク仕様は移行速度に影響します。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ移行リンク仕様」をご参照ください。

    3. Data Transmission Service (従量課金) 利用規約 を読み、同意してください。

    4. 購入して起動 をクリックします。表示される OK ダイアログボックスで、OK をクリックします。

      データ移行タスク リストページで、移行タスクの進捗状況を確認できます。

      説明
      • 移行タスクに増分移行が含まれていない場合、完全移行完了後に自動的に停止します。タスクが停止すると、ステータス完了 に変化します。

      • 移行タスクに増分移行が含まれている場合、自動的には停止しません。増分移行タスクは継続的に実行されます。増分移行タスク実行中、タスクの ステータス実行中 です。

データ型マッピング

カテゴリ

MySQL 型

SelectDB 型

NUMERIC

TINYINT

TINYINT

TINYINT UNSIGNED

SMALLINT

SMALLINT

SMALLINT

SMALLINT UNSIGNED

INT

MEDIUMINT

INT

MEDIUMINT UNSIGNED

BIGINT

INT

INT

INT UNSIGNED

BIGINT

BIGINT

BIGINT

BIGINT UNSIGNED

LARGEINT

BIT(M)

INT

DECIMAL

DECIMAL

説明

ZEROFILL はサポートされていません。

NUMERIC

DECIMAL

FLOAT

FLOAT

DOUBLE

DOUBLE

  • BOOL

  • BOOLEAN

BOOLEAN

日付および時刻

DATE

DATEV2

DATETIME[(fsp)]

DATETIMEV2

TIMESTAMP[(fsp)]

DATETIMEV2

TIME[(fsp)]

VARCHAR

YEAR[(4)]

INT

文字列

  • CHAR

  • VARCHAR

VARCHAR

重要

ApsaraDB for SelectDB へのデータ移行中に、CHAR および VARCHAR(n) データ型はデータ損失を防ぐために VARCHAR(4*n) に変換されます。

  • データ長を指定しない場合、デフォルトは VARCHAR(65533) です。

  • データ長が 65,533 を超える場合、データ型は STRING になります。

  • BINARY

  • VARBINARY

STRING

  • TINYTEXT

  • TEXT

  • MEDIUMTEXT

  • LONGTEXT

STRING

  • TINYBLOB

  • BLOB

  • MEDIUMBLOB

  • LONGBLOB

STRING

ENUM

STRING

SET

STRING

JSON

STRING

追加列

説明

この表は、Duplicate key モデルを使用するターゲットテーブルの追加列について説明しています。これらの列は、DTS によって自動的に追加されるか、手動で追加する必要があります。

パラメーター

デフォルト

説明

_is_deleted

Int

0

レコードが削除されたかどうかを示します。

  • 挿入: 0

  • 更新: 0

  • 削除: 1

_version

Bigint

0

  • 完全なデータ移行の場合、値は 0 です。

  • 増分データ移行の場合、値はソースデータベースのバイナリログ内の対応するエントリのタイムスタンプ(秒単位)です。

_record_id

Bigint

0

  • 完全なデータ移行の場合、値は 0 です。

  • 増分データ移行の場合、値は増分ログからのレコードの一意 ID です。

    説明

    ID は一意で、自動インクリメントされます。