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 仮想コア クラスター。
- Azure サブスクリプションをお持ちでない場合は、無料でアカウントを作成します。
- 既存の Azure サブスクリプションがある場合は、新しい Azure Cosmos DB for 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
アクセス許可を持つユーザーを追加します (まだそのようなユーザーがいない場合)。 最終的には、mongoexport と mongodump ツールでこの資格情報を使用します。
- Azure Cosmos DB for MongoDB 仮想コア (ターゲット)
- Azure Cosmos DB for MongoDB 仮想コア アカウントの資格情報を収集します。
- Azure Cosmos DB for MongoDB 仮想コアでファイアウォール設定を構成します。
ヒント
さらにファイアウォールの問題を回避するために、MongoDB インスタンスと同じネットワーク内でこれらのツールを実行することをお勧めします。
適切な MongoDB ネイティブ ツールを選択する
オフライン移行に適した MongoDB ネイティブ ツールを選択する際には、いくつかの大まかな考慮事項があります。
移行する
お好みのネイティブ ツールを使用して、ソース MongoDB インスタンスからターゲット Azure Cosmos DB for MongoDB 仮想コア アカウントにコレクションを移行します。 ツールの選択の詳細については、ネイティブ MongoDB ツールに関する記事を参照してください
ヒント
Azure Cosmos DB for MongoDB 仮想コアにインポートするのが小さな JSON ファイルだけである場合、データを取り込むための簡易なソリューションは mongoimport ツールです。
移行元 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
以前にエクスポートしたファイルをターゲットの Azure Cosmos DB for MongoDB 仮想コア アカウントにインポートします。
mongoimport \ --file <filename>.json \ --type json \ --db <database-name> \ --collection <collection-name> \ --ssl \ --uri <target-connection-string>
mongoimport からのターミナル出力を監視します。 出力では、インポート操作の状態を更新して、ターミナルにテキスト行を出力します。