文档更新导致集合大于10GB

时间:2016-03-04 23:20:37

标签: azure azure-cosmosdb

当文档更新导致超出集合大小(10 GB)时,DocumentDb如何处理这种情况。假设我的一个集合中有50K文档,然后我更新所有文档以包含可能超出集合大小的其他JSON部分。

处理此案例的最佳做法是什么,并且内置支持来处理此方案(例如,将该文档移至另一个集合)。

1 个答案:

答案 0 :(得分:1)

没有特定的最佳实践,但您在DocumentDB中内置了特定的内容以帮助您做出正确的决定:

  • x-ms-resource-usage是您的查询返回的标头。除其他事项外,collectionSize将报告集合中的总消耗,包括索引的开销等。您可以将其与返回的collectionSize标头中的x-ms-resource-quota进行比较(应该等于10GB) ,知道剩余的开销是多少。 this answer中有更多细节。
  • 各种语言级驱动程序提供分区支持。当您意识到需要跨多个分区时,可以实现分区解析程序,以允许跨多个分区写入内容。有几个答案涉及分区思路,例如this one发布的Larry Maccherone。 DocumentDB团队发表了一篇关于分区的文章here
  • 您可能已经知道了,但是:您可以检查HTTP 403,这是在尝试插入文档和超出集合大小时返回的。所有错误代码都记录在案here

关于将文档移动到不同集合的问题:无论是在代码中执行此操作还是利用分区解析器,最终都将成为您的电话。