我正试图在100-300Kb之间重复插入大约850个文档到一个波斯菊集合中。我把它们都放在同一个分区键中。
估算者建议,在5万个RU中,应该短时间处理此问题,但在超过10万个RU中,每组平均需要20分钟左右,而不是更合理的时间。
每个文档都应该有唯一的分区键吗?是否所有文档都进入相同的分区键,它们是按顺序处理并且容量没有达到负载均衡的问题? 使用批量执行程序可以解决此问题吗?
答案 0 :(得分:1)
每个文档都应该有唯一的分区键吗?是问题 所有文档都移到相同的分区键, 它们是按顺序处理的,容量是否不是负载均衡的?
您可以在此doc中找到以下声明。
充分利用为一个容器或一组容器配置的吞吐量 容器,您必须选择一个分区键,使您能够均匀地 在所有不同的分区键值之间分配请求。
因此,我认为定义分区键非常适合插入或查询。但是,分区键的选择确实值得一试。请参考此doc选择分区键。
会使用批量执行程序解决此问题吗?
是的,您可以在大容量插入中使用延续令牌。更多详细信息,请参考我之前的案例:How do I get a continuation token for a bulk INSERT on Azure Cosmos DB?。
希望它对您有帮助。
为便于总结,我们需要评估默认的收集索引。它可能比实际写入文件多100至1000倍的RU。