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

Data Transmission Service:ApsaraDB for MongoDB インスタンスから Lindorm インスタンスへのデータ移行

最終更新日:Jun 11, 2025

このトピックでは、Data Transmission Service (DTS) を使用して、ApsaraDB for MongoDB レプリカセットまたはシャードクラスターインスタンスから Lindorm インスタンスにデータを移行する方法について説明します。

前提条件

  • ドイツ (フランクフルト) リージョン内の移行タスクのみがサポートされています。

  • ApsaraDB for MongoDB インスタンスは、レプリカセットまたはシャードクラスターアーキテクチャにデプロイされています。

    重要

    ソースインスタンスが ApsaraDB for MongoDB シャードクラスターインスタンスの場合、エンドポイントはシャードノードに割り当てられ、シャードノードは同じアカウントとパスワードを共有します。 詳細については、「シャードのエンドポイントを申請する」をご参照ください。

  • Lindorm インスタンスが作成され、ワイドテーブルエンジンが使用されています。 詳細については、「インスタンスを作成する」をご参照ください。

    説明

    宛先インスタンスの使用可能なストレージ容量は、ソースインスタンスのデータの合計サイズよりも 10% 大きくなっています。 これは推奨される前提条件です。

  • Lindorm インスタンスにワイドテーブルが作成されています。 詳細については、「Lindorm-cli を使用して LindormTable に接続し使用する」および「Lindorm Shell を使用して LindormTable に接続する」をご参照ください。

    説明

使用上の注意

カテゴリ

説明

ソースデータベースの制限

  • ソースデータベースがデプロイされているサーバーには、十分なアウトバウンド帯域幅が必要です。 そうしないと、データ移行速度が低下します。

  • 移行するコレクションには、PRIMARY KEY または UNIQUE 制約があり、すべてのフィールドが一意である必要があります。 そうしないと、宛先データベースに重複したデータレコードが含まれる可能性があります。

  • コレクションを移行対象のオブジェクトとして選択し、コレクションの名前変更など、コレクションを変更する場合、1 つのデータ移行タスクで最大 1,000 個のコレクションを移行できます。 1,000 個を超えるコレクションを移行するタスクを実行すると、リクエストエラーが発生します。 この場合は、複数タスクを構成してコレクションをバッチで移行することをお勧めします。

  • ソースデータベースが Azure Cosmos DB for MongoDB クラスターまたは Amazon DocumentDB エラスティッククラスターの場合、完全なデータ移行のみがサポートされます。

  • 増分データ移行を実行するには、次の要件が満たされていることを確認する必要があります。

    ソースデータベースの oplog 機能が有効になっており、ソースデータベースの操作ログが少なくとも 7 日間保持されています。 または、ソースデータベースの変更ストリームが有効になっており、DTS は変更ストリームを使用して、過去 7 日以内のソースデータベースのデータ変更をサブスクライブできます。 そうしないと、DTS は操作ログを取得できず、データ移行タスクが失敗する可能性があります。 例外的な状況では、データの不整合または損失が発生する可能性があります。 DTS の SLA は、これらの問題をカバーしていません。

    重要
    • ソースデータベースのデータ変更を取得するには、oplog 機能を使用することをお勧めします。

    • ソースデータベースが MongoDB V4.0 以降を実行している場合にのみ、変更ストリームを使用してソースデータベースのデータ変更を取得できます。

    • ソースデータベースが非エラスティック Amazon DocumentDB クラスターの場合、データベースの変更ストリームを有効にし、データ移行タスクを構成するときに、移行方法 パラメーターを ChangeStream に、アーキテクチャ パラメーターを シャードクラスター に設定する必要があります。

  • ソースインスタンスが ApsaraDB for MongoDB シャードクラスターインスタンスの場合、移行するコレクションの _id フィールドは一意である必要があります。 そうしないと、データの不整合が発生する可能性があります。

  • ソースインスタンスが ApsaraDB for MongoDB シャードクラスターインスタンスの場合、インスタンス内の Mongos ノードの数は 10 を超えることはできません。

  • DTS は、SRV エンドポイント経由で MongoDB データベースに接続できません。

  • ソースデータベースで実行される操作の制限:

    • 完全なデータ移行中は、配列型の更新を含む、データベースまたはコレクションのスキーマ変更を実行しないでください。 そうしないと、データ移行タスクが失敗するか、ソースデータベースと宛先データベース間でデータの不整合が発生する可能性があります。

    • 完全なデータ移行のみを実行する場合は、データ移行中にソースデータベースにデータを書き込まないでください。 そうしないと、ソースデータベースと宛先データベース間でデータの不整合が発生します。

    • ソース MongoDB インスタンスがシャードクラスターアーキテクチャにデプロイされている場合、データ移行インスタンスの実行中に、shardCollection、reshardCollection、unshardCollection、moveCollection、movePrimary などのコマンドを実行して、ソースデータベースで移行対象のオブジェクトのデータ分布を変更しないでください。 そうしないと、データの不整合が発生する可能性があります。

  • 有効期限 (TTL) インデックスを含むコレクションは移行できません。 ソースデータベースに TTL インデックスが含まれている場合、移行後にソースデータベースと宛先データベース間でデータの不整合が発生する可能性があります。

  • ソースデータベースがシャードクラスターアーキテクチャの MongoDB で、ソースデータベースの Balancer にデータバランシング動作がある場合、インスタンスでレイテンシが発生する可能性があります。

その他の制限

  • DTS は、admin データベースまたは local データベースからデータを移行できません。

  • 宛先 Lindorm インスタンスには、_id カラムまたは _value カラムを持つコレクションを含めることはできません。 そうしないと、データ移行タスクが失敗します。

  • 増分データ移行中に UPDATE 操作または DELETE 操作を移行する場合、次の要件が満たされていることを確認してください。

    • Lindorm SQL 文を実行してワイドテーブルを作成する場合、テーブルを作成するときに、_mongo_id_ という名前の非プライマリキカラムを追加する必要があります。 カラムのデータ型は、ソース ApsaraDB for MongoDB インスタンスの _id カラムのデータ型によって決まります。 また、非プライマリキカラムにセカンダリインデックスを作成する必要があります。

    • Apache HBase API を呼び出してワイドテーブルを作成する場合、テーブルを作成するときに、カラムファミリーが f である _mongo_id_ という名前の非プライマリキカラムを追加する必要があります。 カラムのデータ型は、ソース ApsaraDB for MongoDB インスタンスの _id カラムのデータ型によって決まります。 また、非プライマリキカラムにセカンダリインデックスを作成する必要があります。 追加のカラムを追加し、抽出・変換・書き出し (ETL) 機能を使用する場合、Lindorm インスタンスに重複データが含まれていないことを確認してください。

  • トランザクション情報は保持されません。 トランザクションが宛先データベースに移行されると、単一のレコードに変換されます。

  • Lindorm インスタンスで移行されるデータは、「データリクエストの制限」で指定されている要件を満たしている必要があります。 そうしないと、タスクは失敗します。

  • データを移行する前に、データ移行がソースデータベースと宛先データベースのパフォーマンスに与える影響を評価してください。 データ移行は、オフピーク時に行うことをお勧めします。 完全なデータ移行中、DTS はソースデータベースと宛先データベースの読み取りリソースと書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。

  • 完全なデータ移行中、同時 INSERT 操作によって宛先データベースのコレクションが断片化されます。 完全なデータ移行が完了すると、宛先データベースのコレクションのストレージ容量はソースデータベースのストレージ容量よりも大きくなります。

  • FLOAT データ型または DOUBLE データ型のカラムの精度設定がビジネス要件を満たしていることを確認する必要があります。 DTS は、ROUND(COLUMN,PRECISION) 関数を使用して、FLOAT データ型または DOUBLE データ型のカラムから値を取得します。 精度を指定しない場合、DTS は FLOAT データ型の精度を 38 桁に、DOUBLE データ型の精度を 308 桁に設定します。

  • DTS は、過去 7 日以内に失敗したデータ移行タスクの再開を試みます。 ワークロードを宛先データベースに切り替える前に、失敗したタスクを停止または解放する必要があります。 また、REVOKE 文を実行して、DTS が宛先データベースにアクセスするために使用するアカウントから書き込み権限を取り消すこともできます。 そうしないと、タスクが自動的に再開された後、ソースデータベースのデータによって宛先インスタンスのデータが上書きされます。

  • DTS は、宛先データベースで最後に移行されたデータのタイムスタンプとソースデータベースの現在のタイムスタンプに基づいて、増分データ移行のレイテンシを計算します。 ソースデータベースで長時間更新操作が実行されない場合、移行レイテンシが不正確になる可能性があります。 移行タスクのレイテンシが過度に高い場合は、ソースデータベースで更新操作を実行してレイテンシを更新できます。

  • DTS タスクの実行に失敗した場合、DTS テクニカルサポートは 8 時間以内にタスクの復旧を試みます。復旧中、タスクが再起動され、タスクのパラメーターが変更される場合があります。

    説明

    タスクのパラメーターのみ変更できます。データベースのパラメーターは変更されません。変更できるパラメーターには、「DTS インスタンスのパラメーターを変更する」セクションの DTS インスタンスの Topic のパラメーターを変更するで説明されているパラメーターが含まれますが、これらに限定されません。

課金

移行タイプ

タスク構成料金

データ転送料金

フルデータ移行

無料です。

この例では無料です。ターゲットデータベースの アクセス方法 パラメーターが パブリック IP アドレス に設定されている場合、インターネットトラフィックに対して課金されます。詳細については、「課金対象項目」をご参照ください。

増分データ移行

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

移行タイプ

移行タイプ

説明

完全データ移行

DTS は、移行対象オブジェクトの既存データをソース ApsaraDB for MongoDB インスタンスから宛先 Lindorm インスタンスに移行します。

説明

DTS は、データベースとコレクションの完全データ移行をサポートしています。

増分データ移行

完全データ移行が完了した後、DTS はソース ApsaraDB for MongoDB インスタンスから宛先 Lindorm インスタンスに増分データを移行します。

説明
  • 増分データ移行中は、コレクション内のドキュメントを挿入、更新、または削除するために行われた操作のみを移行できます。

  • 更新されたドキュメントの増分データを移行する場合は、$set からの更新のみを移行します。

データベースアカウントに必要な権限

データベースの種類

フルデータ移行

増分データ移行

参照資料

ソース ApsaraDB for MongoDB インスタンス

ソースデータベースに対する読み取り権限。

ソースデータベース、管理データベース、およびローカルデータベースに対する読み取り権限。

MongoDB データベースユーザーの権限を管理する

宛先 Lindorm インスタンス

Lindorm インスタンスに対する読み取りおよび書き込み権限。

ユーザーを管理する

手順

この例では、Lindorm インスタンスで SQL 文を実行して作成されたワイドテーブルを使用します。

  1. 次のいずれかの方法を使用してデータ移行ページに移動し、データ移行インスタンスが存在するリージョンを選択します。

    DTS コンソール

    1. DTS コンソール にログインします。

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

    3. ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。

    DMS コンソール

    説明

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

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

    2. 上部のナビゲーションバーで、[データ + AI] > [DTS (DTS)] > [データ移行] にポインターを移動します。

    3. [データ移行タスク] の右側のドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。

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

  3. ソースデータベースとターゲットデータベースを構成します。 次の表にパラメータを示します。

    セクション

    パラメータ

    説明

    該当なし

    タスク名

    DTS タスクの名前。 DTS はタスク名を自動的に生成します。 タスクを識別しやすい説明的な名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。

    ソースデータベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTS は、インスタンスの以下のデータベースパラメータを自動的に入力します。 詳細については、「データベース接続を管理する」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、以下のデータベース情報を構成する必要があります。

    データベースタイプ

    ソースデータベースの種類。 [MongoDB] を選択します。

    アクセス方法

    ソースデータベースのアクセス方法。 [クラウドインスタンス] を選択します。

    インスタンスリージョン

    ソース ApsaraDB for MongoDB インスタンスが存在するリージョン。

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

    Alibaba Cloud アカウント間でデータを移行するかどうかを指定します。 × を選択します。

    アーキテクチャ

    ソースインスタンスがデプロイされているアーキテクチャ。 この例では、[レプリカセット] が選択されています。

    説明

    ソース ApsaraDB for MongoDB インスタンスが [シャードクラスター] アーキテクチャにデプロイされている場合は、[シャードアカウント][シャードパスワード] パラメーターを設定する必要があります。

    移行方法

    ソースデータベースから増分データを移行するために使用される方法。 ビジネス要件に基づいて方法を選択します。 有効な値:

    • Oplog (推奨):

      このオプションは、ソースデータベースで oplog 機能が有効になっている場合に利用できます。

      説明

      デフォルトでは、oplog 機能は自主管理 MongoDB データベースと ApsaraDB for MongoDB インスタンスの両方で有効になっています。この機能により、ログのプル速度が速いため、低レイテンシで増分データを移行できます。そのため、「移行方法」パラメーターには Oplog を選択することをお勧めします。

    • ChangeStream: このオプションは、ソースデータベースで変更ストリームが有効になっている場合に利用できます。 詳細については、変更ストリーム を参照してください。

      説明
      • ソースデータベースが非弾性 Amazon DocumentDB クラスタの場合、移行方法パラメータは ChangeStream のみに設定できます。

      • アーキテクチャ パラメータに シャードクラスター を選択した場合、Shardアカウント パラメータと Shardパスワード パラメータを構成する必要はありません。

    インスタンス ID

    ソース ApsaraDB for MongoDB インスタンスの ID です。

    認証データベース

    ソース ApsaraDB for MongoDB インスタンスのデータベースアカウントとパスワードを格納する認証データベースの名前です。認証データベースの名前を以前に変更していない場合、デフォルト値は admin です。

    データベースアカウント

    ソース ApsaraDB for MongoDB インスタンスのデータベースアカウント。

    データベースパスワード

    データベースへのアクセスに使用されるパスワード。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。 ビジネス要件に基づいて、非暗号化SSL 暗号化、または Mongo Atlas SSL を選択できます。 暗号化 パラメータで使用できるオプションは、アクセス方法 パラメータと アーキテクチャ パラメータで選択した値によって決まります。 DTS コンソールに表示されるオプションが優先されます。

    説明
    • アーキテクチャ パラメータが [シャードクラスター] に設定され、移行方法 パラメータが ApsaraDB for MongoDB データベースの Oplog に設定されている場合、暗号化パラメータ SSL 暗号化 は使用できません。

    • ソースデータベースが レプリカセット アーキテクチャを使用する自己管理 MongoDB データベースであり、アクセス方法 パラメータが Alibaba Cloud インスタンス に設定されておらず、暗号化パラメータが SSL 暗号化 に設定されている場合、認証局 (CA) 証明書をアップロードして、ソースデータベースへの接続を検証できます。

    宛先データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTS は、インスタンスの以下のデータベースパラメータを自動的に入力します。 詳細については、「データベース接続を管理する」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、以下のデータベース情報を構成する必要があります。

    データベースタイプ

    ターゲットデータベースの種類。 [Lindorm] を選択します。

    アクセス方法

    ターゲットデータベースのアクセス方法。 [Alibaba Cloud インスタンス] を選択します。

    インスタンスリージョン

    ターゲット Lindorm インスタンスが存在するリージョン。

    インスタンス ID

    ターゲット Lindorm インスタンスの ID。

    データベースアカウント

    ターゲット Lindorm インスタンスのデータベースアカウント。

    データベースパスワード

    データベースへのアクセスに使用されるパスワード。

  4. ページの下部にある [接続テストと続行] をクリックします。

    説明
    • DTS サーバーの CIDR ブロックをソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加して、DTS サーバーからのアクセスを許可できるようにしてください。 詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。

    • ソースデータベースまたはターゲットデータベースが自己管理データベースであり、その アクセス方法Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスの 接続テスト をクリックします。

  5. 移行するオブジェクトを構成します。

    1. オブジェクト設定 ページで、移行するオブジェクトを構成します。

      パラメータ

      説明

      移行タイプ

      • 完全データ移行のみを実行するには、[完全データ移行] のみを選択します。

      • データ移行中のサービス継続性を確保するには、[完全データ移行][増分データ移行] を選択します。

      説明

      [増分データ移行] を選択しない場合は、データ移行中にソースデータベースにデータを書き込まないことをお勧めします。 これにより、ソースデータベースとターゲットデータベース間のデータ整合性が確保されます。

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

      このパラメータを指定する必要はありません。

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

      ターゲットインスタンスのデータベース名とコレクション名の大文字と小文字の区別。 デフォルトでは、[DTS デフォルトポリシー] が選択されています。 オブジェクト名の大文字と小文字の区別がソースデータベースまたはターゲットデータベースと同じになるように、別のオプションを選択できます。 詳細については、「ターゲットインスタンスのオブジェクト名の大文字と小文字の区別を指定する」をご参照ください。

      ソースオブジェクト

      [ソースオブジェクト] セクションで移行するコレクションを選択し、向右小箭头 アイコンをクリックして、コレクションを [選択済みオブジェクト] セクションに移動します。

      選択中のオブジェクト

      ターゲットデータベースのワイドテーブルが SQL 文を実行することによって作成された場合は、ソースインスタンスから移行されるオブジェクトに基づいて、テーブルに必要な列を作成します。 ソースインスタンスに存在するが、テーブルに作成されていない列は、ターゲットデータベースに移行されません。

      1. スキーマ名を編集します。

        1. 選択中のオブジェクト セクションで、移行するコレクションを含むデータベースを右クリックします。

        2. [スキーマの編集] ダイアログボックスの スキーマ名 フィールドに、Lindorm インスタンスで使用するデータベース名を入力します。

          image.png

        3. オプション: 同期する DDL および DML 操作を選択 セクションで、増分データ移行中に移行する操作を選択できます。

        4. [OK] をクリックします。

      2. テーブル名を編集します。

        1. [選択済みオブジェクト] セクションで、移行するコレクションを右クリックします。

        2. [テーブル名の編集] ダイアログボックスの [テーブル名] フィールドに、Lindorm インスタンスで使用するテーブル名を入力します。

          image.png

        3. オプション: データをフィルタリングする条件を指定できます。 詳細については、「フィルタ条件を指定する」をご参照ください。

        4. オプション: 同期する DDL および DML 操作を選択 セクションで、増分データ移行中に移行する操作を選択できます。

      3. ソース ApsaraDB for MongoDB インスタンスから移行する列を指定します。

        DTS はデフォルトで、移行するコレクションのデータをマップし、[値の割り当て] 列に式を構成します。 式がビジネス要件を満たしていることを確認し、[列名][タイプ][長さ][精度] などのパラメータを構成する必要があります。

        1. bson_value() 式で ApsaraDB for MongoDB インスタンスの列のフィールド名を表示します。

          式の "" 内のフィールドは、ApsaraDB for MongoDB インスタンスのフィールド名です。 たとえば、式が bson_value("age") の場合、age は ApsaraDB for MongoDB インスタンスのフィールド名です。

        2. オプション: 移行する必要のないフィールドを削除できます。

          説明

          移行する必要のないフィールドを削除するには、列の横にある image アイコンをクリックします。

        3. 移行するフィールドを構成します。

          bson_value() 式がビジネス要件を満たしていることを確認し、後続の操作を実行します。

          式が必要なフィールドを満たしている

          1. [列名] を入力します。

            説明

            ターゲットテーブルで使用する列名を Lindorm インスタンスに入力します。

            • ターゲットテーブルが SQL 文を実行することによって作成された場合は、これらの列名を [列名] パラメータの値として指定します。

            • ターゲットテーブルが Apache HBase API を呼び出すことによって作成され、追加の列が必要な場合は、列名を編集する前に列マッピングを作成する必要があります。 詳細については、このトピックの「Apache HBase API を呼び出すことによって作成されたテーブルの列マッピングを追加する例」セクションを参照してください。 [列名] パラメータを指定する場合は、次のルールに注意してください。

              • 列がプライマリキーの場合は、列名として [ROW] を指定します。

              • 列がプライマリキーでない場合は、列ファミリ:列名 の形式で列名パラメータを指定します。 例: [person:name]

          2. 列データの [タイプ] を選択します。

            重要

            ターゲットテーブルのデータ型がソース ApsaraDB for MongoDB インスタンスのデータ型と互換性があることを確認してください。

          3. オプション: 列データの [長さ][精度] を指定します。

          4. 上記のステップを繰り返して、フィールドを 1 つずつマップします。

          式が必要なフィールドを満たしていない

          説明

          たとえば、親と子の階層関係を表示するフィールド。

          1. image アイコンをクリックして、[アクション] 列の列の横にあるをクリックします。

          2. [+ 列を追加] をクリックします。image

          3. [列名][タイプ][長さ][精度] パラメータを指定します。

          4. bson_value() 式を [値の割り当て] 列に入力します。詳細については、「値の割り当ての例」をご参照ください。

            重要
            • ターゲットテーブルのプライマリキー列を bson_value("_id") として割り当てます。

            • 階層関係に基づいて、bson_value() 式の各列のフィールドとサブフィールドを指定します。 そうしないと、データが失われたり、タスクが失敗したりする可能性があります。

          5. 上記のステップを繰り返して、フィールドを 1 つずつマップします。

      4. [OK] をクリックします。

    2. 次へ:詳細設定 をクリックして詳細設定を行います。

      パラメーター

      説明

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

      デフォルトでは、専用のクラスターを指定しない場合、DTS はデータ移行タスクを共有クラスターにスケジュールします。 データ移行タスクの安定性を向上させるには、専用のクラスターを購入します。 詳細については、「DTS 専用クラスターとは」をご参照ください。

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

      接続失敗時の再試行時間の範囲。 データ移行タスクの開始後にソースデータベースまたは宛先データベースへの接続に失敗した場合、DTS は再試行時間の範囲内で直ちに接続を再試行します。 有効値: 10 ~ 1,440。 単位: 分。 デフォルト値: 720。 このパラメーターは 30 より大きい値に設定することをお勧めします。 指定された再試行時間の範囲内で DTS がソースデータベースと宛先データベースに再接続された場合、DTS はデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

      説明
      • 同じソースデータベースまたは宛先データベースを共有する複数のデータ移行タスクに異なる再試行時間の範囲を指定した場合、後で指定された値が優先されます。

      • DTS が接続を再試行すると、DTS インスタンスの料金が発生します。 ビジネス要件に基づいて再試行時間の範囲を指定することをお勧めします。 ソースデータベースと宛先インスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。

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

      その他の問題の再試行時間の範囲。 たとえば、データ移行タスクの開始後に DDL または DML 操作の実行に失敗した場合、DTS は再試行時間の範囲内で直ちに操作を再試行します。 有効値: 1 ~ 1440。 単位: 分。 デフォルト値: 10。 このパラメーターは 10 より大きい値に設定することをお勧めします。 指定された再試行時間の範囲内で失敗した操作が正常に実行された場合、DTS はデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値よりも小さくなければなりません。

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

      完全データ移行のスロットリングを有効にするかどうかを指定します。 完全データ移行中、DTS はソースデータベースと宛先データベースの読み取りリソースと書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 ビジネス要件に基づいて、完全データ移行のスロットリングを有効にすることができます。 スロットリングを設定するには、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定する必要があります。 これにより、宛先データベースサーバーの負荷が軽減されます。

      説明

      移行タイプ パラメーターで 完全データ移行 を選択した場合にのみ、このパラメーターを設定できます。

      同期するデータのうち、同一テーブル内のプライマリキー_id のデータ型が一意かどうか

      移行するコレクションでプライマリキー _id のデータ型が一意かどうかを指定します。

      重要
      • ビジネス要件に基づいてこのパラメーターを有効にします。 そうしないと、データが失われる可能性があります。

      • 移行タイプ パラメーターで 完全データ移行 を選択した場合にのみ、このパラメーターが必要です。

      有効値:

      • : データ型が一意です。 完全移行中、DTS はソースデータベースのプライマリキーのデータ型をスキャンしません。

      • ×: データ型が一意ではありません。 完全移行中、DTS はソースデータベースのプライマリキーのデータ型をスキャンします。

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

      増分データ移行のスロットリングを有効にするかどうかを指定します。 スロットリングを設定するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメーターを設定する必要があります。 これにより、宛先データベースサーバーの負荷が軽減されます。

      説明

      移行タイプ パラメーターで 増分データ移行 を選択した場合にのみ、このパラメーターを設定できます。

      環境タグ

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

      ETL の設定

      抽出、変換、書き出し (ETL) 機能を有効にするかどうかを指定します。 詳細については、「ETL とは」をご参照ください。 有効値:

      説明

      Lindorm インスタンスの宛先テーブルが Apache HBase API を呼び出すことによって作成された場合は、次の点に注意してください。

      • ETL スクリプトで、移行するカラムと移行しないカラムを指定する必要があります。 デフォルトでは、ETL タスクで指定されたドキュメントのトップレベルフィールドは、データ移行中に Apache HBase API を呼び出すことによって作成されたテーブルの f カラムファミリーに格納されます。 次のコードは、[_id][name] 以外のカラムのデータ行を動的カラムとして宛先テーブルに書き込む方法を示しています。 詳細については、このトピックの「Apache HBase API を呼び出すことによって作成されたテーブルの ETL タスクの設定例」セクションをご参照ください。

        script:e_expand_bson_value("*", "_id,name")
      • 追加のカラムを追加して ETL 機能を使用する場合は、Lindorm インスタンスに重複データが含まれていないことを確認してください。

      • DTS は、追加のカラムまたは ETL タスクに含まれていないカラムを移行しません。

      監視アラート

      データ移行タスクのアラートを設定するかどうかを指定します。 タスクが失敗した場合、または移行遅延が指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。 有効値:

      • [いいえ]: アラートを設定しません。

      • [はい]: アラートを設定します。 この場合、アラートのしきい値と アラート通知設定 も設定する必要があります。 詳細については、「監視とアラートの設定」トピックの「DTS タスクの作成時に監視とアラートを設定する」セクションをご参照ください。

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

    • DTS タスクを設定するために関連 API 操作を呼び出すときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを移動し、OpenAPI パラメーターのプレビュー をクリックします。

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

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

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。次に、事前チェックを再度実行します。

    • 事前チェック中に項目に対してアラートがトリガーされた場合:

      • アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして、問題をトラブルシューティングします。次に、事前チェックを再度実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再チェック] をクリックして、事前チェックを再度実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

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

    1. [成功率][100%] になるまで待ちます。次に、[次へ: インスタンスの購入] をクリックします。

    2. [インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを設定します。次の表にパラメーターを示します。

      セクション

      パラメーター

      説明

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

      [リソースグループ]

      データ移行インスタンスが属するリソースグループ。デフォルト値: [デフォルトのリソースグループ]。詳細については、「リソース管理とは」をご参照ください。

      インスタンスクラス

      DTS は、移行速度が異なるインスタンスクラスを提供します。ビジネスシナリオに基づいてインスタンスクラスを選択できます。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。

    3. チェックボックスをオンにして、[Data Transmission Service (従量課金制) サービス規約] を読んで同意します。

    4. [購入して開始] をクリックします。表示されるメッセージで、[OK] をクリックします。

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

      説明
      • データ移行タスクを使用して増分データを移行できない場合、タスクは自動的に停止します。[完了][ステータス] セクションに表示されます。

      • データ移行タスクを使用して増分データを移行できる場合、タスクは自動的に停止しません。増分データ移行タスクは停止または完了しません。[実行中][ステータス] セクションに表示されます。

Apache HBase API を呼び出して作成されたテーブルに列マッピングを追加する例

この例では、SQL Shell を使用します。

説明

Lindorm インスタンスのエンジンバージョンは 2.4.0 以降である必要があります。

  1. Apache HBase API を呼び出して作成されたテーブルの列マッピングを作成します。

    ALTER TABLE test MAP DYNAMIC COLUMN f:_mongo_id_ HSTRING/HINT/..., person:name HSTRING, person:age HINT; // Apache HBase API を呼び出して作成されたテーブルの列マッピングを作成します。
  2. Apache HBase API を呼び出して作成されたテーブルのセカンダリインデックスを作成します。

    CREATE INDEX idx ON test(f:_mongo_id_); // Apache HBase API を呼び出して作成されたテーブルのセカンダリインデックスを作成します。

Apache HBase API を呼び出して作成されたテーブルの ETL タスクの設定例

ソース ApsaraDB for MongoDB インスタンスのドキュメント

{
  "_id" : 0,
  "person" : {
    "name" : "cindy0",
    "age" : 0,
    "student" : true
  }
}

ETL 構文

script:e_expand_bson_value("*", "_id")

移行結果

迁移结果

値の割り当ての例

ソース ApsaraDB for MongoDB インスタンスのデータ構造

{
  "_id":"62cd344c85c1ea6a2a9f****",
  // person オブジェクト
  "person":{
    // 名前
    "name":"neo",
    // 年齢
    "age":"26",
    // 性別
    "sex":"male"
  }
}

Lindorm インスタンスの宛先テーブルのスキーマ

列名

カテゴリ

id

STRING

person_name

STRING

person_age

INT

追加カラムの設定

重要

階層関係に基づいて、対応する bson_value() 式で各カラムのフィールドとサブフィールドを指定する必要があります。指定しないと、データが失われたり、タスクが失敗したりする可能性があります。たとえば、bson_value("person") 式を使用してソースカラムの person フィールドのみを指定した場合、DTS は person フィールドのサブフィールド(name、age、sex など)の増分データをデスティネーションカラムに書き込むことができません。

カラム名

カテゴリ

id

STRING

bson_value("_id")

person_name

STRING

bson_value("person","name")

person_age

BIGINT

bson_value("person","age")