GeaFlow Console平台提供了图数据研发能力,包括了对点、边、图、表、函数、任务的管理功能, 为了让用户更好的管理元数据信息,同时也便于用户对图计算进一步地了解。通过对这些研发资源的管理,用户可以方便地、白屏化地创建、修改、删除这些元数据,也可以很方便地查看当前租户下所拥有的数据资产概览及详情,从而更多关注于业务逻辑的实现。
Geaflow将所有研发资源进行了结构化的模型设计,从模型图中,可以看到vertex,edge,table都继承自GeaflowStruct,GeaflowStruct中包含一个GeaflowField列表,其中GeaflowField代表了字段,包含类型(Long,String,Boolean等)和约束条件(点id,属性,边源点id,边目标点id等)。在图中,包含了点、边以及Endpoint的列表,描述了实体之间的关联信息。
图和表关联了GeaflowPluginConfig,这是插件配置,表示图表的来源或输出配置,例如odps,sls,oss等。
函数中主要包含一个jar包对象和主类,以标识函数的入口。
GeaflowJob为所有任务类型的父类,其中的structs、graphs、functions字段记录了这个任务所使用的图、表、函数,方便用户了解作业关联的一些元信息。任务根据使用途径还可分为以下几种类型:
任务(GeaflowJob)和作业(GeaflowTask)通过发布包(GeaflowRelease)进行关联,任务为研发时的描述,作业为运行时的描述,用户可以对任务进行发布,通过BuildPipeline执行流水线构建生成相应的发布包,进而得到相应的作业。Release中包含了作业运行的执行计划、引擎版本、作业参数、集群和集群参数等,是作业在运行时所需要的信息。用户通过创建和修改任务进行业务逻辑的研发,通过发布的作业进行提交运行。
在研发管理中新增点定义, 每个点有对应的字段列表,且必须有点id字段,如下例子中新增了2个点:person和software。
在研发管理中新增边定义, 每条边需要有源点id和目标点id字段,如下例子中新增了2条边:knows和creates。
在研发管理中新增图定义, 图可以关联之前定义的点和边,console中通过选择框的方式进行关联。如下例子中,创建了名为dy_modern的图,其包含了person和software点、created和knows边。同时,可以为图配置拓扑约束,限制此图上边的源点目标点的绑定关系,例如create边只能是person->software, know边只能是person->person(Endpoint具体作用将在后续文章中介绍)。
在研发管理中新增表定义, 此例子中创建了一个输出表,为最终结果输出的载体,有2个字段person名字和software名字。其参数配置中的类型为file,表示输出到本地文件目录(也可以选择其他类型,例如kafka,hive)。
本示例中,构造如下关系图:
任务dsl如下,先向图dy_modern中插入点边数据,然后执行MATCH遍历图,找到id=1的人(jim)认识的人(kate、tom)所创建的软件(software1、software2),最后将结果插入到tbl_result表(文件)中。
USE GRAPH dy\_modern;
INSERT INTO dy\_modern.person(id, name, age)
SELECT 1, 'jim', 20
UNION ALL
SELECT 2, 'kate', 22
UNION ALL
SELECT 3, 'tom', 24
;
INSERT INTO dy\_modern.software(id, name, lang)
SELECT 4, 'software1', 'java'
UNION ALL
SELECT 5, 'software2', 'java'
;
INSERT INTO dy\_modern.knows
SELECT 1,2 ,0.2
UNION ALL
SELECT 1,3 ,0.3
;
INSERT INTO dy\_modern.creates
SELECT 2, 4, 0.6
UNION ALL
SELECT 3, 5, 0.8
;
INSERT INTO tbl\_result
SELECT
b\_name,
c\_name
FROM (
MATCH (a:person where id = 1) -[e:knows]->(b:person)-[e2:creates]-> (c:software)
RETURN b.name as b\_name, c.name as c\_name
)
任务发布之后即可生成对应task,进入作业详情界面,提交作业之后开始执行,最终运行完成。
作业的参数配置如下, **注意worker数需要设置**:
在容器的/tmp/result目录中找到结果文件。
[root@09db8348371a tmp]# cd /tmp/result/
.partiton\_0.crc .partiton\_1.crc partiton\_0 partiton\_1
由于graph中的shradCount设置的为2,所以结果文件有2个分片:partition_0, partition_1
查看文件,有2条数据,符合结果。
kate,software1
tom, software2
**至此,我们就成功使用平台的图研发功能完成了图表的创建和计算作业的运行!是不是超简单!快来试一试吧!**
GeaFlow(品牌名TuGraph-Analytics) 已正式开源,欢迎大家关注!!!
欢迎给我们 Star 哦! GitHub👉 **https://github.com/TuGraph-family/tugraph-analytics**
更多精彩内容,关注我们的博客 **https://geaflow.github.io/**
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。