次の方法で共有


MongoDB ネイティブ ツールを使用して、MongoDB を Azure Cosmos DB for MongoDB 仮想コアにオフラインで移行する

適用対象: MongoDB 仮想コア

このチュートリアルでは、MongoDB ネイティブ ツールを使用して、MongoDB のオンプレミスまたはクラウドのインスタンスから Azure Cosmos DB for MongoDB 仮想コアに、データベースのオフライン (1 回限り) の移行を実行できます。 MongoDB ネイティブ ツールは、既存の MongoDB インスタンスに対するデータ操作を容易にするバイナリのセットです。 このドキュメントでは、"mongoexport および mongoimport" または "mongodump および mongorestore" を使用して MongoDB インスタンスからデータを移行する方法に焦点を当てています。 ネイティブ ツールは接続文字列を使用して MongoDB に接続されるため、ツールは任意の場所で実行できます。 ネイティブ ツールは、総移行時間が問題にならない小規模なデータセットのための最も簡単なソリューションです。

前提条件

準備

移行を開始する前に、Azure Cosmos DB for MongoDB 仮想コア アカウントと既存の MongoDB インスタンスを移行用に準備したことを確認してください。

  • MongoDB インスタンス (ソース)
    • 移行前評価を完了して、ソース インスタンスとターゲット アカウントの間に非互換性と警告の一覧があるかどうかを判断します。
    • MongoDB ネイティブ ツールが、既存の (ソース) MongoDB インスタンスと同じバージョンと一致するようにします。
      • MongoDB インスタンスのバージョンが Azure Cosmos DB for MongoDB 仮想コアと異なる場合は、MongoDB ネイティブ ツールの両方のバージョンをインストールし、MongoDB と Azure Cosmos DB for MongoDB 仮想コアにそれぞれ適切なツール バージョンを使用します。
    • readWrite アクセス許可を持つユーザーを追加します (まだそのようなユーザーがいない場合)。 最終的には、mongoexportmongodump ツールでこの資格情報を使用します。
  • Azure Cosmos DB for MongoDB 仮想コア (ターゲット)

ヒント

さらにファイアウォールの問題を回避するために、MongoDB インスタンスと同じネットワーク内でこれらのツールを実行することをお勧めします。

適切な MongoDB ネイティブ ツールを選択する

オフライン移行に適した MongoDB ネイティブ ツールを選択する際には、いくつかの大まかな考慮事項があります。

移行する

お好みのネイティブ ツールを使用して、ソース MongoDB インスタンスからターゲット Azure Cosmos DB for MongoDB 仮想コア アカウントにコレクションを移行します。 ツールの選択の詳細については、ネイティブ MongoDB ツールに関する記事を参照してください

ヒント

Azure Cosmos DB for MongoDB 仮想コアにインポートするのが小さな JSON ファイルだけである場合、データを取り込むための簡易なソリューションは mongoimport ツールです。

  1. 移行元 MongoDB インスタンスからデータをエクスポートするには、ターミナルを開き、次の 3 つの方法のいずれかを使用します。

    • JSON レコードに接続してエクスポートする --host--username、および --password 引数を指定します。

      mongoexport \
          --host <hostname><:port> \
          --username <username> \
          --password <password> \
          --db <database-name> \
          --collection <collection-name> \
          --out <filename>.json
      
    • --query 引数を追加して MongoDB データのサブセットをエクスポートします。 この引数を指定すると、フィルターに一致するドキュメントのみがツールでエクスポートされるようになります。

      mongoexport \
          --host <hostname><:port> \
          --username <username> \
          --password <password> \
          --db <database-name> \
          --collection <collection-name> \
          --query '{ "quantity": { "$gte": 15 } }' \
          --out <filename>.json
      
    • Azure Cosmos DB for MongoDB 仮想コアからデータをエクスポートします。

      mongoexport \
          --uri <target-connection-string>
          --db <database-name> \
          --collection <collection-name> \
          --query '{ "quantity": { "$gte": 15 } }' \
          --out <filename>.json
      
  2. 以前にエクスポートしたファイルをターゲットの Azure Cosmos DB for MongoDB 仮想コア アカウントにインポートします。

    mongoimport \
        --file <filename>.json \
        --type json \
        --db <database-name> \
        --collection <collection-name> \
        --ssl \
        --uri <target-connection-string>
    
  3. mongoimport からのターミナル出力を監視します。 出力では、インポート操作の状態を更新して、ターミナルにテキスト行を出力します。

次のステップ