CN115238139A - 一种图数据库数据索引方法及系统 - Google Patents
一种图数据库数据索引方法及系统 Download PDFInfo
- Publication number
- CN115238139A CN115238139A CN202211134171.4A CN202211134171A CN115238139A CN 115238139 A CN115238139 A CN 115238139A CN 202211134171 A CN202211134171 A CN 202211134171A CN 115238139 A CN115238139 A CN 115238139A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- graph
- edge
- graph database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims description 25
- 238000010276 construction Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000010230 functional analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种图数据库数据索引方法及系统,属数据库索引技术领域,首先获取用户指定为图数据库的顶点、边引入索引的特定数据;图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。本发明提供的索引方法,在基于磁盘的数据存储、磁盘查询时,索引的数据根据索引进行查找时,带来了数据有序的便利,相邻接的数据都在相同或相邻的物理磁盘块中,在进行基于有序索引特征类型索引的相邻数据的访问时,相邻磁盘块一起加载可一次性加载多条数据,因而提升了磁盘I/O访问效率。
Description
技术领域
本发明涉及数据库索引技术领域,具体涉及一种图数据库数据索引方法及系统。
背景技术
随着互联网、移动互联网、社交网络、物联网及工业领域关联型网络的爆炸式发展,关系图的存储以及基于关系图的网络拓扑结构分析与功能分析等应用有着极大的需求。
传统的关系型数据库在面对OLTP((On-Line Transaction Processing,联机事务处理,即关系数据库)需求能够实时稳定应对,例如在线商城的用户购买行为记录数据,会以增删改的方式在关系型数据库中进行数据的更新处理操作。而当在线商城主体想基于有相同或者类似购买习惯的用户的历史购买数据给别的用户进行商品推荐,或者预测某类用户是否会购买某类商品,诸如此类的基于关系图的OLAP数据分析需求时,传统关系型数据库则面临着Schema复杂、计算时间与空间不经济、响应时延较长等困境。在传统关系型数据库中,表征实体之间的关系需要创建关联表。当连边关系巨量、查询的实体关系较深时,在建模阶段通过关键字构建关联表所耗费的时间并不能加快实体之间的关系查询。
图数据库的顶点、边存在属性,即以键值对(Key-value pair)形式存在的、关联到某一个顶点或边的数据。在表征图数据库的属性时,顶点或边的属性值可以以某一种数据类型(如整形、字符串、双精度数)等形成存在。现有图数据库通常会为某些属性值创建索引,创建的索引数据和关系型数据库的索引类似,主要作用是根据属性索引查找并定位到满足属性查询条件的数据条目,即图数据库中某一(多)个顶点或边,这样的索引反映的是属性值和元素的对应关系,但这些索引一般都无法直接用于加速图的点、边连接特性,导致索引效率较低。
发明内容
因此,本发明为了解决现有的图数据库索引方式访问数据效率低问题,提供一种图数据库数据索引方法及系统,可以提高图数据库数据索引的效率。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供一种图数据库数据索引方法,包括:
获取用户指定为图数据库的顶点、边引入索引的特定数据;
图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;
在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。
进一步地,所述为图数据库的顶点引入索引的特定数据,包括顶点的入度、出度及度,所述度为入度与出度之和。
进一步地,所述为图数据库的边引入索引的特定数据,包括用户定义边的权重属性。
进一步地,所述图数据库在基于磁盘的存储层面为所述特定数据引入基于B+树的索引。
进一步地,所述图数据库在基于磁盘的存储层面为所述特定数据引入基于B+树的索引,包括:
在建立顶点的度数索引时,基于顶点具有非负的整型值及符合幂律分布,且度数小的顶点数目相对较多、度数大的顶点数目相对较少的特征,对顶点的度数进行分级的B+树存储,将度和顶点的ID组合形成用于搜索的B+树的“键”;
在建立边的权重索引时,基于边的权重值均为数值类型、用户指定边的属性及图数据库中以有向边进行管理的特征,为边建立基于顶点的邻边的权重值的索引,包括:权重属性索引按顶点的ID且按顶点的出边的权重有序性来建立,属性索引指向的是边的ID及边所指向的顶点;
在建立B+树时,B+树的搜索“键”先按边的起点ID顺序,再按同一起点的出边的权重的顺序进行排序,B+树的叶子页里所指向的“值”是出边的ID及出边的终点ID。
进一步地,对顶点的度数进行分级的B+树存储,包括:对于度数少于216的顶点的度数索引使用支持2字节无符号表示值范围的B+树,对于度数超过2字节表示的值范围度数的顶点,使用支持4字节无符号表示值范围的B+树。
进一步地,通过配置文件、或通过API接口指定某特定的图实例中,为顶点的入度、出度或度引入索引,和/或为边指定基于邻接顶点的权重属性引入索引。
第二方面,本发明实施例提供一种图数据库数据索引系统,包括:
用户定义数据获取模块,用于获取用户指定为图数据库的顶点、边引入索引的特定数据;
索引构建模块,用于图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;
索引模块,用于在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。
第三方面,本发明实施例提供一种计算机设备,包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行本发明实施例第一方面的图数据库数据索引方法。
第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行本发明实施例第一方面的图数据库数据索引方法。
本发明技术方案,具有如下优点:
本发明提供的图数据库数据索引方法及系统,首先获取用户指定为图数据库的顶点、边引入索引的特定数据;图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历,其过程提高了数据的访问效率,加速了算法实际运行过程。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的图数据库数据索引方法的一个具体示例的流程图;
图2为本发明实施例中提供的图数据库数据索引系统一示例的模块组成图;
图3为本发明实施例提供的计算机设备一个具体示例的组成图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供一种的图数据库数据索引方法,如图1所示,该方法包括以下步骤:
步骤S1:获取用户指定为图数据库的顶点、边引入索引的特定数据。
本发明实施例,对于顶点而言,为其引入可选的以下几个特定数据的索引,包括:入度、出度、度(总的度数,即入度和出度的和)。度是图数据库的“顶点”(而非边)所特有的一种非常重要的特性,其中,以某一个顶点为起点的有向边的条数是点的出度,而以顶点为终点的有向边的条数是点的入度。度并非顶点的属性,无法被用户修改。
对于边而言,为其引入特定数据的索引:包括用户定义边的权重属性。权重是图数据库中边(而非顶点)的一种特别的特性,通常由用户指定,并以属性值方式给定。虽然是一种属性,但在图数据库的多种算法中都有区别于同一条边的任何其它属性的重要性,并对算法运行结果起决定性作用。通常情况下的图数据库产品环境中,即使用户引入了权重属性,此属性的索引也仅用于边对象的检索,即作为一种全局索引来通过查找权重值得到对应的边对象。本发明实施例为权重属性引入基于点的邻接边的索引,即通过此索引可方便地找到某一个顶点的所有邻接边,并在此同一索引数据中也索引了邻接边所连接的邻接点。
在用户所定义的属性列表中,权重属性名称可能会有所不同,但权重值应当是数值类型(例如用户定义边的属性为距离,则对应的权重值1000)。当指定此属性为边的权重属性时,图数据库将把此属性看作特定的权重属性,并将在相应的算法中使用索引的权重数据。此权重属性索引的建立按点的ID来建立,即根据顶点的ID,即可得其所有出边的权重;同时此权重属性索引按点的出边的权重有序性来建立,即同一顶点的出边的权重按权重值建立有序索引;此“权重”属性索引指向的是边的ID,即通过此索引可以找到边的ID。
作为一个附加的数据,此权重属性索引在指向边的ID的同时,也附加记录了此边所指向的点,即边的终点ID,因而通过此索引可直接找到终点;作为一种特例,在某些场景下,并不关注边的权重,此时可认为权重都相同(例如值都是1)。这种情况下并不需要特别来索引权重值(相同的权重值也没有索引的意义,反而增加了存储空间),此时可仅索引出边的邻接点。具体索引是否包括权重值由可由用户根据应用场景来进行选择。
具体的工程实践中,图数据库内建对于这些索引的支持,用户可根据具体的应用需求,或通过配置文件、或通过API接口指定某一个特定的图实例中,为顶点的入度、出度或度打开索引功能,及/或为边指定基于邻接点的“权重”属性打开索引。在此过程中,用户可选择索引这几种数据中的至少一种,而这种选择可基于用户的应用程序的应用场景由用户来进行。
步骤S2: 图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引。
实际应用中,基于有序索引特征类型包括:B-树、B+树、B*树、T-树等,本发明实施例以图数据库在基于磁盘的存储层面为这些特定数据引入基于B+树的索引作为示例,B+树是一种树数据结构,通常用于数据库和操作系统的文件系统中,B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度,基于B+树的索引是使用最为广泛的索引,并且在建立过程中保持了对于待索引值的有序性,即按待查找值大小关系进行排列以保持其存储时先后顺序和值的大小相对应。
本发明实施例中所涉及到的顶点的特定数据(出度、入度或度)或边特定数据(权重),其索引的建立过程为:
步骤S21:在建立顶点的度数索引时,基于顶点具有非负的整型值及一定程度上符合幂律分布,且度数小的顶点数目相对较多、度数大的顶点数目相对较少的特征,对顶点的度数进行分级的B+树存储,将度和顶点的ID组合形成用于搜索的B+树的“键”。
其中,对顶点的度数进行分级的B+树存储具体为,度数少于216的度数索引使用一个支持2字节无符号表示值范围的B+树(即支持无符号值范围到65,536),而对于度数超过2字节表示值范围度数的顶点,则使用一个支持4字节无符号表示值范围的B+树(支持无符号值范围到4,294,967,296即232,可支持常规情况下的度数范围);实际应用中考虑到顶点存在大量重复的度,为避免重复值所带来的线性时间的值搜索,将度和顶点的ID组合形成用于搜索的B+树的键,如此,在进行顶点的度的更新时可快速定位到某个顶点在度索引中的位置,从而对其进行更新操作。
步骤S22:在建立边的权重索引时,基于边的权重值均为数值类型、用户指定边的属性及图数据库中以有向边进行管理(在图数据库中,无向边要么以不同于“有向边”的方式来管理(即图数据库支持真正的无向边),要么以两条双向的有向边来表示无向边。在本发明实施例中为避免对于有向和无向做特别的区分,仅对于有向边的情况进行描述,这种情况下默认无向边由两条对向的有向边来表示)的特征,为边建立基于顶点的邻边的权重值的索引,包括:权重属性索引按顶点的ID且按顶点的出边的权重有序性来建立,属性索引指向的是边的ID及边所指向的顶点。
本发明实施例中,为边的权重所建立的索引并非如图数据库产品中常见的简单的建立属性级别的索引(即把“权重”看作属性而建立全局的索引),而是有针对性的建立基于顶点的邻边的权重值的索引,具有以下特点:
1、此权重属性索引的建立按点的ID来建立,即根据顶点的ID,即可得其所有出边的权重;
2、此权重属性索引按点的出边的权重有序性来建立,即同一顶点的出边的权重按权重值建立有序索引;此“权重”属性索引指向的是边的ID,即通过此索引可以找到边的ID;
3、作为一个附加的数据,此权重属性索引在指向边的ID的同时,也附加记录了此边所指向的点,即边的终点ID,因而通过此索引可直接找到终点;
基于以上特点,本发明实施例为边建立了一个其起点和权重组成的复合索引。
步骤S23:在建立B+树时,B+树的搜索“键”先按边的起点ID顺序,再按同一起点的出边的权重的顺序进行排序,B+树的叶子页里所指向的“值”是出边的ID及出边的终点ID。
本发明实施例引入的索引基于B+树,可以快速地根据顶点的ID获取所有其出边,可获得这些出边的权重,且出边按权重顺序排列;按需获得这些边的ID及/或边的终点,对于基于磁盘的图数据系统而言,在基于磁盘的数据存储、磁盘查询时,索引的数据根据索引进行查找时,一是带来了数据有序的便利(即索引数据有序),二是相邻以的数据(即索引数据)都在相同或相邻的物理磁盘块中,故在进行基于B+树的相邻数据的访问时,相邻磁盘块一起加载可一次性加载多条数据,因而提升了磁盘I/O(Input and Output,即输入和输出)访问效率。
步骤S3:在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。
在不同的图遍历或计算场景中,可利用索引本发明实施例所引入的索引来直接进行相关的操作。工程实践中存在很多甚至大量不同的场景可利用本发明实施例引入的索引数据带来效率方面的提升,以下仅举部分场景描述:
场景3.1:K-最小生成树(K-Minimum Spanning Tree
此算法从指定的起点开始,在图中找到包含此点、最多达到K个点的最小权重生成树。基于本发明实施例所引入的顶点出边的权重索引树,可以直接按点的ID获取到此点出边中具有最小权重的边,基于此数据,可方便地实现Prim算法(图论中的一种算法,可在加权连通图里搜索最小生成树)其过程为:
1、将起点加入已访问点集合,并置已访问边集体为空;
2、根据已访问点集合,从索引中可以直接获取所有这些点的最小权重、不存在于已访问边集体、边的两点不同时在已访问点集体的一条出边,将此边连接的邻接点加入已访问点列表,边加入已访问边列表;
3、重复上一步骤直到已访问点达到指定的数目,或没有新的点、边可以加入已访问点集合、已访问边集体。
相较没有引入相应索引,本发明实施例所引入的索引可直接从磁盘B+树中获取指定点最小权重的边及边的邻接点,避免了额外遍历顶点邻按边并读取权重的复杂过程,因而加速了这一算法的运行过程。
场景3.2:Dijkstra算法求最短路径
Dijkstra算法是一种基本的带非负权重的图中求单源最短路径的算法,主要特点是以起始点为中心向外,层层扩展,直到扩展覆盖所有顶点。在Dijkstra算法中,每一次的步骤中都会从临时(或OPEN)顶点中选取一个与永久(或CLOSED)中顶点有关联且权值最小的顶点,并根据这个新加入的顶点到其相邻顶点之间边的权重更新从源顶点可达路径。这一步操作实际上是取这个顶点、这个顶点的出边及出边的权重、及出边到达的邻边(即此有向边的终点)。
可以看出,根据某个顶点获取所有其邻接边、邻接边的权重、邻接边的终点,正好是本发明实施例所建立的边索引的内容,因而在基于磁盘的图数据库中,只需要索引根据顶点的ID就可以直接一次性获取所有所需要的数据,因而这里建立的索引直接带来了磁盘访问方面此算法基本的、高频的操作的磁盘数据访问效率。
场景3.3:SPFA(Shortest Path Faster Algorithm)算法求最短路径
SPFA 算法是Bellman-Ford算法的队列优化算法的别称,通常用于求含负权边的单源最短路径。SPFA算法设立了一个先进先出的队列用来保存待优化的顶点,优化时每次取出队首顶点u,并且用u点当前的最短路径估计值对离开u点所指向的顶点v进行松弛操作,如果v点的最短路径估计值有所调整,且v点不在当前的队列中,就将v点放入队尾。这样不断从队列中取出结点来进行松弛操作,直至队列空为止。
根据关于SPFA算法的介绍可以看到,其循环中的每一步操作都会在选取一个顶点(此处为其队首的顶点)取其出边,并根据出边的权重来进行松弛操作,并将出边指向的邻接点且不在队列的顶点放入队尾。这一操作是此算法最高频、最基本的操作,可直接使用本发明所建立的边索引的内容,即在基于磁盘的数据存储中,只需要索引根据指定顶点(此处为队首的顶点)的ID就可以直接一次性获取所有所需要的数据(出边、边权重、出边指向的邻接顶点),因而本发明实施例建立的索引直接带来了磁盘访问从工程实践方面优化这一操作过程。
场景3.4:拓扑排序(Topological Sort)
对一个有向无环图(Directed Acyclic Graph)进行拓扑排序,是将图中所有顶点排成一个线性序列,使得此线性序列内任意两个顶点之间:如果存在有向边,则边的起点在序列中的位置始终处于边的终点在序列中的位置之前。
具体的工程实践中,常常借助于一个队列并基于BFS(Breath First Search,广度优先遍历)来实现,即遍历图中所有的顶点,将所有入度为0的顶点放入队列;从队列中取出一个顶点,输出此顶点,并更新该顶点的邻接点的入度(减1),如果邻接点的入度减1之后变成了0,则将该邻接点入队列;一直执行此步骤直到队列为空。
可以看到在上述算法的实现步骤的主循环中,借助于队列(用于存储入度为0且尚未处理的点),最主要的子步骤是得到图中所有入度为0的顶点、取某个顶点的出边、根据出边得到其邻接的顶点。此处的循环子步骤过程可以直接使用本发明所引入的索引数据从基于磁盘的存储中获取所需的数据,包括:
1、获取图中所有顶点的入度;
2、作为一个子步骤,获取图中所有入度为0的顶点;
3、从某个顶点获取其所有出边;
4、获取顶点出边的邻接顶点。
可以看到,基于本发明实施例所建立的索引,这些数据是已经存储在磁盘中,且依据B+树的物理存储特性,这些数据在磁盘中相邻的磁盘块中存储:入度为0的顶点列表因其入度数值相等,因而在B+树中相邻的物理块进行存储;某个顶点的出边在本发明实施例所引入的边索引中已经按源顶点ID有序排列,因而可快速获取所有出边及出边指向的邻接点(即出边的终点),因而相较于不使用本发明所引入的索引的情况,可以对此算法起到加速基于磁盘的数据访问过程。
场景3.5:Page Rank计算
此图计算算法将网页看成顶点,网页之间的超链接看成边组成的图,通过此PageRank算法计算得到的每个顶点的rank即代表了原始网页的重要性。
在基于(Bulk Synchronous Parallel,整体同步并行计算模型)的Page Rank图计算过程中,非常重要的一个基础数据即为图中每个顶点的出度。为了得到每个点的出度,Page Rank的一种实现是专门有一个iteration(迭代)来点向其邻接顶点发送消息,根据消息的数目计算顶点的度。
本发明实施例所引入的度的索引可简化此过程:在Page Rank计算开始的时候,进行一次点的出度的索引的遍历,根据出度值和每个顶点的ID的索引关系,即可直接获得每个顶点的出度数,此度数可直接作为Page Rank后续iteration(迭代)的输入数据基础;在图计算迭代过程中,每个顶点都需要将当前顶点在当前迭代中当前的page rank值按出边数目等分,并通过消息发送到其出边的所有邻接点(即其出边的终点)。在这一过程中,相较于没有索引,本发明实施例所引入的索引直接提供了某个顶点的邻接出边的终点,不需要在无索引情况下去进行此点的邻接边及邻接边的终点的遍历,可直接通过索引获取邻接点。同时,因B+树基于磁盘存储的特性,某一个顶点的邻接出边连接的邻接点都在物理磁盘相邻的物理块中,因而加快了这处理过程。
基于以上在图数据的遍历、图计算算法的场景中直接使用索引数据而非点、边原始数据来获取遍历及计算过程所需数据,提高了数据的访问效率,加速了算法实际运行过程。
实施例2
本发明实施例提供一种图数据库数据索引系统,如图2所示,包括:
用户定义数据获取模块1,用于获取用户指定为图数据库的顶点、边引入索引的特定数据;此模块执行实施例1中的步骤S1所描述的方法,在此不再赘述。
索引构建模块2,用于图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;模块执行实施例1中的步骤S2所描述的方法,在此不再赘述。
索引模块3,用于在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。该模块执行实施例1中的步骤S3所描述的方法,在此不再赘述。
本发明实施例提供的图数据库数据索引系统,图数据库在基于磁盘的存储层面为用户指定为图数据库的顶点、边的特定数据引入基于有序索引特征类型的索引;在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历,提高了数据的访问效率,加速了算法实际运行过程。
实施例3
本发明实施例提供一种计算机设备,如图3所示,包括:至少一个处理器401,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口403,存储器404,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,通信接口403可以包括显示屏(Display)、键盘(Keyboard),可选通信接口403还可以包括标准的有线接口、无线接口。存储器404可以是高速RAM存储器(Ramdom Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。其中处理器401可以执行实施例1的图数据库数据索引方法。存储器404中存储一组程序代码,且处理器401调用存储器404中存储的程序代码,以用于执行实施例1的图数据库数据索引方法。
其中,通信总线402可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固降硬盘(英文:solid-state drive,缩写:SSD);存储器404还可以包括上述种类的存储器的组合。
其中,处理器401可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic, 缩写:GAL)或其任意组合。
可选地,存储器404还用于存储程序指令。处理器401可以调用程序指令,实现如本申请执行实施例1中的图数据库数据索引方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行实施例1的图数据库数据索引方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固降硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种图数据库数据索引方法,其特征在于,包括:
获取用户指定为图数据库的顶点、边引入索引的特定数据;
图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;
在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。
2.根据权利要求1所述的图数据库数据索引方法,其特征在于,所述为图数据库的顶点引入索引的特定数据,包括顶点的入度、出度及度,所述度为入度与出度之和。
3.根据权利要求2所述的图数据库数据索引方法,其特征在于,所述为图数据库的边引入索引的特定数据,包括用户定义边的权重属性。
4.根据权利要求3所述的图数据库数据索引方法,其特征在于,所述图数据库在基于磁盘的存储层面为所述特定数据引入基于B+树的索引。
5.根据权利要求4所述的图数据库数据索引方法,其特征在于,所述图数据库在基于磁盘的存储层面为所述特定数据引入基于B+树的索引,包括:
在建立顶点的度数索引时,基于顶点具有非负的整型值及符合幂律分布,且度数小的顶点数目相对较多、度数大的顶点数目相对较少的特征,对顶点的度数进行分级的B+树存储,将度和顶点的ID组合形成用于搜索的B+树的“键”;
在建立边的权重索引时,基于边的权重值均为数值类型、用户指定边的属性及图数据库中以有向边进行管理的特征,为边建立基于顶点的邻边的权重值的索引,包括:权重属性索引按顶点的ID且按顶点的出边的权重有序性来建立,属性索引指向的是边的ID及边所指向的顶点;
在建立B+树时,B+树的搜索“键”先按边的起点ID顺序,再按同一起点的出边的权重的顺序进行排序,B+树的叶子页里所指向的“值”是出边的ID及出边的终点ID。
6.根据权利要求5所述的图数据库数据索引方法,其特征在于,对顶点的度数进行分级的B+树存储,包括:对于度数少于216的顶点的度数索引使用支持2字节无符号表示值范围的B+树,对于度数超过2字节表示的值范围度数的顶点,使用支持4字节无符号表示值范围的B+树。
7.根据权利要求3所述的图数据库数据索引方法,其特征在于,通过配置文件、或通过API接口指定某特定的图实例中,为顶点的入度、出度或度引入索引,和/或为边指定基于邻接顶点的权重属性引入索引。
8.一种图数据库数据索引系统,其特征在于,包括:
用户定义数据获取模块,用于获取用户指定为图数据库的顶点、边引入索引的特定数据;
索引构建模块,用于图数据库在基于磁盘的存储层面为所述特定数据引入基于有序索引特征类型的索引;
索引模块,用于在图特定算法或图的遍历中,图数据库通过所述引入基于有序索引特征类型的索引,得到所述图特定算法所需的数据或进行遍历。
9.一种计算机设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-7中任一所述的图数据库数据索引方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行1-7中任一所述的图数据库数据索引方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211134171.4A CN115238139A (zh) | 2022-09-19 | 2022-09-19 | 一种图数据库数据索引方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211134171.4A CN115238139A (zh) | 2022-09-19 | 2022-09-19 | 一种图数据库数据索引方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115238139A true CN115238139A (zh) | 2022-10-25 |
Family
ID=83681603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211134171.4A Pending CN115238139A (zh) | 2022-09-19 | 2022-09-19 | 一种图数据库数据索引方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115238139A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180203897A1 (en) * | 2017-01-18 | 2018-07-19 | Oracle International Corporation | Fast graph query engine optimized for typical real-world graph instances whose small portion of vertices have extremely large degree |
CN110737659A (zh) * | 2019-09-06 | 2020-01-31 | 平安科技(深圳)有限公司 | 图数据存储和查询方法、装置及计算机可读存储介质 |
CN111190904A (zh) * | 2019-12-30 | 2020-05-22 | 四川蜀天梦图数据科技有限公司 | 一种图-关系数据库混合存储的方法和装置 |
CN112364213A (zh) * | 2020-11-12 | 2021-02-12 | 全球能源互联网研究院有限公司 | 一种基于图数据库的电网检索方法及系统 |
-
2022
- 2022-09-19 CN CN202211134171.4A patent/CN115238139A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180203897A1 (en) * | 2017-01-18 | 2018-07-19 | Oracle International Corporation | Fast graph query engine optimized for typical real-world graph instances whose small portion of vertices have extremely large degree |
CN110737659A (zh) * | 2019-09-06 | 2020-01-31 | 平安科技(深圳)有限公司 | 图数据存储和查询方法、装置及计算机可读存储介质 |
CN111190904A (zh) * | 2019-12-30 | 2020-05-22 | 四川蜀天梦图数据科技有限公司 | 一种图-关系数据库混合存储的方法和装置 |
CN112364213A (zh) * | 2020-11-12 | 2021-02-12 | 全球能源互联网研究院有限公司 | 一种基于图数据库的电网检索方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522271B (zh) | 一种b+树节点的批量插入和删除方法及装置 | |
CA2808217A1 (en) | Method of graph processing | |
CN111666468A (zh) | 一种基于团簇属性在社交网络中搜索个性化影响力社区的方法 | |
Yang et al. | Pase: Postgresql ultra-high-dimensional approximate nearest neighbor search extension | |
JP7153420B2 (ja) | データベース中にグラフ情報を記憶するためのb木使用 | |
CN113468080B (zh) | 一种全闪元数据的缓存方法、系统及相关装置 | |
CN115238139A (zh) | 一种图数据库数据索引方法及系统 | |
CN116010664A (zh) | 基于mptt和双亲查找的数据处理方法及系统 | |
WO2013097065A1 (zh) | 一种索引数据处理方法及设备 | |
Naeem et al. | Optimised X-HYBRIDJOIN for near-real-time data warehousing | |
CN104598567A (zh) | 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 | |
CN110825846B (zh) | 数据处理方法及装置 | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
CN114048219A (zh) | 图数据库更新方法及装置 | |
Yang et al. | Querying a collection of continuous functions | |
Cai et al. | ESTI: efficient k-hop reachability querying over large general directed graphs | |
Hu et al. | Characterization of super-stable matchings | |
WO2013172309A1 (ja) | ルール発見システムと方法と装置並びにプログラム | |
CN115203490B (zh) | 图数据库中List列表容器数据类型的查询方法及装置 | |
JPH08320879A (ja) | 適合フィードバック装置 | |
CN116680367B (zh) | 数据匹配方法、数据匹配装置及计算机可读存储介质 | |
CN113536052B (zh) | 一种基于k边连通分量在大型网络中搜索个性化影响力社区的方法 | |
CN109885733B (zh) | 针对目标生成树查询的图数据压缩方法及装置 | |
Rajendran et al. | Incremental MapReduce for K-medoids clustering of big time-series data | |
US20220066656A1 (en) | Method and apparatus for processing data of in-memory database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221025 |