概述
使用CALL
语句可以调用系统定义的过程。嬴图提供了多种内置过程,支持管理图投影、运行算法等任务。
<call procedure statement> ::=
"CALL" <procedure reference> [ <yield clause> ]
详情
- 使用
YIELD
从句可以从过程生成的绑定表中选择并重命名列(如果情况适用),以便在后续查询中使用和引用。
HDC投影过程
HDC投影驻留在HDC(高密度计算)服务器的内存中,其中包含从分片服务器物理内存加载的图集的全部或部分数据。了解更多关于以下过程的信息,请参阅HDC投影。
显示HDC投影
调用hdc.graph.show()
过程获取当前图集的所有HDC投影信息:
获取所有HDC投影信息:
CALL hdc.graph.show()
获取名为hdcGraph_1
的投影信息:
CALL hdc.graph.show("hdcGraph_1")
创建HDC投影
调用hdc.graph.create()
过程可在HDC服务器上创建一个当前图集的内存投影。
将当前图集投影到hdc-server-1
上并命名为hdcGraph
:
CALL hdc.graph.create("hdc-server-1", "hdcGraph", {
nodes: {"*": ["*"]},
edges: {"*": ["*"]},
direction: "undirected",
load_id: true,
update: "static",
query: "query",
default: true
})
删除HDC投影
调用hdc.graph.drop()
过程可以从HDC服务器上删除当前图集的HDC投影。
删除名为hdcGraph_1
的HDC投影:
CALL hdc.graph.drop("hdcGraph_1")
执行算法
调用algo.<algoName>()
过程可在HDC投影上以返回模式执行算法。调用algo.<algoName>.write()
过程则可以在HDC投影上以回写模式执行算法。
在投影hdcGraph
上执行鲁汶算法并返回结果:
CALL algo.louvain("hdcGraph", {
params: {
phase1_loop_num: 6,
min_modularity_increase: 0.5
},
return_params: {
type: "stream"
}
}) YIELD r
RETURN r
在投影hdcGraph
上执行度中心性算法,并将结果回写到文件中:
CALL algo.degree.write("hdcGraph", {
params: {
order: "desc"
},
return_params: {
file: {
filename: "degree.txt"
}
}
})
作业过程
部分GQL查询,如创建投影和算法回写,被设计成以后端作业形式执行。某些作业的结果,如算法生成的文件,存储在作业执行所在图集上,可在以后获取,除非被清除。
显示作业
调用过程job.show()
获取当前图集的作业信息。
获取所有作业:
CALL job.show()
获取ID为83
的作业:
CALL job.show(83)