Skip to main content

工作流


本文介绍图计算的可视化交互组件:工作流

image

工作流交互方式

整个图计算的交互过程是比较固定的,数据导入计算引擎中用算法对数据进行计算,计算完成后进行输出保存和数据展示。

整个过程中比较复杂的交互点在于,用户可以在计算任务编排中配置多个,目的在于可以对数据运行多个算法进行计算,将每个算法执行后的结果当作输入,导入到下一个算法节点中,每个算法输出的结果字段可以交叉输入到别的算法中,通过这种交叉的方式,拼凑出一个用户需要的最终结果。

这是诞生节点连线的交互方式的原因,让用户在有一定自由度的情况下,可以对数据流进行输入、计算、输出,编排整个工作流的过程是交互的重点。

image


算法分类

我们把不同图计算的算法用颜色进行分类,大致分为5类(随着算法的不断增加会往后继续扩展):路径算法、节点重要度算法、图特征算法、社区发现算法、聚类算法。

还有一个特殊的查询组件:图查询

image


计算组件

计算组件通常封装了固定的算法,通过配置面板对算法进行参数配置,而输入和输出则是完全固定的,比如我们以SSSP最短路径算法为例,左侧为输入锚点,每一项都需要通过连线方式连入输入数据,右侧为输出锚点,在计算执行完成后固定输出对应字段数据,可以通过连线的方式再把输出的数据,连接到下一个模块的输入锚点。

image


查询组件

同样的查询组件也是以输入和输出的方式对数据进行处理,不同的是,查询组件一般需要用户自己写入查询语句来执行查询操作,而输入和输出需要用户把查询语句代码中的变量,映射为查询组件对应的输入和输出,这样前一个组件的结果可以成为输入,而查询结果则可以变成输出,连接到下一个计算节点中继续执行任务。

查询语句的输入锚点和输出锚点往往需要根据用户的查询语句来进行匹配,所以只有一些可以设置为变量的字符可以被设定输入和输出,这需要对nGQL图查询语言有一定的基础。

image


连线交互逻辑

在工作流的交互中,连线逻辑和代码的撰写息息相关,不了解数据结构和查询语句,可能会导致随意的连线无法输出。

算法的计算依赖图计算引擎,数据的存储交互依赖图存储引擎,查询组件依赖图查询引擎,连线的方式决定了数据在这些引擎中的流转过程,所以需要先考虑清楚,达到自己最终目的需要让数据从哪里来再到哪里去,再将这些算法组件插入其中,就能执行出最终的结果。

我们按照通常的做法模拟一个交互过程:我需要先从NebulaGraph中查询一些点边的数据,把这些数据进行一个最短路径的计算,再把计算的结果进行可视化展示。

这就是下图演示的一个简单过程:我写了2个查询语句来查询需要的结果,分为2个不同的查询组件,但是我把输出的结果字段同时连接到SSSP算法中进行计算,结果在配置面板中保存至HDFS或者NebulaGraph图数据库中。

image


作者:袁艺豪