我正在查看CosmosDB分区工具,到目前为止,我得到的是它对性能有好处。它确实可以帮助我们避免扇出查询,但我遇到了一个关于分区的问题。对于编写中的分区,如果我有不同类型的文档,可以是数千个文档,属于同一个分区,写入操作将很慢,但是如果我给它们不同的分区键,那么我将失去事务行为,因为存储过程的作用域是一个事务。
我的用例是,我在同一集合中有不同类型的文档,在某一特定时间,我将更新和插入数千种不同类型的文档,我必须在同一个事务中这样做,这意味着我必须使用相同的键,但是如果我这样做,那么我将执行CosmosDB中不建议的热写入操作。任何关于如何实现这一问题的帮助都将受到赞赏。
发布于 2017-10-27 21:44:21
人们使用存储过程对文档进行批处理,而现在它确实将您限制在一个分区上。但是,要注意其他限制,即您的分区键应该是这样的,这样您的文档就会在不同的分区中散开。因此,您的一个批处理可以用于一个分区键,下一个批处理可以用于另一个分区密钥。
在这里阅读更多https://learn.microsoft.com/en-us/azure/cosmos-db/partition-data
希望能帮上忙。
拉法
发布于 2020-03-31 20:54:58
这很棘手..。目前,我确实在一个分区中拥有大量的文档,也许以后我需要重新设计集合。现在,我正在CosmosDB中使用批量插入/更新库。链接https://learn.microsoft.com/en-us/azure/cosmos-db/bulk-executor-overview的方式更快的大数据插入/更新,它的微软支持的库,但它支持的事务行为,但只使用一个分区。所以现在我很安全。
https://stackoverflow.com/questions/46967842
复制相似问题