TigerGraph笔记(二)概念
在介绍具体gsql语法之前,先介绍一些和TG(TigerGraph)相关的概念,便于理解。
1、Graph(图)
TG的定义是:图是数据实体以及数据之间连接的集合。也就是说,它是一个数据实体的网络。在TG里面,可以使用CREATE创建子图,并赋予相关用户对该图的操作权限。
2、vertex(顶点)
图中的每一个数据实体,我们称之为顶点,在Neo4j里面称之为节点(node),只是叫法不同而已。例如上图中的蓝色和黄色圈圈都是顶点,每个顶点都是代表不同的人。每个顶点都有自己的类型和属性,比如上图中的七个顶点都是人,有id、性别、年龄等属性。
3、edge(边)
图中任意两个顶点之间的连接,称之为边,又叫关系。每个边都有类型和属性,例如上图中的边是friendship,具有属性认识时间。边分为无向边和有向边,上图中的边都是无向边,没有箭头指向,因为你是我朋友,我自然也是你朋友,所以方向没有意义。如果是我向你借钱,就要是有向边,因为我借你钱和你借我钱肯定不一样。
4、schema(模式)
TG的定义是:A graph schema is the model which describes the * of vertices (nodes) and edge (connections) which can appear in your graph.不是很好理解,使用过Neo4j的人应该知道,插入一条数据,只需要使用CREATE直接插入就行了,在插入语句里面直接指定节点类型和属性。但是在TG里面,插入顶点之前,需要先定义类型,例如要建立一副社交图,需要先定义好Person这个顶点类型,包括Person具有的属性;边也要先定义好类型和属性,以及它的起始类型和终止类型,例如Friendship这个边类型具有time属性,表示认识时间,从Person到Person,是无向边。定义好类型以后,后面才可以使用,这也是TG和Neo4j一个很大不同的地方。对于加载数据和查询,同样也要先定义一个Job。schema可以认为是描述图形数据的模型。
5、job(作业)
在gsql中经常会用到job,比如加载数据。类似于SQL中的存储过程,定义完以后需要去run执行。如果熟悉MapReduce的话,里面也有Job的定义,可以迁移理解一下。亦或者说理解为一个函数,我认为也是可行的。
6、QUERY(查询)
TG虽然内置了select语句,但是不适合处理逻辑复杂的查询,TG提供了参数化查询 QUERY,可以让用户像写函数一样定义一个查询,可以传参。和job类似,需要先创建,不过在运行之前需要先安装,再运行。
相关文章