TuGraph Analytics图数据集成:表到图的最后一公里

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: 小伙伴们想玩一玩图计算,数据的导入工作总是绕不开的一个环节。为了降低大家数据导入操作的成本,提升图计算的整体使用体验,TuGraph Analytics推出了“图数据集成”能力,帮助大家通过简单配置完成数据导入工作。

作者:廖梵抒

图数据集成

小伙伴们想玩一玩图计算,数据的导入工作总是绕不开的一个环节。为了降低大家数据导入操作的成本,提升图计算的整体使用体验,TuGraph Analytics推出了“图数据集成”能力,帮助大家通过简单配置完成数据导入工作。

要实现图上的数据处理,可大致分为三个阶段:

  1. 数据准备:准备图的点边的原始数据。如文件(CSV/JSON)、Hive表、Kafka消息队列等数据源。
  2. 数据导入:将原始的表结构数据(结构化/半结构化)格式化成图结构写入图引擎。一般采用编写SQL或基于引擎API开发数据导入任务。
  3. 数据分析:基于图引擎对已经导入的图格式数据分析处理。一般使用GQL、Gremlin、Cypher等图分析语言处理,复杂的图算法(图上的迭代、采用、推理等)可能需要用户自己开发UDF。(Java/Python)

因此,实现图上的数据分析的前置动作便是图数据导入,简称“构图”。这里我们使用“图数据集成”的说法,是沿用了传统数据仓库里“数据集成”的概念。

TuGraph Analytics可以通过编写SQL代码实现高效的数据导入到图的能力。但当数据源头和表字段过多时,编写出来的DSL代码往往非常冗长,而且用户手动编写的代码容易出现插入的字段映射错位、数量不匹配等问题。为此,TuGraph Analytics的Console平台为用户提供了到图的一键“数据集成”功能,允许用户可在界面中选择输入表和对应的目标点边,平台会自动化生成对应的DSL代码,实现图数据导入,避免了大量冗长的代码的编写和校对工作。

任务设计

类似传统数据库表的INSERT操作,图数据集成则是向图的点边表插入数据。图中的点边也是一种表结构,每个点边都有相应的属性(对应表结构中的字段),并可以与数据源的表字段一一映射。所以可以通过给定外部输入表和目标点边的映射关系来描述图数据集成任务。

表图字段映射

图数据集成任务维护了用户填写的输入表到图的目标点边的映射关系。映射关系结构为StructMapping的数组,每个StructMapping包含了表名、图名、和对应的字段映射项列表。

@EqualsAndHashCode(of = {
   
   "tableName", "structName"})
public static class StructMapping {
   
   
    private String tableName;
    private String structName;
    private List<FieldMappingItem> fieldMappings = new ArrayList<>();
}

@EqualsAndHashCode(of = {
   
   "tableFieldName", "structFieldName"})
public static class FieldMappingItem {
   
   
    private String tableFieldName;
    private String structFieldName;
}

任务发布阶段,根据映射关系生成相应的构图dsl代码。代码生成主要使用Velocity模板引擎框架,其模板如下:

USE GRAPH ${graphName};

#foreach(${insert} in ${inserts})
insert into ${graphName}(
    #foreach(${strcut} in  ${insert.structs})
    ${strcut.structName}.${strcut.structFieldName},
    #end
    ${END_FLAG}
) select
    #foreach(${strcut} in ${insert.structs})
    ${strcut.tableFieldName},
    #end
    ${END_FLAG}
from ${insert.tableName};

#end

映射关系需满足如下约束:

  1. 一个目标点或边的数据只能来自一个输入表,而一个输入表可以写入多个点边。
  2. 输入表字段类型和目标点边字段类型需要相同。
  3. 目标点边上的meta字段(点id,边srcId, 边targetId等)必须插入。

Demo演示

本示例中以下图为例,图中有2种点person和software,以及2种边knows和creates。

图模型

创建点

在界面中创建person和software点的schema。

创建person点

创建software点

创建边

在界面中创建creates和knows边的schema。

创建creates边

创建knows边

创建图

界面中勾选图所需的点边,创建图的schema, 类型设置为“ROCKSDB”。

创建图

配置图

创建输入表

在界面中创建输入表t_person、t_software、t_creates、t_knows,参数配置中填写对应的文件路径,以t_person为例:

创建输入表

配置输入表

测试数据:

-- person.txt
1,jim,29
2,kate,27
3,tom,32

-- software.txt
4,software1,java
5,software2,c

-- knows.txt
1,2
1,3
3,2

-- creates.txt
2,4,0.2
3,4,0.1
3,5,0.5

创建集成任务

在新增图任务中,任务类型选择"集成",并选择对应的目标图,即自动生成待插入的所有目标点边和字段项。(可根据需求删除不需要插入的目标点边或字段)

选择点边

只需在左侧选择每个点边对应的输入表,即可自动填充映射字段。

选择输入表

所有输入表选择完成后,所有表到目标点边的映射项都填充完成,点击"提交"即可创建集成任务。

配置字段映射

提交作业

任务发布为作业后,可在作业详情界面看到自动生成的构图DSL代码,点击提交执行图数据集成作业。

提交作业

查看结果

创建相应的图查询任务,详细见《TuGraph Analytics交互式图查询:让图所见即所得》,运行后进入查询界面,即可查询到所构图的数据。

图查询

欢迎关注我们的GitHub仓库:https://github.com/TuGraph-family/tugraph-analytics

相关文章
|
6月前
|
存储 DataWorks 关系型数据库
DataWorks产品使用合集之在使用数据集成中的同步任务从mysql同步表到oss,存储为csv时,最终生成的文件中没有表头,这个属性可以在哪里配置么
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL 消息中间件 存储
TuGraph Analytics动态插件:快速集成大数据生态系统
插件机制为GeaFlow任务提供了外部数据源的集成能力扩展,GeaFlow支持从各类Connector中读写数据,GeaFlow将它们都识别为外部表,并将元数据存储在Catalog中。GeaFlow已有一些内置的插件,例如FileConnector,KafkaConnector,JDBCConnector,HiveConnector等。
|
4月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之数据集成并发数不支持批量修改,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
数据采集 DataWorks 数据管理
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第10天】随着大数据技术的发展,企业对数据处理的需求日益增长。阿里云推出的DataWorks是一款强大的数据集成和管理平台,提供从数据采集、清洗、加工到应用的一站式解决方案。本文通过电商平台案例,详细介绍了DataWorks的核心功能和优势,展示了如何高效处理大规模数据,帮助企业挖掘数据价值。
128 1
|
2月前
|
数据采集 SQL DataWorks
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第5天】本文通过一家电商平台的案例,详细介绍了阿里云DataWorks在数据处理全流程中的应用。从多源数据采集、清洗加工到分析可视化,DataWorks提供了强大的一站式解决方案,显著提升了数据分析效率和质量。通过具体SQL示例,展示了如何构建高效的数据处理流程,突显了DataWorks相较于传统工具如Excel的优势,为企业决策提供了有力支持。
119 3
|
3月前
|
存储 分布式计算 DataWorks
dataworks数据集成
dataworks数据集成
138 1
|
3月前
|
机器学习/深度学习 DataWorks 数据挖掘
基于阿里云Hologres和DataWorks数据集成的方案
基于阿里云Hologres和DataWorks数据集成的方案
80 7
|
4月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之数据集成任务日志中显示wait,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
弹性计算 DataWorks 关系型数据库
DataWorks操作报错合集之DataX在执行过程中接收到了意外的信号15,导致进程被终止,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
存储 JSON DataWorks
DataWorks产品使用合集之如何通过数据集成将API接口产生的数据集成到DataWorks
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
下一篇
DataWorks