web-dev-qa-db-ja.com

Azure Cosmos DB:コレクションを別のデータベースにクローンします

現在、cosmosdbコレクションをcosmosdb内のあるデータベースから別のデータベースに複製しようとしています。 cosmosdbのAPIはMongoAPIに設定されています。

すでにAzureDataファクトリを使おうとしましたが、今のところMongoAPIはサポートされていないようです。

効率、自動化、パフォーマンスにそれぞれこれを行う方法を誰かが考えていますか?

どんなアイデアでも大歓迎です。

5
Fabian

データを使用できます Migration tool Microsoftが同じことを提案しました。

バックアップを取り、cosmosdbをインポートする方法はありません。

EDIT:

新しい Cosmic Clone ツール、データ/ストアドプロシージャ/トリガー/ udfなどを使用してクローン/バックアップを取ることができます。読み取り my blog 同じです。

5
Sajeetharan

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

注:インポートする前に、コレクションのスループットも増やす必要がありましたそうしないと、レート制限エラーが発生しました。データベースレベルでスループットを設定した場合は、これを変更する必要がある場合があります。

0
Castrohenge

すでにAzureDataファクトリを使おうとしましたが、今のところMongoAPIはサポートされていないようです。

実際、Cosmos DB MongoAPIとSQLAPIはすべてAzureCosmos DBサービスに属しているため、データベースのAzureデータファクトリでcosmosdbリンクサービスとデータセットを作成できます。

enter image description here

次に、 copy activity を作成して、あるコレクションから別のコレクションにデータをインポートできます。

enter image description here

自動化タスクとして作成する場合は、次の2つの方法を使用してコピーアクティビティを実行することをお勧めします。

1 . Azureタイムトリガー関数

2 . Webジョブ これはAzure WebAppのバックグラウンドで実行されます。

お役に立てば幸いです。ご不明な点がございましたら、お気軽にお問い合わせください。

0
Jay Gong