【问题标题】:Archive Data from Cosmos DB - Mongo DB从 Cosmos DB 归档数据 - Mongo DB
【发布时间】:2021-05-12 22:47:22
【问题描述】:

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

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

我查看了 mongodump 和 mongoexport,但它们是应用程序,因此我们无法从代码中执行它?

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

【问题讨论】:

  • 可以从应用程序调用命令行工具 - 除了一些自定义代码之外,mongoexport / mongodump 确实是您目前唯一的选择。你如何做到这一点完全取决于你。 MongoDB API 没有内置的导出/导入。

标签: azure-cosmosdb azure-cosmosdb-mongoapi


【解决方案1】:

我认为解决此问题的一种方法是使用ChangeFeed,因为它确实有助于并简化了在其他地方编写副本。

但是,到目前为止,更改提要处理器不会通知您删除的文档,因此您无法收听它们,此功能是 planned as of now

最好的办法是编写一些使用Query language support进行归档的自定义应用程序

【讨论】:

  • 那些存储过程和 UDF 特定于核心 (sql) api,不适用于 MongoDB API。此外,存储过程仅限于分区,在尝试导出数据库时无济于事。
  • @DavidMakogon 是的,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 2022-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 2019-03-30
相关资源
最近更新 更多