JanusGraph的schema及数据建模

JanusGraph的schema由边标签、顶点标签和属性键组成,推荐显式定义。边标签的多样性包括MULTI、SIMPLE、MANY2ONE和ONE2MANY。属性键的数据类型和基数可以进行约束。顶点标签是可选的,用于区分不同类型的顶点。隐式创建的schema元素默认设置可能不符合需求,建议显式创建并禁止隐式创建。更改schema元素名称需要注意同步和可能的冲突问题。
摘要由CSDN通过智能技术生成

JanusGraph的schema及数据建模

每个JanusGraph都有一个schema,该schema由edge labels, property keys和vertex labels组成。JanusGraph的schema可以显式或隐式创建,推荐用户采用显式定义的方式。JanusGraph的schema是可以在使用过程中修改的,而且不会导致服务宕机,也不会拖慢查询速度。

 

注意:通关系型数据库不同,图数据的schema是定义一张图,而非定义一个vertex的。在Mysql中,我们通常将建立一张表定义为创建一个schema,而在JanusGraph中,一个Graph用于一个schema。

组成结构如下:

 

JanusGraph Schema

            | 

            |-----------Vertex Lables

            |

            |-----------Property Keys

            |

            |-----------Edge Labels

 

Schema Type如edge label, vertex label及property key在元素首次创建时被赋予元素,且不能修改。

Definging Edge Labels

每个连接了两个vertex的edge都有一个label,用于表示关系的语义。例如一个edge label:friend表明了两个vertex有朋友关系。

 

要定义edge lable,调用makeEdgeLabel(String)方法,该方法返回一个builder,可以通过该builder设置edge的多样性(multiplicity),多样性属性定义了具有该label的edge的多样性约束,也即在一个vertex间的最大edge的个数。JanusGraph支持如下多样性。

Edge Label Multiplicity(边的标签多样性)

  • MULTI

在一对vertex间可以有任意多个同样label的edge。

 

  • SIMPLE

在一对vertex间最多只能有一个同样label的edge。

 

  • MANY2ONE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值