【问题标题】:How do I backup data to azure blob from azure cosmos db during a specific stage?如何在特定阶段将数据从 azure cosmos db 备份到 azure blob?
【发布时间】:2020-10-10 19:29:10
【问题描述】:

我有 Azure cosmos DB 帐户,我想做的是使用我的节点应用程序将一个月前的数据从 azure cosmos DB 备份到 Azure blob 存储。我已经创建了管道并通过使用 Nodejs 的创建运行管道 API(使用 Azure 数据工厂)触发了它。但是我无法弄清楚如何使管道对从当前日期开始一个月前的数据进行选择性处理。有什么建议吗?

编辑:实际上我想每天运行 API,以便它备份一个月前的数据。例如,假设我今天在我的 cosmos DB 中获得 100 个条目,因此管道应选择当前日期 - 30 天的数据并应备份它,以便在任何时候我的 Azure cosmos DB 仅包含最近 30 天的数据并休息已备份到 Azure blob。

【问题讨论】:

    标签: node.js azure azure-cosmosdb azure-blob-storage azure-data-factory


    【解决方案1】:

    这里只是对@David的回答的补充。如果您指的是Cosmos DB SQL API,它具有基于此链接的自动备份机制:Automatic and online backups

    使用 Azure Cosmos DB,不仅可以备份您的数据,还可以备份您的 数据具有高度冗余性,并且能够抵御区域性灾难。这 目前每四个小时进行一次自动备份,并且在任何时间 时间点,存储最新的两个备份。如果你有 意外删除或损坏了您的数据,您应该联系 Azure 在八小时内提供支持,以便 Azure Cosmos DB 团队可以提供帮助 您从备份中恢复数据。

    但是,您不能直接访问此备份。仅当启动备份还原时,Azure Cosmos DB 才会使用此备份。

    但是文档提供了两个options来管理你自己的备份。

    • 1.使用 Azure 数据工厂定期将数据移动到您选择的存储中。
    • 2.使用 Azure Cosmos DB 更改源定期读取数据以进行完整备份以及增量更改,并将其存储在您自己的 存储。

    您可以使用触发ADF中的复制活动来传输时间表中的数据。如果您想按日期过滤数据,您可以了解cosmos db中的_ts,它表示数据的最新修改时间。

    【讨论】:

    • 我实际上是 Azure 的新手。我正在处理的数据中已经有一个日期字段。我希望使用 ADF 的管道将当前日期一个月前的数据备份到 Azure blob,您能否提供有关如何执行此操作的更多信息?已经谢谢了!
    【解决方案2】:

    不确定您指的是哪个管道。也就是说:Cosmos DB 没有任何内置备份工具。您需要以编程方式选择并复制此数据。

    如果使用 MongoDB API,您可以将查询参数传递给 mongoexport 命令行工具(用作您的日期过滤器),但您仍然需要从您的 VM 运行 mongoexport,写入一个本地目录,然后复制到 blob 存储(我不知道您是否可以在 Azure Functions 或 DevOps 管道之类的东西中安装/运行 MongoDB 工具)。

    【讨论】:

    • 实际上,我创建了一个管道,使用 azure 数据工厂将数据从 azure cosmos DB 传输到 Azure blob 存储。 docs.microsoft.com/en-us/azure/data-factory/…
    • 您这样做真是太好了,因为数据工厂是一个非常通用的工具。如果数据工厂是您在原始问题中所指的,当您提到“管道”时,在您的问题(和您的标签)中澄清这一点将非常有帮助。这将真正改变问题的焦点,使其具体到数据工厂。
    猜你喜欢
    • 2018-11-15
    • 2019-02-06
    • 2015-01-08
    • 2021-11-19
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多