图数据库 TigerGraph 使用全攻略

与关系型数据库或其他类型的NoSQL数据库相比,图数据库提供了更有效的关系和网络建模方法。在1999年左右,图数据库领域还是Neo4j一家独大,但是发展至今,该领域也出现了很多新玩家和新产品。

TigerGraph是一款“实时原生并行图数据库”,既可以部署在云端也可以部署在本地,支持垂直扩展和水平扩展,可以对集群中的图数据自动分区,遵循ACID标准,并且提供了内置的数据压缩功能。它使用了一种消息传递架构,这种架构具备了可随数据增长而伸缩的并行性。

TigerGraph被设计用来执行深层链接分析以及实时在线事务处理(OLTP)和大容量数据加载。深度链接分析是指从一个顶点开始遍历图,找到三个或更多的跳转关系,并分析出结果。目前大多数图数据库都是为OLTP设计的,用于分析少量的关系跳数,其他的分析功能基本是后续添加的。

目前,有一些开源的图查询语言已经得到了广泛的采用,如Cypher、Gremlin和SPARQL,不过,TigerGraph使用了一种新的查询语言GSQL。GSQL将SQL风格的查询语法与Cypher风格的图导航语法结合在一起,并加入了过程编程和用户自定义函数。

我对TigerGraph的GSQL查询语言一直有一种说不清的感觉,不可否认的是,它是一种很好的设计,支持并行化,且可以将Cypher转换为GSQL,便于从Neo4j数据库转到TigerGraph的开发者使用。但是,面对一门全新的编程语言,我总会问自己,它是否值得我花时间和精力来学习呢?

TigerGraph的架构

从下图中可以看出,TigerGraph包含了一个ETL加载器、图数据存储和处理引擎、查询语言和可视化客户端以及REST API,并集成了很多企业数据基础设施服务。再往下的系统流程图清楚地表明,TigerGraph使用Apache Kafka与图形处理和存储引擎进行通信,使用Nginx Web服务器处理GraphStudio和来自用户的GSQL请求,并将它们传给后端服务器。
\"image\"

TigerGraph Analytics Platform包含了图数据存储引擎、图数据处理引擎和三种类型的API。它可以在本地、云端或混合环境中运行。

传给TigerGraph的消息可以在顶点或边级别进行并行处理。RESTPP是一种增强的REST API服务器,主要用于任务管理。

TigerGraph每小时可以加载多达150 GB的数据,每台机器每秒可以遍历数亿个顶点或边,将20亿个日常事件以流的方式实时地传输到包含1千亿个顶点和6千亿条边的图中(这些图数据处于包含20台商用机器的集群上),并将实时分析与大规模离线数据处理统一起来。

\"image\"

TigerGraph使用了几种流行的开源组件:用于处理Web流量的Nginx、消息队列Apache Kafka、用于管理Kafka集群的Apache Zookeeper。平台的其余部分则使用了专有代码。

在Docker中安装TigerGraph

你可以在各种流行的Linux(加上Docker和VirtualBox)上安装TigerGraph。我选择在iMac上使用Docker来安装。在开始安装之前,我更新了Docker,并将Docker可用的RAM和处理器分别增加到4 GB和4个内核。最后,我将TigerGraph镜像下载到本地。

Martins-iMa
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值