作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 CosmosDB 中创建了一个容器,用于跟踪有关每个 API 调用的元数据(时间戳、用户 ID、方法名称、持续时间等)。分区键设置为UserId
,每个id都是随机的Guid
。这个容器还帮助我对每个用户实现速率限制。到目前为止,一切都很好。现在,我想通过将记录移动到 Azure 表(或其他表)以进行长期存储并生成报告来定期清理此容器。迁移记录还可以帮助我避免 20GB 逻辑分区大小限制。
但是,我担心跨分区查询最终是否会影响我。假设我想迁移一周前创建的所有记录。另外,假设我有数百万活跃用户。因此,该容器看到大量事件,并且我无法在查询中指定分区键。我读到,当 RU/s 和存储大小都很大时,我们应该避免跨分区查询。请参阅this 。我不知道将来我最终会处理多少个物理分区。
我的设计完全不合格吗?如何高效迁移记录?我希望 CosmosDB 团队能够看到这一点并帮助我找到解决这个问题的方法。
最佳答案
更简单的方法是使用 time to live只需将事件\数据同时写入 Cosmos 数据库和表存储,以便它永远保留在表存储中,但在 TTL 过期时从 Cosmos DB 中消失。您可以在文档级别指定 TTL,因此如果您需要某些文档的生命周期更长 - 这是可以做到的。
另一种方法可能是使用 change feed .
关于azure - 宇宙数据库 : Efficiently migrate records from a large container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61038309/
我是一名优秀的程序员,十分优秀!