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

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

概述

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

图数据研发介绍

基本概念

  1. 点(GeaflowVertex):表示一个对象或实体、包含了点id,标签和属性。
  2. 边(GeaflowEdge):表示对象之间的关系,连接点和点,包含源点id,目标点id,标签,时间戳和属性。
  3. 图(GeaflowGraph):表示对象之间关联关系的一种抽象数据结构,由若干个点和若干边组成。
  4. 表(GeaflowTable): 是有结构的数据的集,由行和列组成,每列为字段,有相应的类型和约束条件,每行为一条具体数据。
  5. 函数(GeaflowFunction): 用户自定义的方法,可在dsl作业中使用。
  6. 图拓扑(GeaflowEndpoint): 逻辑概念,为一个三元组, 表示在一个图中,一个边的起点和目标点的约束关系。
  7. 任务(GeaflowJob): 研发时对计算逻辑的描述,用户通过编辑任务实现业务逻辑,目前支持dsl和高阶两种方式进行任务研发:
    1. dsl任务(GeaflowCodeJob): 通过编写dsl代码运行。
    2. 高阶任务(GeaflowApiJob): 通过api的方式,使用jar包运行。
  8. 作业(GeaflowTask): 由任务经过发布流程生成,最终提交运行。一旦构建,不可修改作业元信息(例如作业的dsl代码或jar包)。

    模型结构

点&边&图&表&函数


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

任务&作业


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。

创建边

在研发管理中新增边定义, 每条边需要有源点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/

相关文章
|
6月前
|
NoSQL 算法 大数据
国内首个图计算标准发布,悦数图数据库通过测试
近日,经中国通信标准化协会批准,《大数据图计算平台技术要求与测试方法》标准正式发布,这是我国首个图计算平台标准,为图计算平台的发展提供了一个标准化的指导方针,对于推动我国图技术的发展具有重要意义。
|
6月前
|
数据可视化 BI
帆软BI开发-Day2-趋势图的多种变形
帆软BI开发-Day2-趋势图的多种变形
144 0
|
机器学习/深度学习 SQL 存储
实时特征计算平台架构方法论和实践
在机器学习从开发到上线的闭环中,实时特征计算是其中的重要一环,用于完成数据的实时特征加工。由于其高时效性需求,数据科学家完成特征脚本离线开发以后,往往还需要工程化团队通过大量的优化才能完成上线。另一方面,由于存在离线开发和工程化上线两个流程,线上线下计算一致性验证成为一个必要步骤,并且会耗费大量的时间和人力。
1059 0
实时特征计算平台架构方法论和实践
|
2月前
|
机器学习/深度学习 敏捷开发 存储
数据飞轮:激活数据中台的数据驱动引擎
数据飞轮:激活数据中台的数据驱动引擎
|
6月前
|
存储 运维 NoSQL
悦数图数据 | 图技术在金融风控中的应用选型建议
在金融行业中,风控是业务中十分重要的一环。风控包含了非常多的业务类型,囊括了反赌博、反诈骗、反洗钱、反作弊等等,而根据不同的业务类型,又可以细分为更多的业务场景,例如信贷反欺诈场景,在贷款申请、授信、支用等各个环节都会涉及到,对风控的具体要求也不一样。
悦数图数据 | 图技术在金融风控中的应用选型建议
|
6月前
|
人工智能 NoSQL 测试技术
世界第一!蚂蚁图计算TuGraph打破LDBC SNB-BI世界纪录
近日,国际关联数据基准委员会(Linked Data Benchmark Council,以下简称LDBC)发布了图数据基准测评“LDBC SNB-BI”最新结果。由蚂蚁集团自研的流式图计算引擎TuGraph Analytics在30TB规模的数据集上成功完成了基准测试,数据规模和性能打破了此前的公开纪录,关键指标中的并发吞吐量提升至2.84倍,查询能力提升至1.86倍。
世界第一!蚂蚁图计算TuGraph打破LDBC SNB-BI世界纪录
|
存储 算法 图计算
TuGraph Analytics图计算快速上手之弱联通分量算法
TuGraph Analytics是蚂蚁集团近期开源的分布式流式图计算,目前广泛应用在蚂蚁集团的金融、社交、风控等诸多领域。
|
SQL 算法 图计算
Tugraph Analytics图计算快速上手之紧密中心度算法
紧密中心度(Closeness Centrality)计量了一个节点到其他所有节点的紧密性,即该节点到其他节点的距离的倒数;节点对应的值越高表示紧密性越好,能够在图中传播信息的能力越强,可用以衡量信息流入或流出该节点的能力,多用与社交网络中关键节点发掘等场景。
|
存储 人工智能 运维
悦数图数据库v3.5.0发布:查询性能大幅提升,为智能决策和 AI 大模型应用提速
近日,悦数图数据库最新版本(v3.5.0)正式发布,进一步强化数据库内核的查询性能和稳定性,同时全面升级了自带的可视化探索和运维管理工具「悦数图探索」和「悦数运维监控」,全面提升用户体验。
悦数图数据库v3.5.0发布:查询性能大幅提升,为智能决策和 AI 大模型应用提速
|
存储 NoSQL 算法
阿里云GraphScope,全球最快图计算引擎!
阿里云GraphScope,全球最快图计算引擎!
247 0