Azure cosmosdb Cosmos数据库的存档数据-Mongo数据库

Azure cosmosdb Cosmos数据库的存档数据-Mongo数据库,azure-cosmosdb,azure-cosmosdb-mongoapi,Azure Cosmosdb,Azure Cosmosdb Mongoapi,在我正在进行的项目中,每个租户都有一个数据库,每个租户至少由一个部门组成。我们的一个要求是,当管理员用户使用我们提供的定制前端删除一个部门时,系统应首先将该部门的数据归档到blob存储中,然后再删除数据。与租户相同,我们需要在从帐户中删除该租户的数据库之前归档数据 现在,我的问题是:有什么最佳实践可以做到这一点吗?我们计划使用mongo查询,根据部门id(也是分区键)从所有集合中检索所有数据,然后将其发送到blob存储。我们面临的挑战是执行查询以检索所有数据,因为数据量可能很大,而且该操作所需的

在我正在进行的项目中,每个租户都有一个数据库,每个租户至少由一个部门组成。我们的一个要求是,当管理员用户使用我们提供的定制前端删除一个部门时,系统应首先将该部门的数据归档到blob存储中,然后再删除数据。与租户相同,我们需要在从帐户中删除该租户的数据库之前归档数据

现在,我的问题是:有什么最佳实践可以做到这一点吗?我们计划使用mongo查询,根据部门id(也是分区键)从所有集合中检索所有数据,然后将其发送到blob存储。我们面临的挑战是执行查询以检索所有数据,因为数据量可能很大,而且该操作所需的RU可能会影响系统的性能,因为在我们删除数据时,其他用户可能正在使用系统

我看过mongodump和mongoexport,但这些都是应用程序,所以我们不能从代码中执行它


有什么想法吗?非常感谢。

我认为解决这个问题的一个方法是使用,因为它确实有助于并简化在其他地方编写复写本的工作

但是,到目前为止,更改提要处理程序不会通知您已删除的文档,因此您无法侦听这些文档,此功能非常有用


最好是编写一些自定义应用程序,使用

进行归档。这些存储过程和UDF特定于核心(sql)api,而不适用于MongoDB api。此外,存储过程的作用域是分区,在尝试导出数据库时不会有帮助。@DavidMakogon是正确的,谢谢!您可以从应用程序调用命令行工具,
mongoexport
/
mongodump
除了一些自定义代码之外,这实际上是您目前唯一的选择。如何做到这一点完全取决于你自己。MongoDB API没有内置的导出/导入功能。