CN114090837B - 一种图数据查询方法、装置、计算机设备及存储介质 - Google Patents

一种图数据查询方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN114090837B
CN114090837B CN202210024134.1A CN202210024134A CN114090837B CN 114090837 B CN114090837 B CN 114090837B CN 202210024134 A CN202210024134 A CN 202210024134A CN 114090837 B CN114090837 B CN 114090837B
Authority
CN
China
Prior art keywords
query
column
point
edge
endpoint
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.)
Active
Application number
CN202210024134.1A
Other languages
English (en)
Other versions
CN114090837A (zh
Inventor
吕志军
杜凯凯
许超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cognitive Computing Nanjing Information Technology Co ltd
Original Assignee
Cognitive Computing Nanjing Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cognitive Computing Nanjing Information Technology Co ltd filed Critical Cognitive Computing Nanjing Information Technology Co ltd
Priority to CN202210024134.1A priority Critical patent/CN114090837B/zh
Publication of CN114090837A publication Critical patent/CN114090837A/zh
Application granted granted Critical
Publication of CN114090837B publication Critical patent/CN114090837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种图数据查询方法、装置、计算机设备及存储介质。所述方法包括:基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。该方法中的目标Hbase将边信息以列数据的形式存储在点的行数据中,能够加快在目标Hbase中对点进行扩展查询的速度。

Description

一种图数据查询方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种图数据查询方法、装置、计算机设备及存储介质。
背景技术
在图数据库发展的过程中,随着数据量越来越大,图数据库也开始引入大数据的组件进行图数据的存储。Hbase作为Hadoop生态中的列式数据库,以其读写速度快,可扩展性好的特点,成为图数据存储的首选。
在现有的设计中,使用Hbase做图数据存储时,往往搭配Solr/ElasticSearch做Hbase数据的二级索引,从而实现在查询边的同时添加边的端点条件进行查询。但是,随着数据量的增加,在并发查询或多跳查询的情况下,二级索引的性能下降明显,无法在短时间内查询到结果,且二级索引往往伴随着数据不一致和查询延迟等问题,严重影响图数据库的性能和可靠性。
发明内容
本发明实施例提供了一种图数据查询方法、装置、计算机设备及存储介质,能够加快在目标Hbase数据库中对点进行扩展查询的速度。
第一方面,本发明实施例提供了一种图数据查询方法,包括:
基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
第二方面,本发明实施例还提供了一种图数据查询装置,包括:
确定模块,用于基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
查询模块,用于根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历模块,用于遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
第三方面,本发明实施例还提供了一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器用于实现本发明任意实施例中所述的图数据查询方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的图数据查询方法。
本发明实施例提供了一种图数据查询方法、装置、计算机设备及存储介质,首先基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;然后根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;最后遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。利用上述技术方案,能够加快在目标Hbase中对点进行扩展查询的速度。
附图说明
图1为本发明实施例一所提供的一种图数据查询方法的流程示意图;
图2为本发明实施例一所提供的一种图数据查询方法中的一种Hbase行结构示意图;
图3为本发明实施例一所提供的一种图数据查询方法中的初始Hbase行结构示意图;
图4a为本发明实施例一所提供的一种图数据查询方法中的点分割示意图;
图4b为本发明实施例一所提供的一种图数据查询方法中的边分割示意图;
图5为本发明实施例二所提供的一种图数据查询方法的流程示意图;
图6为本发明实施例四所提供的一种图数据查询装置的结构示意图;
图7为本发明实施例五所提供的一种计算机设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
实施例一
图1为本发明实施例一所提供的一种图数据查询方法的流程示意图,该方法可适用于在图数据库中进行扩展查询的情况,该方法可以由图数据查询装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。
如图1所示,本发明实施例一提供的一种图数据查询方法,包括如下步骤:
S110、基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息。
其中,图数据是以图形为对象形式的表示,两个点之间通过边进行连接,一个点可以对应至少一个边,边表示两个点之间的关联关系。此处,点可以理解为点数据,边可以理解为边数据。
其中,Hbase可以用于存储图数据。Hbase为列式存储的数据库,在Hbase的存储结构中存在两级结构。每个行可以包括任意数量个列族,每个列族可以包括任意数量个列,每个列的标识符为Rowkey,ColumnFamily:Column,Rowkey表示行键,ColumnFamily表示列族,Column表示列。在其底层存储中,每个列族可以创建一个存储文件,在该文件中,行数据按照Rowkey和列的排序进行存储。
图2为本发明实施例一所提供的一种图数据查询方法中的一种Hbase行结构示意图,如图2所示,一个行结构可以包括一个点的Rowkey、N个ColumnFamily以及每个ColumnFamily所包括的N行。其中,每个行可以包括该列的列名以及列值Value。
在本实施例中,目标Hbase可以基于初始Hbase得到,在初始Hbase中写入输入对象即可得到目标Hbase。
在本实施例中,初始Hbase可以包括多个行,不同的行对应不同点数据,一个行可以包括一个属性列族以及一个索引列族。
具体的,所述初始Hbase包括至少一个行结构,一个行结构包括所述图数据中一个点的Rowkey,每个行结构包括一个属性列族以及一个索引列族,所述一个属性列族用于存储所述一个点的属性信息,所述一个索引列族存储用于所述一个点对应的所有边的边信息。
其中,一个属性列族可以包括至少一个列,一个列可以用于存储一个属性信息,不同的列可以用于存储不同的属性信息,可以理解为将一个点对应的属性信息对应存储在多个行中。可以将属性名作为该列的列名,将属性的值作为该列的列值。需要说明的是,属性信息可以从点信息表中获取。
其中,一个索引列族可以包括至少一个列,一个列可以用于存储一条边的边信息,边信息可以包括该边的唯一标识以及对端点的唯一标识,可以将边的唯一标识作为该边所在列的列名,可以将对端点的唯一标识作为该边所在列的列值。对端点可以理解为一个边切割后与其不相连的点。需要说明的是,唯一标识可以为一种身份标识,根据唯一标识可以找到该唯一标识对应的主体,唯一标识可以为数字、字符以及字母中的一种或多种,此处不做具体限制。
图3为本发明实施例一所提供的一种图数据查询方法中的初始Hbase行结构示意图,如图3所示,一个行结构可以包括一个点的Rowkey、一个属性列族properties以及一个索引列族index。属性列族可以包括N列,每个列可以用于存储一个点的一个属性信息,P1可以表示属性名,Value1可以表示属性的值;索引列族可以包括N列,每个列可以用于存储一个点对应的一个边的边信息,edge_id1可以表示边的唯一标识,dst_id1可以标识对端点的唯一标识。其中,edge_id1为索引列族的第一列的列名,dst_id1为索引列族的第一列的列值。
进一步的,所述基于图数据的至少一个边确定目标Hbase,包括:将图数据的至少一个边的属性写入对应的边信息表中;基于所述边信息表确定目标Hbase。
其中,属性可以包括边的唯一标识、边上包括的两个点的唯一标识等。两个点中一个点可以作为本端点一个点可以作为对端点。边信息表中可以存储多个边的属性。
在一个实施例中,确定目标Hbase的方式可以为:对边进行边切割得到两个子边,根据边信息表可以确定所述两个子边对应的图索引结构的输入对象,基于所述输入对象可以得到目标Hbase。
需要说明的是,在图数据的存储中,为了能将点与边关联起来,往往需要将点与边进行关联性存储。其中,点切割是指将点的数据分割到与其相连的边上进行存储,与其相连的边的边信息中可以包含两个端点的信息。边切割是将边的数据分割成两份,将两份边数据分别存储到边的两个端点上,于此,点信息中可以包括所有与该点连接的所有边的边信息。
图4a为本发明实施例一所提供的一种图数据查询方法中的点分割示意图,如图4a所示,V1、A1、V2可以表示3个点,点A1的一端通过一个边与点V1相连,点A1的另一端通过另一个边与点V2相连进行点切割后,得到两部分。其中,一部分包括点V1与点A1,以及点V1与点A1之间的边,点V1与点A1通过边相连;另一部分包括A1与V2,以及V2与A1之间的边,点V2与点A1通过边相连。
图4b为本发明实施例一所提供的一种图数据查询方法中的边分割示意图,如图4b所示,点A1连接两个边,点V1和点V2分别连接一个边,将点V1和点A1之间的边以及点A1与点V2之间的边进行边切割后可以得到三个部分。其中,第一部分包括点V1以及与点V1相连的切割后的一个边;第二部分包括点V2以及与点V2相连的切割后的一个边;第三部分包括点A1以及与点A1相连的切割后的两个边。
在本实施例中,可以通过边切割的方式将每个边进行切割,下面以对一个边进行切割为例展开说明。
具体的,所述根据所述边信息表确定目标Hbase,包括:针对一个边,对所述一个边进行边切割得到两个子边的边索引;根据所述边信息表生成两个所述边索引对应的图索引结构的输入对象;将所述输入对象写入初始Hbase后得到目标Hbase。
在一个实施例中,根据所述边信息表生成两个所述边索引对应的图索引结构的输入对象的方式可以为:从边信息表中获取所述一个边的属性,一个边的属性包括该边的唯一标识以及该边的两个端点的唯一标识;根据所述一个边的属性生成两个图索引结构的输入对象。
进一步的,所述输入对象包括第一端点的索引以及第二端点的索引,所述第一端点为所述两个子边中的一个子边所包括的端点,所述第二端点为所述两个子边中的另一个子边所包括的端点;其中,所述第一端点与所述第二端点互为对端点。
其中,将第一端点作为本端点时,第二端点可以作为对端点;将第二端点作为本端点时,可以将第一端点作为对端点。结合图4a可知,将点V1与点A1之间的边进行边切割后,可以将点V1以及与点V1相连的子边生成的索引作为第一端点的索引,此时,点V1可以作为本端点,点A1可以作为对端点;将点A1以及与点A1相连的子边生成的索引作为第二端点的索引,此时,点A1可以作为本端点,将点V1可以作为对端点。
进一步的,所述第一端点的索引包括第一Rowkey以及第一索引列族中的一个列的列名和列值,所述第二端点的索引包括第二Rowkey以及第二索引列族中的一个列的列名和列值;
所述第一Rowkey包括所述第一端点的唯一标识,所述第一列族中的一个列的列名包括所述第一个子边的唯一标识,所述第一列族中的一个列的列值包括所述第二端点的唯一标识;
所述第二Rowkey包括所述第二端点的唯一标识,所述第二索引列族中的一个列的列名包括所述另一个子边的唯一标识,所述第二索引列族中的一个列的列值包括所述第一端点的唯一标识;
其中,所述第一端点的边信息包括所述第一个子边的唯一标识以及所述第二端点的唯一标识,所述第二端点的边信息包括所述另一个子边的唯一标识以及所述第一端点的唯一标识。
可以理解的是,将第一端点切割之后与其相连的所有边的边信息都写入到第一索引列族包括的列中,一个边的边信息写入一个列中。
在本实施例中,将多个边进行边切割后可以得到多个子边,进而可以生成多个子边上端点的索引得到多个端点的索引,将多个端点的索引作为输入对象写入初始Hbase中。在每个端点的索引中,将本端点的唯一标识作为Rowkey,将子边唯一标识作为索引列族中列的列名,将对端点唯一便是作为索引列族中列的列值。
S120、根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据。
其中,查询点可以为在目标Hbase中查询到的点数据。在图数据库中,扩展查询是一个非常重要的功能,扩展查询是指根据给出的查询点,查询与其相关联的N跳之内的所有点。
可以理解的是,目标Hbase中可以包括多个行结构,每个行结构对应一个点,每个行结构中的索引列族中包括一个点的所有边信息。
在本实施例中,将对查询点的扩展查询从遍历查询变为提取查询,具体查询过程在实施例二中进行详细说明,此处不做具体说明。
其中,结果数据可以为查询点所在的行结构中的索引列族中的所有数据,索引列族中的每个列都包括一个边信息。
S130、遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
其中,对端点信息可以包括对端点的唯一标识。
在本实施例中,通过遍历结果数据即可以得到查询点所关联的边的边信息,以及查询点的对端点信息。
本发明实施例一提供的一种图数据查询方法,首先基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;然后根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;最终遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。该方法中的目标Hbase将边信息以列数据的形式存储在点的行数据中,能够加快在目标Hbase中对点进行扩展查询的速度。此外,通过对索引列的列名的设计,可以实现边的方向和边类型的过滤查询。
实施例二
图5为本发明实施例二所提供的一种图数据查询方法的流程示意图,本实施例二在上述各实施例的基础上进行优化。在本实施例中,所述扩展查询包括提取查询,所述查询对象包括提取对象,所述提取对象包括查询点的点唯一标识,相应的,将所述根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据,进一步具体化为:生成查询点的提取对象,将所述查询点的点唯一标识作为所述提取对象的Rowkey;在所述目标Hbase数据库中查询所述提取对象的Rowkey对应的目标第二列族;遍历所述目标第二列族中的预设数量个目标列,得到所述目标列中的所有数据;将所述目标列中的所有数据作为结果数据。本实施例尚未详尽的内容请参考实施例一。
如图5所示,本发明实施例二提供的一种图数据查询方法,包括如下步骤:
S210、基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息。
S220、生成查询点的提取对象,将所述查询点的点唯一标识作为所述提取对象的Rowkey。
在本实施例中,由于目标Hbase中的边索引数据是以列数据的形式存储在点的行数据中,从而可以将对查询点的扩展查询从遍历查询变为提取查询,在进行提取查询时需要生成查询点的提取对象。
其中,可以将查询点的点唯一标识即点id作为Rowkey。
S230、在所述目标Hbase中查询所述提取对象的Rowkey对应的目标索引列族。
其中,目标索引列族可以为目标Hbase中查询点所在行包括的索引列族。此处需要说明的是,在目标Hbase对查询点进行查询时,只需要在索引列族中查询,不需要遍历属性列族。
S240、遍历所述目标索引列族中的预设数量个查询列,得到所述查询列中的所有数据。
其中,查询列可以理解为目标索引列族中的所有列。预设数量可以为预先设置的所要查询的列的数量。
在本实施例中,预设数量可以为预先设置的所要查询的列的数量,由于目标索引列族中可以包括很多列,为规避超级点对系统的影响,因此需要预先设置查询列的数量。
需要解释的是,超级点是指在图数据中,度非常大的点。这些点拥有非常多的出边和入边,会对系统的查询性能和数据分布有巨大的影响。按照大数据图分布的理论,大部分自然图数据会根据幂律分布,即少数点拥有大量的边,大多数点只拥有少量的边。因此,在图数据库的存储设计中需要考虑超级点对系统的影响。
可选的,在一个实施例中,还可以预先设置查询列的最大数量,遍历的查询列的个数不能超过最大数量,示例性的,若最大数量为10,则只能遍历目标索引列族中的10个列。
S250、将所述查询列中的所有数据作为结果数据。
其中,结果数据可以理解为根据查询点的提取对象在目标Hbase中遍历后得到的所有数据。
S260、遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
本发明实施例二提供的一种图数据查询方法,具体化了将所述根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据的具体过程。该方法利用Hbase的列式存储特性,将边分割后存储在两端点的索引列族中,大大加快了图数据中扩展查询的速度;通过对查询列数量的显示,可以有效避免超级点对系统的影响。
实施例三
本发明实施例三在上述各实施例的技术方案的基础上,提供了一种具体的实施方式。
本发明实施例三所提供的一种图数据查询方法的目标Hbase的存储结构包括:点的数据结构为Rowkey为点的id即点的唯一标识。列族properties即属性列族存储点的属性信息,其中每列代表一个点的一个属性,列名为属性名,值为属性的值。列族index即索引列族为点的边信息,其中每一列代表一条边的信息,列名为边的id即边的唯一标识,列值为对端点的id即对端点的唯一标识。
作为一种具体的实施方式,本发明实施例三所提供的一种图数据查询方法的具体流程如下:
1、边数据的写入流程如下:
(1)将边的属性写入边的信息表中即将图数据的至少一个边的属性写入对应的边信息表中;
(2)将边分为两个索引边,分别生成两个图索引的Put对象即输入对象,一个为本端点的索引即第一端点的索引,其Rowkey为本端点的id即第一端点的唯一标识,列族为index,列名为边id,列值为对端点id。另一个为对端点的索引即第二端点的索引,其Rowkey为对端点的id即第二端点的唯一标识,列族为index,列名为边的id,列值为本端点的id;
(3)将两个图索引的Put对象写入Hbase即将所述输入对象写入初始Hbase后得到目标Hbase。
2、扩展查询的流程如下:
(1)生成查询点的Get对象即提取对象,其Rowkey为查询点的点id,并指定列族为index,指定查询列的最大数量;
(2)使用Get对象进行查询,获取到该Rowkey的行中index列族的所有数据;
(3)遍历所有数据即为查询点扩展出的所有边信息和对端点信息。
本发明实施例三所提供的一种图数据查询方法,与传统的二级索引的方案相比,在亿级数据的规模下,单层扩展查询的性能由秒级降低为毫秒级,两层扩展查询的性能由分钟级降低为亚秒级。在百亿的数据规模下,单层扩展性能由分钟级降为毫秒级,两层扩展查询由超时降为秒级。极大的提升了图数据的扩展查询性能。
实施例四
图6为本发明实施例四所提供的一种图数据查询装置的结构示意图,该装置可适用于在图数据库中进行扩展查询的情况,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。
如图6所示,该装置包括:确定模块110、查询模块120以及遍历模型130。
确定模块110,用于基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
查询模块120,用于根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历模块130,用于遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
在本实施例中,该装置首先通过确定模块110基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;然后通过查询模块120根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;最后通过遍历模块130遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
本实施例提供了一种图数据查询装置,该装置通过边切割的方式将边索引数据以列数据的形式存储在点的行数据中,能够加快在目标Hbase数据库中对点进行扩展查询的速度。
进一步的,所述目标Hbase基于初始Hbase确定,所述初始Hbase包括至少一个行结构,一个行结构包括所述图数据中一个点的Rowkey,每个行结构包括一个属性列族以及一个索引列族,所述一个属性列族用于存储所述一个点的属性信息,所述一个索引列族用于存储所述一个点对应的所有边的边信息。
进一步的,确定模块110具体用于:将图数据的至少一个边的属性写入对应的边信息表中;基于所述边信息表确定目标Hbase。
基于上述技术方案,所述根据所述边信息表确定目标Hbase,包括:针对一个边,对所述一个边进行边切割得到两个子边的边索引;根据所述边信息表生成两个所述边索引对应的图索引结构的输入对象;将所述输入对象写入初始Hbase后得到目标Hbase。
进一步的,所述输入对象包括第一端点的索引以及第二端点的索引,所述第一端点为所述两个子边中的一个子边所包括的端点,所述第二端点为所述两个子边中的另一个子边所包括的端点;其中,所述第一端点与所述第二端点互为对端点。
进一步的,所述第一端点的索引包括第一Rowkey以及第一索引列族中的一个列的列名和列值,所述第二端点的索引包括第二Rowkey以及第二索引列族中的一个列的列名和列值;
所述第一Rowkey包括所述第一端点的唯一标识,所述第一列族中的一个列的列名包括所述第一个子边的唯一标识,所述第一列族中的一个列的列值包括所述第二端点的唯一标识;
所述第二Rowkey包括所述第二端点的唯一标识,所述第二索引列族中的一个列的列名包括所述另一个子边的唯一标识,所述第二索引列族中的一个列的列值包括所述第一端点的唯一标识;其中,所述第一端点的边信息包括所述第一个子边的唯一标识以及所述第二端点的唯一标识,所述第二端点的边信息包括所述另一个子边的唯一标识以及所述第一端点的唯一标识。
进一步的,所述扩展查询包括提取查询,所述查询对象包括提取对象,所述提取对象包括查询点的点唯一标识,相应的,查询模块120具体用于:生成查询点的提取对象,将所述查询点的点唯一标识作为所述提取对象的Rowkey;在所述目标Hbase中查询所述提取对象的Rowkey对应的目标索引列族;遍历所述目标索引列族中的预设数量个查询列,得到所述查询列中的所有数据;将所述查询列中的所有数据作为结果数据。
上述图数据查询装置可执行本发明任意实施例所提供的图数据查询方法,具备执行方法相应的功能模块和有益效果。
实施例五
图7为本发明实施例五所提供的一种计算机设备的结构示意图。如图7所示,本发明实施例五提供的计算机设备包括:一个或多个处理器41和存储装置42;该计算机设备中的处理器41可以是一个或多个,图7中以一个处理器41为例;存储装置42用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如本发明实施例中任一项所述的图数据查询方法。
所述计算机设备还可以包括:输入装置43和输出装置44。
计算机设备中的处理器41、存储装置42、输入装置43和输出装置44可以通过总线或其他方式连接,图7中以通过总线连接为例。
该计算机设备中的存储装置42作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一或二所提供的图数据查询方法对应的程序指令/模块(例如,附图6所示的图数据查询装置中的模块,包括:确定模块110、查询模块120以及遍历模块130)。处理器41通过运行存储在存储装置42中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例中的图数据查询方法。
存储装置42可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储装置42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
并且,当上述计算机设备所包括一个或者多个程序被所述一个或者多个处理器41执行时,程序进行如下操作:
基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
实施例六
本发明实施例六提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行图数据查询方法,该方法包括:
基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息。
可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的图数据查询方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种图数据查询方法,其特征在于,所述方法包括:
基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息;
其中,所述目标Hbase基于初始Hbase确定,所述初始Hbase包括至少一个行结构,一个行结构包括所述图数据中一个点的Rowkey,每个行结构包括一个属性列族以及一个索引列族,所述一个属性列族用于存储所述一个点的属性信息,所述一个索引列族用于存储所述一个点对应的所有边的边信息;
其中,一个索引列族包括若干个列,一个列用于存储与所述一个点相连的一条边的边信息,边信息包括该边的唯一标识以及对端点的唯一标识,将边的唯一标识作为该边所在列的列名,将对端点的唯一标识作为该边所在列的列值。
2.根据权利要求1所述的方法,其特征在于,所述基于图数据的至少一个边确定目标Hbase,包括:
将图数据的至少一个边的属性写入对应的边信息表中;
基于所述边信息表确定目标Hbase。
3.根据权利要求2所述的方法,其特征在于,所述基于所述边信息表确定目标Hbase,包括:
针对一个边,对所述一个边进行边切割得到两个子边的边索引;
根据所述边信息表生成两个所述边索引对应的图索引结构的输入对象;
将所述输入对象写入初始Hbase后得到目标Hbase。
4.根据权利要求3所述的方法,其特征在于,所述输入对象包括第一端点的索引以及第二端点的索引,
所述第一端点为所述两个子边中的一个子边所包括的端点,所述第二端点为所述两个子边中的另一个子边所包括的端点;
其中,所述第一端点与所述第二端点互为对端点。
5.根据权利要求4所述的方法,其特征在于,所述第一端点的索引包括第一Rowkey以及第一索引列族中的一个列的列名和列值,所述第二端点的索引包括第二Rowkey以及第二索引列族中的一个列的列名和列值;
所述第一Rowkey包括所述第一端点的唯一标识,所述第一索引列族中的一个列的列名包括所述一个子边的唯一标识,所述第一索引列族中的一个列的列值包括所述第二端点的唯一标识;
所述第二Rowkey包括所述第二端点的唯一标识,所述第二索引列族中的一个列的列名包括所述另一个子边的唯一标识,所述第二索引列族中的一个列的列值包括所述第一端点的唯一标识;
其中,所述第一端点的边信息包括所述一个子边的唯一标识以及所述第二端点的唯一标识,所述第二端点的边信息包括所述另一个子边的唯一标识以及所述第一端点的唯一标识。
6.根据权利要求1所述的方法,其特征在于,所述扩展查询包括提取查询,所述查询对象包括提取对象,所述提取对象包括查询点的点唯一标识,相应的,所述根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据,包括:
生成查询点的提取对象,将所述查询点的点唯一标识作为所述提取对象的Rowkey;
在所述目标Hbase中查询所述提取对象的Rowkey对应的目标索引列族;
遍历所述目标索引列族中的预设数量个查询列,得到所述查询列中的所有数据;
将所述查询列中的所有数据作为结果数据。
7.一种图数据查询装置,其特征在于,所述装置包括:
确定模块,用于基于图数据的至少一个边确定目标Hbase,所述目标Hbase中包括所述图数据的至少一个点对应的所有边的边信息;
查询模块,用于根据查询点的查询对象,在所述目标Hbase中进行扩展查询,得到结果数据;
遍历模块,用于遍历所述结果数据,得到所述查询点的边信息以及所述查询点的对端点信息;
其中,所述目标Hbase基于初始Hbase确定,所述初始Hbase包括至少一个行结构,一个行结构包括所述图数据中一个点的Rowkey,每个行结构包括一个属性列族以及一个索引列族,所述一个属性列族用于存储所述一个点的属性信息,所述一个索引列族用于存储所述一个点对应的所有边的边信息;
其中,一个索引列族包括若干个列,一个列用于存储与所述一个点相连的一条边的边信息,边信息包括该边的唯一标识以及对端点的唯一标识,将边的唯一标识作为该边所在列的列名,将对端点的唯一标识作为该边所在列的列值。
8.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器用于执行权利要求1-6任一项所述的图数据查询方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的图数据查询方法。
CN202210024134.1A 2022-01-11 2022-01-11 一种图数据查询方法、装置、计算机设备及存储介质 Active CN114090837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210024134.1A CN114090837B (zh) 2022-01-11 2022-01-11 一种图数据查询方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210024134.1A CN114090837B (zh) 2022-01-11 2022-01-11 一种图数据查询方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN114090837A CN114090837A (zh) 2022-02-25
CN114090837B true CN114090837B (zh) 2022-05-24

Family

ID=80308483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210024134.1A Active CN114090837B (zh) 2022-01-11 2022-01-11 一种图数据查询方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114090837B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694834A (zh) * 2019-03-15 2020-09-22 杭州海康威视数字技术股份有限公司 图数据的入库方法、装置、设备及可读存储介质
CN111538804A (zh) * 2020-04-20 2020-08-14 北京京安佳新技术有限公司 一种基于HBase的图数据处理方法和设备
CN113553458A (zh) * 2021-08-10 2021-10-26 北京明略软件系统有限公司 图数据库中的数据导出方法及装置

Also Published As

Publication number Publication date
CN114090837A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN109299110B (zh) 数据查询方法、装置、存储介质和电子设备
US20200272610A1 (en) Method, apparatus, device and medium for storing and querying data
US9104729B2 (en) Querying spatial events in a vehicle network, and optimized querier
CN108694221B (zh) 数据实时分析方法、模块、设备和装置
CN110362593B (zh) 一种数据查询方法、装置、设备及存储介质
CN110795431B (zh) 环境监测数据处理方法、装置、设备及存储介质
CN112084179A (zh) 一种数据处理的方法、装置、设备及存储介质
EP3955256A1 (en) Non-redundant gene clustering method and system, and electronic device
CN111488371A (zh) 一种数据查询方法和装置
CN108959571B (zh) Sql语句的运算方法、装置、终端设备及存储介质
CN114090837B (zh) 一种图数据查询方法、装置、计算机设备及存储介质
CN110515979B (zh) 数据查询方法、装置、设备和存储介质
CN109697234B (zh) 实体的多属性信息查询方法、装置、服务器和介质
CN111310076B (zh) 地理位置查询方法、装置、介质及电子设备
CN115913791B (zh) 基于增量式查询索引树的mdata动态子图匹配方法和系统
CN109542912B (zh) 区间数据存储方法、装置、服务器及存储介质
CN112527950A (zh) 一种基于MapReduce的图数据删除方法及系统
CN109101595B (zh) 一种信息查询方法、装置、设备及计算机可读存储介质
CN107644103B (zh) 一种可追溯信息来源的信息存储的方法和系统
CN112069812B (zh) 一种分词方法、装置、设备及计算机存储介质
CN107943807B (zh) 一种数据处理方法及存储设备
CN112765118B (zh) 一种日志查询方法、装置、设备及存储介质
CN112835905A (zh) 一种数组类型列的索引方法、装置、设备以及存储介质
CN114463068A (zh) 一种数据处理方法和装置
CN114048219A (zh) 图数据库更新方法及装置

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
GR01 Patent grant
GR01 Patent grant