Azure Cosmos DB要求存储过程的分区键

Dad*_*als 5 azure azure-cosmosdb

我将GUID Id用作分区键,并且在尝试运行存储过程时遇到问题。要运行存储过程,我需要提供分区键,但我不确定在这种情况下应提供什么值?请协助。

Jay*_*ong 4

如果存储过程注册的集合是单分区集合,则事务的范围仅限于该集合内的所有文档。如果集合已分区,则存储过程将在单个分区键的事务范围内执行。每个存储过程执行必须包含一个与事务必须运行的范围相对应的分区键值。

您可以参考上面提到的这里的描述。

正如@Rafat Sarosh 所说,GUID Id这不是一个合适的partitioning key. 根据您的情况,city可能更合适。您可能需要调整您的数据库partitioning scheme,因为分区键定义后无法删除或修改。

我建议您将数据导出json文件,然后导入city到通过Azure Cosmos DB 数据迁移工具分区的新集合。

希望对您有帮助。


只是为了总结:

问题:

执行sql查询文档时无法提供特定的分区键值。

解决方案:

1.执行查询sql时设置EnableCrossPartitionQuerytrue。(有性能瓶颈)

2.考虑设置一个经常查询的字段作为分区键。