【问题标题】:Azure Cosmos DB asking for partition key for stored procedureAzure Cosmos DB 请求存储过程的分区键
【发布时间】:2018-02-15 00:40:50
【问题描述】:

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

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

    如果注册存储过程的集合是 单分区集合,则事务范围为所有 集合中的文档。如果集合是分区的, 然后存储过程在一个事务范围内执行 单个分区键。然后每个存储过程执行必须 包括与范围对应的分区键值 事务必须在下运行。

    你可以参考上面提到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 的选择查询,那就太好了。这将是很大的帮助
    • @Dadwals 让我们在这个聊天室里谈谈:chat.stackoverflow.com/rooms/165266/jaydadwals
    • 我刚加入聊天室
    • @JayGong 我有一个场景,比如我必须删除一个具有不同分区键的文档(假设我的分区键是车辆类型),如果我必须删除 10 种类型的车辆,我可以在一次运行还是我需要运行 sp 10 次?
    【解决方案2】:

    例如你的分区键是 /id

    你的 cosmos 文档是

    {
      "id" : abcde
    }
    

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

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

    【讨论】:

      【解决方案3】:

      请观看此视频 https://youtu.be/F0wEDdxQER0?t=9m40s

      请在此处阅读有关分区键的更多信息:https://docs.microsoft.com/en-us/azure/cosmos-db/partition-data

      【讨论】:

      • 让我给出一个场景。假设我有 UpsPackage 作为我的文档,并且根据您的建议,我明智地选择了 City 作为名为 packages 的集合的分区键。现在我的 Web 应用程序提供了通过跟踪 id 搜索包状态的功能。现在在这种情况下我将如何使用分区键进行查询(因为我不知道跟踪 ID 属于哪个城市)?
      • 那为什么不做tracking Id分区键呢?
      • 这就是我最初所做的,我在上面的问题中使用的 GUID。现在的问题是,我有一个需要每周运行的 proc 删除所有(打包)城市等于说“纽约”的文档。现在要运行 proc 它需要一个分区键。那我现在该怎么办?
      • 更新了我的答案,请看视频。 HTH
      • 谢谢拉法特。该视频很有帮助。
      猜你喜欢
      • 2020-10-08
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多