使用 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
的大小对您的请求进行批处理
我有一个图形数据库,要求是更新几个顶点的属性。现在假设我必须将属性值从 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