如何在特定阶段将数据从azure cosmos db备份到azure blob?

时间:2019-07-08 16:12:00

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

我有Azure cosmos DB帐户,我想要做的是使用我的节点应用程序将数据从天蓝色的cosmos DB备份到Azure blob存储一个月之久。我已经创建了管道,并已通过使用针对Node.js的创建运行管道API(使用Azure数据工厂)来触发了管道。但是我无法弄清楚如何使管道对从当前日期起一个月的数据具有选择性。有什么建议吗?

编辑:实际上,我想每天运行API,以便备份一个月前的数据。例如,假设我今天在cosmos数据库中收到100个条目,因此管道应从当前日期(即30天)中选择数据并备份,以便在任何时候我的Azure cosmos DB仅具有最近30天的数据,其余时间备份到Azure blob。

2 个答案:

答案 0 :(得分:0)

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

如果使用MongoDB API,则可以将查询参数传递到mongoexport命令行工具(用作日期过滤器),但是仍然需要从您的计算机上运行mongoexport虚拟机,写入本地目录,然后复制到Blob存储(我不知道您是否可以在Azure Functions或DevOps管道等工具中安装/运行MongoDB工具)。

答案 1 :(得分:0)

这里只是@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更改Feed定期读取数据以进行完整备份以及增量更改,并将其存储在您自己的数据库中 存储。

您可以在ADF中使用触发器复制活动来传输计划中的数据。如果要按日期过滤数据,则可以了解cosmos db中的_ts,它代表了数据的最新修改时间。 / p>

相关问题