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

深入解读TuGraph计算引擎模型推理系统 TuGraph计算引擎模型推理系统将基于迭代计算的图计算框架与模型推理系统相结合,推理系统可自定义推理依赖环境,图迭代计算与推理链路实现隔离。基于共享内存的跨进程通信方式,提高了推理数据交换效率,满足流图近线推理的时效性。 阅读详情

作者:廖梵抒

图数据集成

小伙伴们想玩一玩图计算,数据的导入工作总是绕不开的一个环节。为了降低大家数据导入操作的成本,提升图计算的整体使用体验,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

neo4j 图表数据导入到 TuGraph 支持:指定节点,指定边。自动创建不存在的节点/边,数据导入批量导入节点,单条导入边(试过批量的,tugraph好像不支持 官网的 CALL db.upsertEdge 我的版本也还没实现)。导入图示: 说明 只是用Python简单写了一个可以执行导入操作的脚本,欢迎指正和优化。边的导入比较慢(单条导入)。 阅读详情

相关推荐

TuGraph Analytics交互式图查询:让图所见即所得

TuGraph Analytics提供了OLAP图分析能力,实现图上的交互式查询,用户在构图并导入数据之后,可以通过输入GQL语句对图查询分析,并以可视化的方式直观地展示点边结果。

TuGraph的博客 1157

TuGraph安装与简单使用

TuGraph 是蚂蚁集团自主研发的大规模图计算系统,提供图数据库引擎和图分析引擎。其主要特点是大数据量存储和计算,高吞吐率,以及灵活的 API,同时支持高效的在线事务处理(OLTP)和在线分析处理(OLAP)。 LightGraph、GeaGraph 是 TuGraph 的曾用名。

cacique111的博客 1万+

一张图读懂TuGraph Analytics开源技术架构

GeaFlow(TuGraph-Analytics)是蚂蚁集团开源的分布式实时图计算引擎,即流式图计算。通过SQL+GQL融合分析语言对表模型和图模型进行统一处理,实现了流、批、图一体化计算,并支持了Exactly Once语义、高可用以及一站式图研发平台等生产化能力。

TuGraph的博客 767

6月11日,2023开放原子全球开源峰会在北京开幕。本次峰会以“开源赋能,普惠未来”为主题。在高峰论坛上,蚂蚁技术研究院院长、图计算负责人陈文光宣布开源 TuGraph 图计算平台核心成员——工业级流

流式图计算是一种将流式计算和图计算结合的交叉创新,融合了流式计算的高度实效性和图计算的灵活性,攻坚难度极高。此次流式图计算引擎开源,是延续蚂蚁开源核心基础技术的实际动作,希望通过开放成熟的图计算技术,服务更广阔的数字化产业,向世界输出中国科技公司的前沿技术影响力。据了解,蚂蚁从2015年开始探索图计算,布局了图数据库、流式图计算引擎、图学习等相关技术,打造了世界规模领先的图计算集群,于业界首创了工业级流式图计算引擎,多次问鼎图数据库行业权威测试 LDBC 世界冠军并保持世界纪录。

TuGraph的博客 351

TuGraph Analytics图计算快速上手之弱联通分量算法

弱联通分量图算法(Weakly Connected Components Algorithm)是一种用于找到图中所有弱联通分量的算法。弱联通分量是指在有向图中,如果忽略所有边的方向,相互之间是连通的节点集合。算法的基本思想是通过深度优先搜索(DFS)或广度优先搜索(BFS)遍历图的所有节点,对于每个未访问过的节点,都会生成一个新的联通分量。在遍历过程中,如果当前节点的邻居节点已经被访问过,那么将其加入当前联通分量中,并继续遍历邻居节点。

TuGraph的博客 579

TuGraph Analytics图计算快速上手之K-core算法

K-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在K-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。K-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。K-Core图算法常用来识别和提取图中的紧密连通群组,因具有较低的时间复杂度(线性)及较好的直观可解释性,广泛应用于金融风控、社交网络和生物学等研究领域。

TuGraph的博客 1432

TuGraph试用体验中的问题

在试用TuGraph的过程中,我也遇到了一些不尽如人意的问题。

luofu001的博客 1050

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

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

TuGraph的博客 466

探索数据的奥秘:TuGraph Analytics - 高效且灵活的数据分析工具

探索数据的奥秘:TuGraph Analytics - 高效且灵活的数据分析工具 是一个强大的开源数据分析项目,旨在帮助数据科学家、研究人员和工程师更高效地探索复杂的数据集。它构建在 TuGraph 数据库之上,提供了一系列高级算法和可视化工具,使用户能够挖掘隐藏的模式、关系和趋势。 技术分析 TuGraph Analytics 基于图数据库理论,使用图形模型来表示和存储数据。这种模型对于处理实体...

gitblog_00008的博客 576

Tugraph Analytics图计算快速上手之紧密中心度算法

*紧密中心度(Closeness Centrality)**计量了一个节点到其他所有节点的紧密性,即该节点到其他节点的距离的倒数;节点对应的值越高表示紧密性越好,能够在图中传播信息的能力越强,可用以衡量信息流入或流出该节点的能力,多用与社交网络中关键节点发掘等场景。对于图中一个给定节点,紧密性中心性是该节点到其他所有节点的最小距离和的倒数:其中,u表示待计算紧密中心度的节点,d(u, v)表示节点u到节点v的最短路径距离;

TuGraph的博客 493

TuGraph Analytics动态插件:快速集成大数据生态系统

介绍 插件机制介绍 插件机制为GeaFlow任务提供了外部数据源的集成能力扩展,GeaFlow支持从各类Connector中读...

TuGraph的博客 338

TuGraph Analytics 开源项目教程

TuGraph Analytics 开源项目教程 1. 项目介绍 TuGraph Analytics(别名:GeaFlow)是由蚂蚁集团开发的分布式图计算引擎。它支持万亿级图存储、混合图和表处理、实时图计算和交互式图分析等核心能力。目前,它广泛应用于数据仓库加速、金融风险控制、知识图谱和社交网络等场景。 主要特性 分布式流图计算 混合图和表处理(SQL+GQL) 统一流/批/图计算 万亿级图原生...

gitblog_00164的博客 714

TuGraph Analytics云原生部署:基于K8S Operator的轻量级作业启动方案

作者:丁一。

TuGraph的博客 1156

TuGraph Analytics 常见问题解决方案

TuGraph Analytics 常见问题解决方案 一、项目基础介绍 TuGraph Analytics(别名:GeaFlow)是由蚂蚁集团开发的一个分布式图计算引擎。它支持万亿级别图存储、混合图和表处理、实时图计算以及交互式图分析等核心能力。当前,它广泛应用于数据仓库加速、金融风险控制、知识图谱和社会网络等场景。项目主要使用的编程语言为Java。 二、新手常见问题及解决步骤 问题一:如何搭建和...

gitblog_00625的博客 447

C语言|深入浅出讲解int转换为float全过程(附2017年统考大题案例)

int转换为float类型为什么会发生精度损失? 精度损失的详细过程究竟是什么样的? 什么样情况float会发生精度损失?没有弄懂2017年浮点数统考大题? 这一篇用2017年统考大题案例帮你更深的理解浮点数的存储规则。

DADONGOOO的博客 1万+

第三章:ESP32零基础教学 - 3.4 蓝牙通信

本文详细介绍了如何在ESP32上实现经典蓝牙和BLE通信,并提供了代码解释和示例。通过这些示例,你可以轻松地将蓝牙功能集成到你的物联网项目中。无论是经典蓝牙的简单串口通信,还是BLE的灵活服务架构,ESP32都能满足你的需求。

Hi__gril的博客 4021

论文解读|TuGraph Analytics 流式图计算论文入选国际顶会 SIGMOD

6月18日-23日,数据库国际顶会 2023 ACM SIGMOD 在美国西雅图举行,蚂蚁流式图计算团队一篇论文入选。

TuGraph的博客 854

博途AI助手演示,完成简单且重复的梯形图代码,并导入到博途

自写个博途AI助手,下面演示AI帮我生成完善多个模拟量输入转换的代码,

gsjkwg的博客 1529

谁在以太坊区块链上循环交易?TuGraph + Kafka 的0元流图解决方案

实时交易数据我们采用了XBlock-ETH: Extracting and exploring blockchain data from Ethereum这篇论文整理的真实的以太坊区块数据,在这个Demo中把以太坊地址隐去,以一个数字替代,即每个数字代表以太坊的一个钱包地址,相同的数字表示相同的地址。各有各的长处,各有各的毛病。接下来,每当有新的交易到达的时刻,都将触发一次3跳循环交易模式的检查,把更新的结果存入位于Kafka的外部表tbl_circular_trade,可以很方便地分发给下游组件。

TuGraph的博客 386

Sentaurus TCAD学习——Scheme编程语言

sentaurus scheme语言学习记录

摸摸小熊猫的博客 967

LangChain实战:用FAISS搭建本地文档问答系统(含Word文件处理避坑指南)

本文详细介绍了如何利用LangChain框架和FAISS向量数据库构建本地化智能文档问答系统,特别针对Word文档处理中的技术难点提供实用解决方案。通过模块化设计、本地化支持和多格式兼容,实现高效文档处理与精准问答,满足企业对数据隐私和安全的需求。

o4p5q6r7s的博客 410

TuGraph Analytics 流图计算之行为路径归因

目前 TuGraph Analystics 已经在多类应用场景以及万亿级别的数据规模下提供了生产可用的计算服务,本文主要介绍在路径归因的场景下的实践。

TuGraph的博客 426

通过Jlink和PyLink读取蓝牙mac地址--Nordic&silicon labs

本文介绍在不开机的情况下读取蓝牙的mac地址,这里介绍两个平台,Nordic和Silicon Labs。 1. 通过Jlink Commander工具连接上目标板 选择当前芯片的型号 2. 使用mem命令查看mac地址 首先需要知道mac地址存储在芯片的哪个地址。 Nordic: 寄存器DEVICEADDRTYPE的第一个bit代表mac地址的类型,这里为1。DEVICEADDR[0]和DEVICEADDR[1]的低16bit代表了MAC地址,其中DEVICEADDR[1]的第15位应该或上DE

ching的专栏 1651

TuGraph Analytics作业监控面板:运行时组件上的高效分析工具

我们在作业进程中内置了一个Dashboard(本地启动/容器启动时自动生效),包括前端页面和后端server,用户可以不需要感知到它们的存在。通过访问Dashboard,用户可以更方便地通过白屏化的方式查看作业的执行进度、组件列表和详情、任意组件内部的指标、日志等。还可以通过Profiler工具对进程状态进行分析,快速定位问题。

TuGraph的博客 662

笔记——Oracle19c

Oracle阅读笔记

weixin_63819458的博客 1351

Nature、science、cell旗下刊物

Nature\science\cell子刊说明

计算机视觉 5607
上一篇: TuGraph Analytics作业监控面板:运行时组件上的高效分析工具
下一篇: 从API到Agent:万字长文洞悉LangChain工程化设计
TuGraph
博客等级 码龄4年 183粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值