【发布时间】:2018-02-15 00:40:50
【问题描述】:
我使用 GUID Id 作为我的分区键,当我尝试运行存储过程时遇到问题。要运行存储过程,我需要提供分区键,我不确定在这种情况下我应该提供什么值?请帮忙。
【问题讨论】:
标签: azure azure-cosmosdb
我使用 GUID Id 作为我的分区键,当我尝试运行存储过程时遇到问题。要运行存储过程,我需要提供分区键,我不确定在这种情况下我应该提供什么值?请帮忙。
【问题讨论】:
标签: azure azure-cosmosdb
如果注册存储过程的集合是 单分区集合,则事务范围为所有 集合中的文档。如果集合是分区的, 然后存储过程在一个事务范围内执行 单个分区键。然后每个存储过程执行必须 包括与范围对应的分区键值 事务必须在下运行。
你可以参考上面提到here的描述。
正如@Rafat Sarosh 所说,GUID Id 不是合适的partitioning key。根据您的情况,city 可能更合适。您可能需要调整您的数据库partitioning scheme,因为分区键在您定义后无法删除或修改。
我建议您将exporting your data 转至json 文件,然后将import 转至一个由city 通过Azure Cosmos DB Data migration tool 划分的新集合。
希望对你有帮助。
仅作总结:
问题:
执行sql查询文档时,无法提供具体的分区键值。
解决方案:
1.执行查询sql时将EnableCrossPartitionQuery设置为true(存在性能瓶颈)
2.考虑将经常查询的字段设置为分区键。
【讨论】:
例如你的分区键是 /id
你的 cosmos 文档是
{
"id" : abcde
}
存储过程运行时,需要粘贴:abcde值
因此,如果您希望存储过程跨分区运行,则不能 宇宙团队的回答 https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/33550159-support-stored-procedure-execution-over-all-partit
【讨论】:
请观看此视频 https://youtu.be/F0wEDdxQER0?t=9m40s
请在此处阅读有关分区键的更多信息:https://docs.microsoft.com/en-us/azure/cosmos-db/partition-data
【讨论】: