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

Cosmos graph DB RU for Update operation using Gremlin

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

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

foreach(int id in ids) {
  g.V().has('vertex','key','test').has('id', id).Property('status','1')
}

每个查询使用的 RU -

公制 |值

请求收费 | 17.29

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

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

公制 |值

请求收费 | 41.4

考虑到 运行 代码的 RU 和时间,哪种方法更好?

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

的大小对您的请求进行批处理