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

时间:2018-02-15 00:40:50

标签: azure azure-cosmosdb

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

3 个答案:

答案 0 :(得分:1)

  

如果存储过程注册的集合是a   单分区集合,然后将事务范围限定为所有   集合中的文档。如果集合是分区的,   然后存储过程在a的事务范围内执行   单分区键。然后必须执行每个存储过程   包括对应于范围的分区键值   交易必须在。

下运行

您可以参考上面提到here的说明。

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

我建议您exporting your datajson文件import提交到city通过Azure Cosmos DB Data migration tool分区的新馆藏。

希望它对你有所帮助。

仅供参考:

<强> 问题:

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

<强>解决方案:

1.执行查询sql时将EnableCrossPartitionQuery设置为true。(有性能瓶颈)

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

答案 1 :(得分:0)

答案 2 :(得分:0)

示例您的分区键是/ id

您的波斯菊文档是

{
  "id" : abcde
}

运行存储过程时,需要粘贴:abcde值

因此,如果您希望存储过程运行跨分区,则不能 宇宙团队的回答 https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/33550159-support-stored-procedure-execution-over-all-partit