【问题标题】:Azure Cosmos DB: Clone collection to another databaseAzure Cosmos DB:将集合克隆到另一个数据库
【发布时间】:2018-12-13 15:06:55
【问题描述】:

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

我已经尝试过使用 Azure 数据工厂,但目前似乎不支持 Mongo API。

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

感谢任何想法。

【问题讨论】:

    标签: mongodb azure azure-cosmosdb


    【解决方案1】:

    我使用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
    

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

    【讨论】:

      【解决方案2】:

      您可以使用 Microsoft 建议的数据 Migration tool 来做同样的事情。

      没有办法备份和导入 cosmosdb。

      EDIT:

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

      【讨论】:

      • 我忘了说我每天都需要这个作为自动化任务。该软件似乎无法在自动化环境中使用。
      • 在这种情况下,您需要使用 api 编写函数或 Web 作业来完成此操作
      • 我猜是这样......希望有什么东西可以开箱即用:)
      • 您好 Sajeetharan,我使用迁移工具查找了您的想法。这在此设置中不起作用,如文档所述:“数据迁移工具当前不支持将 Azure Cosmos DB MongoDB API 作为源或目标。”
      • @Fabian 现在您可以使用 cosmosdb 进行备份检查更新的答案
      【解决方案3】:

      我已经尝试过使用 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 后台运行。

      希望对您有所帮助。如有任何疑问,请随时告诉我。

      【讨论】:

      • 我已经这样做了,但迁移过程似乎破坏了我的收藏。作业完成没有错误,但从 Azure 门户以及 Robo 3T 无法再访问该集合...
      • 使用“跳过不兼容的行并记录”错误..关于容错。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 2020-12-17
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 2019-02-17
      相关资源
      最近更新 更多