使用Gremlin进行更新操作的Cosmos图DB RU

时间:2020-07-01 08:01:41

标签: azure-cosmosdb azure-cosmosdb-gremlinapi gremlinnet

我有一个图形数据库,要求是在几个顶点上更新属性。现在,假设我必须将属性值从0更新为1。

方法1- 循环运行每个顶点的更新

foreach(int id in ids) {
  g.V().has('vertex','key','test').has('id', id).Property('status','1')
}
每个查询使用的

RU-

METRIC |值

请求费用| 17.29

方法2- 使用单个Gremlin查询更新所有顶点

g
  .V()
  .has('vertex','key','test')
  .has('id', within('1','2','3'))
  .Property('status','1')

METRIC |值

请求费用| 41.4

哪种方法最好考虑RU和运行代码所需的时间?

1 个答案:

答案 0 :(得分:0)

您应该使用消耗最少RU的查询,如@Mark Brown建议的那样。但是,请记住,客户端和波斯菊都会强制执行gremlin查询长度限制。 cosmosDB gremlin API要求您的查询长度小于2^16 = 65536。您可能必须根据ids

的大小来批量处理请求