图数据库的查询方法、索引创建方法及相关设备技术

技术编号:34123776 阅读:17 留言:0更新日期:2022-07-14 13:42
本申请公开了一种图数据库的数据查询方法、图数据库的索引创建方法、电子设备及计算机可读存储介质。该查询方法包括:获取查询条件;从图数据库的联合索引中查找目标联合索引,目标联合索引的属性符合查询条件,联合索引的属性包括边的属性和边关联的两个节点的属性;将具有目标联合索引的目标边关联的两个目标节点,作为数据查询结果。通过上述方式,能够提高查询效率,扩大适用范围。扩大适用范围。扩大适用范围。

Figure query method, index creation method and related equipment of database

【技术实现步骤摘要】
图数据库的查询方法、索引创建方法及相关设备


[0001]本申请涉及图数据库
,特别是涉及一种图数据库的数据查询方法、图数据库的索引创建方法、电子设备及计算机可读存储介质。

技术介绍

[0002]图数据库(Januspraph)是一个开源的分布式数据库,图数据库中的图数据是基于属性图模型的。属性图由节点(Node)、边(Edge)、节点标签(Label)和属性(Property)组成的有向图。其中,节点表示实体,边表示关系。实体可以是自然界任何能够被描述的主体,例如人、车、事件、类别等等。
[0003]如果直接从图数据库查询数据,查询方式为全图扫描,查询效率极低。为了提高查询效率,现有的方法为,通过为图数据库创建索引,来加速从图数据库查询数据的效率。但是,现有的基于索引从图数据库查询数据的方法查询效率仍然不够高,且适用范围受限。

技术实现思路

[0004]本申请提供一种图数据库的数据查询方法、图数据库的索引创建方法、电子设备及计算机可读存储介质,能够解决现有的基于索引从图数据库查询数据的方法查询不够高、适用范围受限的问题。
[0005]为解决上述技术问题,本申请采用的一个技术方案是:提供一种图数据库的数据查询方法。该方法包括:获取查询条件;从图数据库的联合索引中查找目标联合索引,目标联合索引的属性符合查询条件,联合索引的属性包括边的属性和边关联的两个节点的属性;将具有目标联合索引的目标边关联的两个目标节点,作为数据查询结果。
[0006]为解决上述技术问题,本申请采用的一个技术方案是:提供一种图数据库的索引创建方法,该方法包括:创建联合索引;将边的属性、以及边关联的两个节点的属性,写入联合索引。
[0007]为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,该电子设备包括处理器、与处理器连接的存储器,其中,存储器存储有程序指令;处理器用于执行存储器存储的程序指令以实现上述方法。
[0008]为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机可读存储介质,存储有程序指令,该程序指令被执行时能够实现上述方法。
[0009]通过上述方式,本申请图数据库的联合索引包括了边的属性以及与边关联的两个节点的属性,因此在查询数据时,无论查询条件涉及包括边的属性,还是涉及节点的属性,还是涉及边和节点的属性,均可以直接确定符合查询条件的目标联合索引,无需遍历过程而直接命中数据查询结果。因此适用范围广,查询效率高。并且,本申请提供的数据查询方法仍遵循原查询语法(gremlin语法),无需更改图查询语法,因此实现更加简单。
附图说明
[0010]图1是HBase的存储结构示意图;
[0011]图2是HBase中的存储单元的结构示意图;
[0012]图3是“在中国银行徘徊的男性”对应的图数据结构示意图;
[0013]图4是Person id 1的示意图;
[0014]图5是基于Person id 1得到的遍历信息的示意图;
[0015]图6是基于Person id 95647得到的遍历信息的示意图;
[0016]图7是本申请图数据库的索引创建方法一实施例的流程示意图;
[0017]图8是本申请图数据库的索引创建方法另一实施例的流程示意图;
[0018]图9是为当前边创建联合索引的一流程示意图;
[0019]图10是本申请图数据库的数据查询方法一实施例的流程示意图;
[0020]图11是本申请电子设备一实施例的结构示意图;
[0021]图12是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
[0022]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0023]本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0024]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。
[0025]在介绍本申请提供的方法之前,先对图数据库进行简要介绍:
[0026]图数据库以存储系统(例如HBase、Cassandra等等)作为外部存储后端,即图数据库的图数据实际是存储在存储系统中的。
[0027]本申请后文以HBase为例。HBase是一个NOSQL数据库,是一个分布式的、面向列的开源数据库,在HBase中表是行的集合,行是列簇的集合,列簇是列的集合,列是键值对的集合。HBase中的存储结构示例如图1。HBase中的一个存储单元(cell)由row(行)和column(列) 确定。HBase中一行数据涉及一个节点的相关信息,该一行数据包含了该节点的所有属性、以及与该节点关联的边,每一个属性、每一条边都是一个独立的存储单元。HBase中的存储单元示例如图2。在向图数据库写入边时,需要查询出与边关联的节点,在关联的节点涉及的行数据中添加上边,实现对行数据的更新。
[0028]图数据库以索引系统(例如Elasticearch、Solr)作为外部索引后端。从而借助索引系统来加速对图数据库中图数据的查询。
[0029]图数据库支持的查询语法为gremlins(TinkerPop图形遍历语言)语法,用户能够通过gremlin实现对图数据库中图数据的增、删、改、查。
[0030]图数据库支持为其中的边/节点创建索引。为了便于区分,本申请后文将为边/节点创建的索引称为单索引。由此,从图数据库查询数据时,可以先通过单索引找到起始对象(起始节点或者起始边),再对起始对象进行遍历,得到数据查询结果。因此,由于单索引仅涉及一个节点或者一条边,只作用于起始对象,当查询条件(一个查询条件涉及一个节点或边)有多个时,在基于单索引确定符合其中一个查询条件查询到起始对象之后,需要对起始对象进行遍历,才能从起始对象中确定符合其他查询条件的目标对象。
[0031]例如,为图数据库中的节点“人”的属性(姓名id、性别)创建了单索引。要查询“在中国银行徘徊的男性”,图3是“在中国银行徘徊的男性”对应的图数据结构示意图。图3中节点分别是性别属性为男性的“人”、地点属性为“中国银行”的事件,边是“徘徊边”。如图3所示,要在图数据库中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图数据库的数据查询方法,其特征在于,包括:获取查询条件;从所述图数据库的联合索引中查找目标联合索引,所述目标联合索引的属性符合所述查询条件,所述联合索引的属性包括边的属性和所述边关联的两个节点的属性;将具有所述目标联合索引的目标边关联的两个目标节点,作为数据查询结果。2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括如下为边创建所述联合索引的步骤:创建所述联合索引;将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引。3.根据权利要求2所述的方法,其特征在于,在所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引之前,包括:为每条所述边设置联合索引标识,预设类别的边的所述联合索引标识为真;所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引,包括:分别将每条所述边作为当前边,确定所述当前边的联合索引标识是否为真;若为真,则将所述当前边的属性、以及所述当前边关联的两个当前节点的属性,写入所述联合索引,得到所述当前边的联合索引。4.根据权利要求3所述的方法,其特征在于,所述预设类别的边表示动态关系。5.根据权利要求2所述的方法,其特征在于,所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引,包括:分别将每条所述边作为当前边,依序将所述当前边的属性、以及所述当前边关联的两个当前节点的属性,写入所述联合索引,得到所述当前边的联合索引。6.根据权利要求5所述的方法,其特征在于,所述将所述边的属性、以及所述边关联的两个节点的属性,写入所述联合索引,包括:为所述节点的属性添加前缀,所述前缀为对应的节点标识;将添加前缀后的所述节点的属性写入所述联合索引。7.一种图数据库的索...

【专利技术属性】
技术研发人员:俞毅周明伟李丛
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1