分区键在Cosmos DB Sql API插入中的作用?和大批执行人一起?

时间:2018-09-01 18:55:01

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi

我正试图在100-300Kb之间重复插入大约850个文档到一个波斯菊集合中。我把它们都放在同一个分区键中。

估算者建议,在5万个RU中,应该短时间处理此问题,但在超过10万个RU中,每组平均需要20分钟左右,而不是更合理的时间。

每个文档都应该有唯一的分区键吗?是否所有文档都进入相同的分区键,它们是按顺序处理并且容量没有达到负载均衡的问题? 使用批量执行程序可以解决此问题吗?

1 个答案:

答案 0 :(得分:1)

  

每个文档都应该有唯一的分区键吗?是问题   所有文档都移到相同的分区键,   它们是按顺序处理的,容量是否不是负载均衡的?

您可以在此doc中找到以下声明。

  

充分利用为一个容器或一组容器配置的吞吐量   容器,您必须选择一个分区键,使您能够均匀地   在所有不同的分区键值之间分配请求。

因此,我认为定义分区键非常适合插入或查询。但是,分区键的选择确实值得一试。请参考此doc选择分区键。

  

会使用批量执行程序解决此问题吗?

是的,您可以在大容量插入中使用延续令牌。更多详细信息,请参考我之前的案例:How do I get a continuation token for a bulk INSERT on Azure Cosmos DB?

希望它对您有帮助。


为便于总结,我们需要评估默认的收集索引。它可能比实际写入文件多100至1000倍的RU。