当前,我正在尝试将cosmos db集合从一个数据库克隆到cosmos db中的另一个数据库。 cosmos db的API设置为Mongo API。
我已经尝试使用Azure数据工厂,但是到目前为止,似乎没有对Mongo API的支持。
有没有人知道如何在效率,自动化和性能方面做到这一点?
任何想法都值得赞赏。
答案 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链接服务和数据集。
然后,您可以创建copy activity来将数据从一个集合导入到另一个集合。
如果要将其作为自动化任务,建议使用以下两种方法来运行复制活动。
1。Azure Time Trigger Function。
2。Web job,它在Azure Web App的后台运行。
希望它能对您有所帮助。有任何问题,请随时让我知道。
答案 2 :(得分:0)
我用mongodump
和mongorestore
复制了我的数据库(安装了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
注意::在导入之前,我还必须提高集合的吞吐量,否则会遇到限速错误。如果您已在数据库级别设置了吞吐量,则可能需要更改它。