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

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

作者:廖梵抒

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

OLAP架构

OLAP架构

在TuGraph Analytics OLAP架构中,主要以下组件:

  1. Client: 用户通过Client提交查询语句, Client负责和Coordinator交互,发送查询请求。
  2. Coordinator: 接收来自Client查询请求,将查询中的GQL语句进行解析、优化,构建查询的执行计划(执行计划的生成逻辑可参考《分布式图计算如何实现?带你一窥图计算执行计划》),并将任务调度给Woker执行。
  3. Worker:具体分布式地执行任务的单元,接收到Coordinator发送的Pipeline,执行具体的计算和查询逻辑。
  4. Meta Service: 服务注册管理,Coordinator启动后,会将服务的地址和端口向MetaService进行注册,Client提交查询时从MetaService获取Coordinator的服务地址,进行连接。目前支持http和rpc两种方式。

组件间执行流程如下:
OLAP流程

操作指南

1. 定义图模型

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

图模型

图模型定义可参考《TuGraph Analytics图建模研发:为图计算业务提速增效》,图定义语法为:

CREATE GRAPH dy_modern (
    Vertex person (
      id bigint ID,
      name varchar,
      age int
    ),
    Vertex software (
      id bigint ID,
      name varchar,
      lang varchar
    ),
    Edge knows (
      srcId bigint SOURCE ID,
      targetId bigint DESTINATION ID,
      weight int
    ),
    Edge creates (
      srcId bigint SOURCE ID,
      targetId bigint DESTINATION ID,
      weight int
    )
) WITH (
    storeType='rocksdb',
    shardCount = 2
);

2. 准备图数据

创建“加工”类型图任务,发布生成图作业。

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,2
UNION ALL
SELECT 1,3,3
UNION ALL
SELECT 3,2,3;

INSERT INTO dy_modern.creates
SELECT 2,4,6
UNION ALL
SELECT 3,5,8
UNION ALL
SELECT 3,4,8;

图作业需要的worker数为23,在作业界面将参数进行修改,之后提交作业运行。

Worker数配置

3. 创建查询服务

创建图查询服务, 任务类型选择“图查询”,目标图选择刚才创建的图。

创建查询服务

发布任务后,使用默认参数即可,提交作业。

4. 执行查询

图查询服务的作业变成RUNNING状态后,可在任务界面点击“查询”进入图查询界面

进入图查询

输入相应的gql查询语句,点击“执行”,即可得到查询结果。

执行图查询

5. 图可视化

点击某个点,可以查看点关联的具体信息和属性,以及关联的其他点边。

点边视图

除了可视化的方式,也可以json形式看到返回的结果。

JSON视图

至此,我们就成功使用TuGraph Analytics实现了图上的交互式查询!是不是超简单!快来试一试吧!

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

相关文章
|
8月前
|
运维 数据可视化 前端开发
WBS工作分解结构:从0掌握项目拆解核心方法与工具实战
WBS(工作分解结构)是将复杂项目拆解为可执行任务的实用方法,通过MECE原则确保工作不重不漏。它以交付成果为导向,分三级拆解:可交付物→工作包→具体任务,帮助团队明确目标、估算时间、分配责任并识别风险。适用于开发、重构、升级等技术项目,配合思维导图、Jira等工具高效落地。WBS的核心价值不在文档,而在拆解过程中的共识与思考,是一张动态演进的项目导航图。
|
存储 缓存 NoSQL
分布式系统架构8:分布式缓存
本文介绍了分布式缓存的理论知识及Redis集群的应用,探讨了AP与CP的区别,Redis作为AP系统具备高性能和高可用性但不保证强一致性。文章还讲解了透明多级缓存(TMC)的概念及其优缺点,并详细分析了memcached和Redis的分布式实现方案。此外,针对缓存穿透、击穿、雪崩和污染等常见问题提供了应对策略,强调了Cache Aside模式在解决数据一致性方面的作用。最后指出,面试中关于缓存的问题多围绕Redis展开,建议深入学习相关知识点。
964 8
|
9月前
|
XML 安全 Java
EMT4J定制规则版:Java 8→17迁移兼容性检测与规则优化实战
EMT4J是一款Java版本迁移兼容性检测工具,支持从Java 8→11和11→17的升级检查。通过预设规则扫描代码或JAR包,识别API废弃、模块系统、JVM参数等潜在不兼容问题,生成可视化报告,帮助开发者提前修复风险,确保应用平稳迁移。
618 2
|
人工智能 测试技术 持续交付
Golang深入浅出之-Go语言中的持续集成与持续部署(CI/CD)
持续集成与持续部署(CI/CD)是现代软件开发的关键实践,尤其适用于Go语言项目。本文探讨了Go项目中常见的CI/CD问题,如测试覆盖不足、版本不一致和构建时间过长,并提供解决方案及GitHub Actions示例代码,帮助开发者优化流程,提升交付效率和质量。
407 5
|
关系型数据库 MySQL 分布式数据库
Hbase与MySQL对比,区别是什么?
Hbase与MySQL对比,区别是什么?
1267 2
|
运维 监控 安全
2025 年 Splunk 的 5 大替代方案:企业日志管理工具新选择
Splunk 虽强大,但高昂成本和复杂性促使企业寻找替代方案。本文推荐 2025 年五大日志管理与安全分析工具:Log360、Elastic Security、Datadog、Graylog 和 Sumo Logic,涵盖开源、云原生与高性能方向,适配不同企业需求,助你提升安全与运维效率。
1067 0
|
存储 大数据 数据挖掘
云计算与大数据:从基础设施到实际应用
云计算与大数据:从基础设施到实际应用
1850 0