Azure Cosmos DB:将集合克隆到另一个数据库

时间:2018-07-05 07:59:57

标签: mongodb azure azure-cosmosdb

当前,我正在尝试将cosmos db集合从一个数据库克隆到cosmos db中的另一个数据库。 cosmos db的API设置为Mongo API。

我已经尝试使用Azure数据工厂,但是到目前为止,似乎没有对Mongo API的支持。

有没有人知道如何在效率,自动化和性能方面做到这一点?

任何想法都值得赞赏。

3 个答案:

答案 0 :(得分:2)

您可以使用Microsoft建议的数据Migration tool进行操作。

无法备份并导入cosmosdb。

EDIT:

使用新的Cosmic Clone工具,您可以对数据/存储过程/触发器/ udf等进行克隆/备份。在同一页面上阅读my blog

答案 1 :(得分:0)

  

我已经尝试使用Azure数据工厂,但是看起来像这样   到目前为止,尚无对Mongo API的支持。

实际上,Cosmos DB Mongo API和SQL API都属于Azure Cosmos DB服务。因此,您仍然可以在Azure数据库中为数据库创建cosmos db链接服务和数据集。

enter image description here

然后,您可以创建copy activity来将数据从一个集合导入到另一个集合。

enter image description here

如果要将其作为自动化任务,建议使用以下两种方法来运行复制活动。

1。Azure Time Trigger Function

2。Web job,它在Azure Web App的后台运行。

希望它能对您有所帮助。有任何问题,请随时让我知道。

答案 2 :(得分:0)

我用mongodumpmongorestore复制了我的数据库(安装了mongodb 版本4.0.9 )。在Windows命令行中,我从mongodb bin目录(在我的情况下为c:\Program Files\MongoDB\Server\4.0\bin)中运行了以下命令。

这会将数据库中的所有集合(包括索引)作为/out文件复制到指定的.json目录。

mongodump.exe /uri:URI /out:A_DIRECTORY_TO_DUMP_TO

然后我运行以下命令以将所有内容保存在/out目录中,并将其写入目标数据库:

mongorestore.exe /uri:URI /dir:DIRECTORY_TO_RESTORE_FROM

注意::在导入之前,我还必须提高集合的吞吐量,否则会遇到限速错误。如果您已在数据库级别设置了吞吐量,则可能需要更改它。