TuGraph Analytics图建模研发:为图计算业务提速增效

码林星云
• 阅读 159

概述

GeaFlow Console平台提供了图数据研发能力,包括了对点、边、图、表、函数、任务的管理功能, 为了让用户更好的管理元数据信息,同时也便于用户对图计算进一步地了解。通过对这些研发资源的管理,用户可以方便地、白屏化地创建、修改、删除这些元数据,也可以很方便地查看当前租户下所拥有的数据资产概览及详情,从而更多关注于业务逻辑的实现。

图数据研发介绍

基本概念

  1. 点(GeaflowVertex):表示一个对象或实体、包含了点id,标签和属性。
  2. 边(GeaflowEdge):表示对象之间的关系,连接点和点,包含源点id,目标点id,标签,时间戳和属性。
  3. 图(GeaflowGraph):表示对象之间关联关系的一种抽象数据结构,由若干个点和若干边组成。
  4. 表(GeaflowTable): 是有结构的数据的集,由行和列组成,每列为字段,有相应的类型和约束条件,每行为一条具体数据。
  5. 函数(GeaflowFunction): 用户自定义的方法,可在dsl作业中使用。
  6. 图拓扑(GeaflowEndpoint): 逻辑概念,为一个三元组<edgeId, srcId, targetId>, 表示在一个图中,一个边的起点和目标点的约束关系。
  7. 任务(GeaflowJob): 研发时对计算逻辑的描述,用户通过编辑任务实现业务逻辑,目前支持dsl和高阶两种方式进行任务研发:

    1. dsl任务(GeaflowCodeJob): 通过编写dsl代码运行。
    2. 高阶任务(GeaflowApiJob): 通过api的方式,使用jar包运行。
  8. 作业(GeaflowTask): 由任务经过发布流程生成,最终提交运行。一旦构建,不可修改作业元信息(例如作业的dsl代码或jar包)。

    模型结构

点&边&图&表&函数

TuGraph Analytics图建模研发:为图计算业务提速增效
Geaflow将所有研发资源进行了结构化的模型设计,从模型图中,可以看到vertex,edge,table都继承自GeaflowStruct,GeaflowStruct中包含一个GeaflowField列表,其中GeaflowField代表了字段,包含类型(Long,String,Boolean等)和约束条件(点id,属性,边源点id,边目标点id等)。在图中,包含了点、边以及Endpoint的列表,描述了实体之间的关联信息。
图和表关联了GeaflowPluginConfig,这是插件配置,表示图表的来源或输出配置,例如odps,sls,oss等。
函数中主要包含一个jar包对象和主类,以标识函数的入口。

任务&作业

TuGraph Analytics图建模研发:为图计算业务提速增效
GeaflowJob为所有任务类型的父类,其中的structs、graphs、functions字段记录了这个任务所使用的图、表、函数,方便用户了解作业关联的一些元信息。任务根据使用途径还可分为以下几种类型:

  1. GeaflowProcessJob: 加工任务,用户编写dsl代码实现构图或图计算逻辑, 例如环形计数。
  2. GeaflowIntegrationJob: 集成任务,可以根据数据源表自动生成代码,导入到图中。
  3. GeaflowCustomJob: 自定义任务, 用户通过编写高阶api代码,实现图计算逻辑,例如实现PageRank, SSSP等算法。
  4. GeaflowStatisticJob: 统计任务,用于统计图的信息,例如点边个数。
  5. GeaflowServerJob: 查询任务,用于olap服务,执行图查询。

任务(GeaflowJob)和作业(GeaflowTask)通过发布包(GeaflowRelease)进行关联,任务为研发时的描述,作业为运行时的描述,用户可以对任务进行发布,通过BuildPipeline执行流水线构建生成相应的发布包,进而得到相应的作业。Release中包含了作业运行的执行计划、引擎版本、作业参数、集群和集群参数等,是作业在运行时所需要的信息。用户通过创建和修改任务进行业务逻辑的研发,通过发布的作业进行提交运行。

Demo演示

创建点

在研发管理中新增点定义, 每个点有对应的字段列表,且必须有点id字段,如下例子中新增了2个点:person和software。
TuGraph Analytics图建模研发:为图计算业务提速增效
TuGraph Analytics图建模研发:为图计算业务提速增效

创建边

在研发管理中新增边定义, 每条边需要有源点id和目标点id字段,如下例子中新增了2条边:knows和creates。
TuGraph Analytics图建模研发:为图计算业务提速增效
TuGraph Analytics图建模研发:为图计算业务提速增效

创建图

在研发管理中新增图定义, 图可以关联之前定义的点和边,console中通过选择框的方式进行关联。如下例子中,创建了名为dy_modern的图,其包含了person和software点、created和knows边。同时,可以为图配置拓扑约束,限制此图上边的源点目标点的绑定关系,例如create边只能是person->software, know边只能是person->person(Endpoint具体作用将在后续文章中介绍)。
TuGraph Analytics图建模研发:为图计算业务提速增效

创建表

在研发管理中新增表定义, 此例子中创建了一个输出表,为最终结果输出的载体,有2个字段person名字和software名字。其参数配置中的类型为file,表示输出到本地文件目录(也可以选择其他类型,例如kafka,hive)。
TuGraph Analytics图建模研发:为图计算业务提速增效
TuGraph Analytics图建模研发:为图计算业务提速增效

创建任务

本示例中,构造如下关系图:
TuGraph Analytics图建模研发:为图计算业务提速增效

任务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
)

TuGraph Analytics图建模研发:为图计算业务提速增效

任务发布之后即可生成对应task,进入作业详情界面,提交作业之后开始执行,最终运行完成。
TuGraph Analytics图建模研发:为图计算业务提速增效

作业的参数配置如下, 注意worker数需要设置:
TuGraph Analytics图建模研发:为图计算业务提速增效
TuGraph Analytics图建模研发:为图计算业务提速增效

在容器的/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/

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
5 .5 数据库关系图
5.5数据库关系图一旦创建了数据库及其对象,就可以很方便地创建和底层结构链接的实体关系图,这样,任何必要改动(尤其是创建外键约束)都可以通过一个方便的图形环境应用到数据库中。SQLServerManagementStudio中的数据库关系图就提供了这种功能。但是它不能完全替代成熟的数据库设计工具。数据库关系图更多地用在数据库
Wesley13 Wesley13
3年前
2019 年 CNCF 中国云原生调查报告
!头图.jpg(https://ucc.alicdn.com/pic/developerecology/6db0c465111b4d9a96eb1ffe85c00e7a.jpg)中国72%的受访者生产中使用Kubernetes在CNCF,为更好地了解开源和云原生技术的使用,我们定期调查社区。这是第三次中国云原生调查,以中文进行
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
晴雯 晴雯
2年前
跨平台数据库DBeaverEE for Mac使用示例
DBeaverEEforMac是一款专业的数据库管理和开发工具,支持多种数据库类型,如MySQL,PostgreSQL,Oracle,SQLServer,SQLite等。它提供了一个图形化的用户界面,让用户可以方便地执行SQL语句,浏览和编辑数据,管理数据
燕青 燕青
2年前
Macos超强思维导图推荐:Xmind for Mac v23.07中文版 支持M1
是一款非常实用的思维导图软件,它可以帮助用户快速创建和编辑思维导图,用于记录和整理思路,管理信息和项目等。该软件提供了丰富的功能和工具,可以满足不同用户的需求,包括教育、商务、项目管理等多个领域。XMind思维导图的主要特点包括:多种思维导图类型:软件支持
燕青 燕青
1年前
DBeaverUltimate数据库管理软件 v23.2.3旗舰激活版
DBeaverUltimateMac是一款针对数据库开发和管理的全功能、跨平台的IDE,支持多种数据库类型,包括MySQL、PostgreSQL、Oracle、SQLite等。它提供了一个直观的用户界面,使用户可以轻松地管理和查询数据库,包括创建和修改表、
码林星云
码林星云
Lv1
不必恭维不必讨好爱你的人自会给你拥抱
文章
4
粉丝
0
获赞
0