【问题标题】:Insert vertex into local Cosmos DB Emulator using Gremlin Console使用 Gremlin 控制台将顶点插入本地 Cosmos DB 模拟器
【发布时间】:2020-01-19 16:21:58
【问题描述】:

我正在尝试使用 Gremlin 控制台将顶点(最后是边)添加到本地 Cosmos DB 图。我一直在关注this tutorial。但是,每当我尝试添加顶点时,都会收到有关分区键的错误。

我的查询:

g.addV('person').property('firstName', 'Thomas').property('lastName', 'Andersen').property('age', 44).property('userid', 1).property('pk', 'pk')

错误:

ActivityId : cd07f7be-d824-40fa-8137-0f2726a9c26d
ExceptionType : GraphRuntimeException
ExceptionMessage :
Gremlin Query Execution Error: Cannot add a vertex where the partition key property has value 'null'.
Source : Microsoft.Azure.Cosmos.Gremlin.Core
GremlinRequestId : cd07f7be-d824-40fa-8137-0f2726a9c26d
Context : graphcompute
Scope : graphcomp-execquery
GraphInterOpStatusCode : GraphRuntimeError
HResult : 0x80131500
Type ':help' or ':h' for help.
Display stack trace? [yN]

如何修复我的查询并插入数据?

【问题讨论】:

    标签: console azure-cosmosdb gremlin azure-cosmosdb-gremlinapi


    【解决方案1】:

    我没有 CosmosDB 测试环境,但是有一个公共示例项目:

    看起来你必须 add 一个 pk 属性(这很可能意味着“分区键”,并且应该以某种方式配置)。

    【讨论】:

    • 谢谢,我试过了,但也没有用。我们还能够在没有分区键的情况下将顶点插入到 Azure 上的 CosmosDB 实例,因此我们也希望能够在没有分区键的情况下将顶点插入到本地实例中。
    • 可能不支持,在这种情况下,我们将向 Azure 实例添加分区键以保持一致性。但是我们仍然不知道如何使用分区键插入记录。
    【解决方案2】:

    我混淆了分区键标签和值。扭转这些解决了我的问题。

    【讨论】:

      【解决方案3】:

      把这两个值混在一起犯了同样的错误。所以当你添加你的天蓝色数据库时,你必须指定一个分区键,我选择了'/client';

      现在,当我进行查询时,我必须添加这个属性:

      .property('client', 'pk')
      

      -- 第一个值必须是键本身,第二个值是 'pk',是 'partitionKey' 的缩写;然后在您的文档中,您必须添加一个属性:

      client: 'TESTCLIENTID'
      

      但同样,这在很大程度上是关于你的“分区”策略的基础,这是你必须为每个集合预先决定的东西,this video from Azure explains things in more detail quite good.

      【讨论】:

        【解决方案4】:

        您不需要在 g.addV 中添加分区键,我查看了“快速启动”选项卡在门户中为您创建的内容,即“graphdb/mycollection”数据库/集合。您可以创建自己的工作正常而无需在添加顶点时指定分区键...只需指定 分区键

        /_partitionKey
        

        并勾选复选框

        My partition key is larger than 100 bytes
        

        无论如何,这为我解决了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-04
          • 1970-01-01
          • 2020-02-21
          • 1970-01-01
          • 2021-05-28
          • 2020-08-06
          相关资源
          最近更新 更多