現在、cosmosdbコレクションをcosmosdb内のあるデータベースから別のデータベースに複製しようとしています。 cosmosdbのAPIはMongoAPIに設定されています。
すでにAzureDataファクトリを使おうとしましたが、今のところMongoAPIはサポートされていないようです。
効率、自動化、パフォーマンスにそれぞれこれを行う方法を誰かが考えていますか?
どんなアイデアでも大歓迎です。
データを使用できます Migration tool
Microsoftが同じことを提案しました。
バックアップを取り、cosmosdbをインポートする方法はありません。
EDIT:
新しい Cosmic Clone
ツール、データ/ストアドプロシージャ/トリガー/ udfなどを使用してクローン/バックアップを取ることができます。読み取り my blog
同じです。
mongodump
および mongorestore
を使用してデータベースをコピーしました(mongodbバージョン4.0.9インストール済み)。 Windowsのコマンドラインから、mongodb bin
ディレクトリ(私の場合はc:\Program Files\MongoDB\Server\4.0\bin
)から次のコマンドを実行しました。
これにより、DB内のインデックスを含むすべてのコレクションが、指定された/out
ディレクトリに.json
ファイルとしてコピーされます。
mongodump.exe /uri:URI /out:A_DIRECTORY_TO_DUMP_TO
次に、次のコマンドを実行して、/out
ディレクトリ内のすべてを取得し、ターゲットDBに書き込みます。
mongorestore.exe /uri:URI /dir:DIRECTORY_TO_RESTORE_FROM
注:インポートする前に、コレクションのスループットも増やす必要がありましたそうしないと、レート制限エラーが発生しました。データベースレベルでスループットを設定した場合は、これを変更する必要がある場合があります。
すでにAzureDataファクトリを使おうとしましたが、今のところMongoAPIはサポートされていないようです。
実際、Cosmos DB MongoAPIとSQLAPIはすべてAzureCosmos DBサービスに属しているため、データベースのAzureデータファクトリでcosmosdbリンクサービスとデータセットを作成できます。
次に、 copy activity を作成して、あるコレクションから別のコレクションにデータをインポートできます。
自動化タスクとして作成する場合は、次の2つの方法を使用してコピーアクティビティを実行することをお勧めします。
1 . Azureタイムトリガー関数 。
2 . Webジョブ これはAzure WebAppのバックグラウンドで実行されます。
お役に立てば幸いです。ご不明な点がございましたら、お気軽にお問い合わせください。