CN114691721A - 图数据的查询方法、装置、电子设备及存储介质 - Google Patents

图数据的查询方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114691721A
CN114691721A CN202210296632.1A CN202210296632A CN114691721A CN 114691721 A CN114691721 A CN 114691721A CN 202210296632 A CN202210296632 A CN 202210296632A CN 114691721 A CN114691721 A CN 114691721A
Authority
CN
China
Prior art keywords
data
file
target
vertex
index file
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
Application number
CN202210296632.1A
Other languages
English (en)
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202210296632.1A priority Critical patent/CN114691721A/zh
Publication of CN114691721A publication Critical patent/CN114691721A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (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

本发明实施例提供的一种图数据的查询方法、装置、电子设备及存储介质,涉及数据查询技术领域,可以接收图数据中目标数据文件的查询请求;通过查询请求和预设对应关系,识别得到图数据中目标节点中的目标分区,其中,图数据包括多个节点,各节点包括多个分区;获取目标分区的索引文件,其中,索引文件包括多个数据文件的存储位置信息;根据索引文件查询得到目标数据文件。从而实现通过预先存储的索引文件识别目标数据的存储位置,实现目标数据的快速查找。

Description

图数据的查询方法、装置、电子设备及存储介质
技术领域
本发明涉及数据查询技术领域,特别是涉及一种图数据的查询方法、装置、电子设备及存储介质。
背景技术
目前,图数据的应用已经越来越广泛。而图数据存储和索引结构设计作为图数据库中重要的设计部分,对于图数据库的性能起到了决定性作用,不同的数据存储和索引方式对性能的影响也往往呈数量级增长。
然而,发明人发现当前非原生图数据库的存储层多采用键值对的方式存储顶点数据和边数据,图数据库选择架构成熟的键值对数据库作为存储层,没有针对图做专门的存储结构优化,不但存储空间占用大,而且因为存储结构设计的局限,无法实现邻居点遍历的高效查询。
发明内容
本发明实施例的目的在于提供一种图数据的查询方法、装置、电子设备及存储介质,以实现图数据的快速查询。具体技术方案如下:
本申请实施例的第一方面,提供了一种图数据的查询方法,所述方法包括:
接收图数据中目标数据文件的查询请求;
通过所述查询请求和预设对应关系,识别得到所述图数据中目标节点中的目标分区,其中,所述图数据包括多个节点,各所述节点包括多个分区;
获取所述目标分区的索引文件,其中,所述索引文件包括多个数据文件的存储位置信息;
根据所述索引文件查询得到目标数据文件。
可选的,各所述分区存储有多个顶点数据文件和边数据文件,所述目标数据文件的查询请求包括目标顶点数据文件的标识信息,所述索引文件包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息;
所述根据所述索引文件查询得到目标数据文件,包括:
通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标数据文件的存储位置信息;
根据所述目标数据文件的存储位置信息获取所述目标数据文件。
可选的,所述索引文件还包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息,和与该顶点相邻的多个边的边数据文件的存储位置信息;
所述根据所述索引文件查询得到目标数据文件,包括:
通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标顶点的相邻的多个边的边数据文件的存储位置信息;
根据所述边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件,其中,所述索引文件中相邻的边的边数据文件存储在物理上连续的存储空间中。
可选的,所述根据所述索引文件查询得到目标数据文件,包括:
根据所述索引文件,通过二分查找查询得到目标数据文件。
可选的,所述索引文件为多层次树形索引结构,所述索引文件包括多个按照预设顺序排序的标识信息,所述根据所述索引文件,通过二分查找查询得到目标数据文件,包括:
根据所述索引文件,按照预设顺序通过二分查找查询得到目标数据文件。
可选的,所述接收图数据中目标数据文件的查询请求之前,所述方法还包括:
获取用户的写入请求,其中,所述写入请求包括待写入的数据;
对所述待写入的数据进行数据分类,得到对应的分类结果,其中,所述分类结果为顶点数据文件、边数据文件中的至少一个;
根据所述分类结果将所述待写入数据存储到指定位置,并根据存储位置建立索引文件,其中,所述索引文件为顶点索引文件、边索引文件中的至少一个。
可选的,所述根据所述分类结果将所述待写入数据存储到指定位置,并根据存储位置建立索引文件,包括:
根据所述分类结果将所述顶点数据文件和所述边数据文件划分到不同的分区;
根据各分区中数据文件的标识信息进行排序,得到对应的排序结果;
根据所述排序结果生成对应的索引文件。
本申请实施例的第二方面,提供了一种图数据的查询装置,所述装置包括:
请求接收模块,用于接收图数据中目标数据文件的查询请求;
分区识别模块,用于通过所述查询请求和预设对应关系,识别得到所述图数据中目标节点中的目标分区,其中,所述图数据包括多个节点,各所述节点包括多个分区;
文件获取模块,用于获取所述目标分区的索引文件,其中,所述索引文件包括多个数据文件的存储位置信息;
文件查询模块,用于根据所述索引文件查询得到目标数据文件。
可选的,各所述分区存储有多个顶点数据文件和边数据文件,所述目标数据文件的查询请求包括目标顶点数据文件的标识信息,所述索引文件包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息;
所述文件查询模块,包括:
位置信息查询子模块,用于通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标数据文件的存储位置信息;
目标文件获取子模块,用于根据所述目标数据文件的存储位置信息获取所述目标数据文件。
可选的,所述索引文件还包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息,和与该顶点相邻的多个边的边数据文件的存储位置信息;
所述文件查询模块,包括:
相邻位置信息获取子模块,用于通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标顶点的相邻的多个边的边数据文件的存储位置信息;
相邻数据文件查找子模块,用于根据所述边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件,其中,所述索引文件中相邻的边的边数据文件存储在物理上连续的存储空间中。
可选的,所述索引文件为多层次树形索引结构,所述文件查询模块,具体用于根据所述索引文件,通过二分查找查询得到目标数据文件。
可选的,所述索引文件包括多个按照预设顺序排序的标识信息,
所述文件查询模块,具体用于根据所述索引文件,按照预设顺序通过二分查找查询得到目标数据文件。
可选的,所述装置还包括:
请求获取模块,用于获取用户的写入请求,其中,所述写入请求包括待写入的数据;
分类结果获取模块,用于对所述待写入的数据进行数据分类,得到对应的分类结果,其中,所述分类结果为顶点数据文件、边数据文件中的至少一个;
数据写入模块,用于根据所述分类结果将所述待写入数据存储到指定位置,并根据存储位置建立索引文件,其中,所述索引文件为顶点索引文件、边索引文件中的至少一个。
可选的,所述数据写入模块,包括:
分区划分子模块,用于根据所述分类结果将所述顶点数据文件和所述边数据文件划分到不同的分区;
数据排序子模块,用于根据各分区中数据文件的标识信息进行排序,得到对应的排序结果;
索引生成子模块,用于根据所述排序结果生成对应的索引文件。
本申请实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一图数据的查询方法步骤。
本申请实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一图数据的查询方法步骤。
本申请实施例的另一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一图数据的查询方法步骤。
本发明实施例有益效果:
本发明实施例提供的一种图数据的查询方法、装置、电子设备及存储介质,可以接收图数据中目标数据文件的查询请求;通过查询请求和预设对应关系,识别得到图数据中目标节点中的目标分区,其中,图数据包括多个节点,各节点包括多个分区;获取目标分区的索引文件,其中,索引文件包括多个数据文件的存储位置信息;根据索引文件查询得到目标数据文件。从而实现通过预先存储的索引文件识别目标数据的存储位置,实现目标数据的快速查找。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的图数据的查询方法的一种流程示意图;
图2为本申请实施例提供的查询目标数据文件的一种流程示意图;
图3为本申请实施例提供的数据存储的一种实例示意图;
图4为本申请实施例提供的数据存储的另一种实例示意图;
图5为本申请实施例提供的查询目标数据文件的另一种流程示意图;
图6为本申请实施例提供的索引数据结构的一种实例示意图;
图7为本申请实施例提供的索引数据结构的另一种实例示意图;
图8为本申请实施例提供的建立索引文件的一种流程示意图;
图9为本申请实施例提供的图数据的查询装置的一种结构示意图;
图10为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本申请实施例中可能应用到的技术术语进行解释:
图:用于表示对象之间关联关系的一种抽象数据结构,使用顶点和边进行描述,顶点表示对象,边表示对象之间的关系。
原生图数据库:图数据库是NoSQL(非关系型数据库)数据库的一种类型,是一种非关系型数据库,它应用图理论存储实体之间的关系信息。原生图数据库是指数据存储、图查询等方面针对图做了相关优化的图数据库,区别于那些使用外部存储组件(比如KV(Key-Value)数据库)来保存数据的图数据库。
数据存储:点边数据在图数据库的存储方式。
索引:加快查询点边的数据结构。
本申请实施例的第一方面,提供了一种图数据的查询方法,包括:
接收图数据中目标数据文件的查询请求;
通过查询请求和预设对应关系,识别得到图数据中目标节点中的目标分区,其中,图数据包括多个节点,各节点包括多个分区;
获取目标分区的索引文件,其中,索引文件包括多个数据文件的存储位置信息;
根据索引文件查询得到目标数据文件。
可见,通过本申请实施例的方法,可以接收目标图数据的查询请求;通过预先存储的索引文件识别目标数据的存储位置;根据存储位置获取目标数据。从而实现通过预先存储的索引文件识别目标数据的存储位置,实现目标数据的快速查找。
参见图1,图1为本申请实施例提供的图数据的查询方法的一种流程示意图,包括:
步骤S11,接收图数据中目标数据文件的查询请求。
本申请实施例中的图数据是以图结构形式表示的数据。上述查询请求可以是指查询图数据中文件的查询请求。例如,当应用于图数据库时,图数据库通过数据分区的技术来支持大容量的点边数据存储,点边数据保存在多个不同的节点上,每台节点只保存部分点边数据,当图数据保存到不同节点上时,向存储图数据的节点发送查询请求。其中,图数据库可以作为图关系的分析平台,图查询(随机查询顶点或边、查询顶点的出入边、深度多阶遍历)是核心功能。图数据库可以通过数据分区的技术来支持大容量的点边数据存储,点边数据保存在多个不同的节点上,每台节点只保存部分点边数据。
本申请实施例的方法应用于智能终端,可以通过该智能终端实施,具体的,该智能终端可以是电脑或服务器等。
步骤S12,通过查询请求和预设对应关系,识别得到图数据中目标节点中的目标分区。
其中,图数据包括多个节点,各节点包括多个分区。本申请实施例中的图数据包括多个节点,每一节点中包括多个分区,每一分区中包括多个顶点数据和与该分区中各顶点相邻的多个边的边数据文件。
步骤S13,获取目标分区的索引文件,其中,索引文件包括多个数据文件的存储位置信息。
其中,上述索引文件可以包括不同目标数据对应的存储位置,在进行目标数据文件的存储位置的查询时,可以通过该目标数据文件的标识信息进行查找,具体的该标识信息可以是预设设定的唯一标识。
步骤S14,根据索引文件查询得到目标数据文件。
本申请实施例中根据索引文件查询得到目标数据文件,可以根据索引文件查询到对应的位置,然后从该位置获取对应的数据。例如,可以根据索引文件查找顶点或边这些图数据在数据文件中的位置,然后到数据文件中读取要查找的图数据。
当本申请实施例的方法应用于节点中的数据的查询时,根据存储位置获取目标数据,可以根据识别的目标数据的存储位置从节点中获取目标数据。当本申请实施例的方法应用于边数据文件的查询时,根据索引文件查询得到目标数据文件,可以根据边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件。
可见,通过本申请实施例的方法,可以接收目标图数据的查询请求;通过预先存储的索引文件识别目标数据的存储位置;根据存储位置获取目标数据。从而实现通过预先存储的索引文件识别目标数据的存储位置,实现目标数据的快速查找。
可选的,参见图2,各分区存储有多个顶点数据文件和边数据文件,目标数据文件的查询请求包括目标顶点数据文件的标识信息,索引文件包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息;
步骤S14根据索引文件查询得到目标数据文件,包括:
步骤S141,通过目标顶点数据文件的标识信息,根据索引文件查询得到目标数据文件的存储位置信息;
步骤S142,根据目标数据文件的存储位置信息获取目标数据文件。
本申请实施中,索引文件分为点索引文件和边索引文件,存储了多条索引数据,点索引数据存储了顶点在数据文件中的位置,边索引文件存储了不同类型的边在数据文件中的位置。节点中的数据可以包括两种,如点边数据文件和点边索引文件,顶点数据以及顶点关联的边数据存储在同一个分区中。参见图3。分布式环境下的顶点和边文件组织方式如图4所示,图中Nodei表示集群环境中第i个节点,Pn表示分区n,每个分区的分区号由分区策略决定。
可选的,参见图5,索引文件还包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息,和与该顶点相邻的多个边的边数据文件的存储位置信息;
步骤S14根据索引文件查询得到目标数据文件,包括:
步骤S143,通过目标顶点数据文件的标识信息,根据索引文件查询得到目标顶点的相邻的多个边的边数据文件的存储位置信息;
步骤S144,根据边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件,其中,索引文件中相邻的边的边数据文件存储在物理上连续的存储空间中。
本申请实施例中,顶点数据文件存储的每个顶点可以包括了顶点ID(标签)和顶点的属性数据。顶点ID是顶点在外部接口中的唯一标识符,如图数据库客户端可通过顶点ID查询到对应的顶点数据。顶点索引文件存储每个顶点在顶点数据文件中的位置,通过查询索引,根据数据文件的位置获取顶点的数据。
本申请实施例中边包含边数据和边索引2个文件,文件结构如图4所示,图中
Figure BDA0003563650300000091
表示第i个顶点的第j条边,lk表示在边数据文件中第k个顶点所有边的位置,比如,顶点0在对应的边索引文件中记录的是
Figure BDA0003563650300000092
的位置,
Figure BDA0003563650300000093
为顶点0对应的第m1个边;
Figure BDA0003563650300000094
为顶点1对应的第m2个边;
Figure BDA0003563650300000095
Figure BDA0003563650300000096
分别为顶点n对应的第1个和第2个边;
Figure BDA0003563650300000097
为顶点n对应的第mk个边。边数据文件存储每条边的全部数据,顶点ID只需要存储一次,每条边只需存储边的类型、边方向、边另一端顶点ID、边的属性数据,同一顶点的所有边数据不仅是存储在连续的物理存储空间中,而且是根据边类型有序存储,这样通过索引文件既可以快速获取顶点的所有邻居点、也可以获取特定边类型的邻居点。
本申请实施例的方法,从存储空间占用优化和深度遍历查询的设计目的出发,重新组织了图数据存储的结构,可以将顶点的以及顶点相关的出入边存储在同一节点,并且边数据可以是保存在物理上连续的存储空间中,从而可以实现高效地获取邻居点,实现深度遍历查询。此外,通过针对图查询优化的一个树型索引结构,通过查询索引,可以实现直接定位到点或边数据的位置,减少访问文件读取的次数,提高随机查询顶点或边的性能。
可选的,索引文件为多层次树形索引结构,根据索引文件查询得到目标数据文件,包括:根据索引文件,通过二分查找查询得到目标数据文件。具体的,索引文件可以分为点索引文件和边索引文件,可以存储多条索引数据,点索引数据可以存储顶点在数据文件中的位置,边索引文件可以存储不同类型的边在数据文件中的位置。索引文件可以快速定位到点边数据在数据文件中的位置,在查询点边数据时,只需要查询索引文件和一次数据文件读取就能实现。
可选的,索引文件包括多个按照预设顺序排序的标识信息,根据索引文件,通过二分查找查询得到目标数据文件,包括:根据索引文件,按照预设顺序通过二分查找查询得到目标数据文件。
本申请实施例中,索引数据的结构可以参见图6。ID作为顶点或边的唯一标识,一条索引数据由Head和Data两个部分组成。其中,int表示整数类型,byte表示字节,SkipList表示跳跃表,BlockPos表示区块位置。因为点边数据文件中相邻ID可能有相同的前缀,所以可以只记录当前索引和前一个索引不同的部分,每条索引数据存储了具有共同前缀的一批ID,这样减少了存储的数据。
例如,参见图7,本申请实施例中索引数据组成了树形结构,可以通过二分查找减少查询索引文件的次数。只有第一层存储了ID和数据文件的位置,高层的索引保存了ID和指向下层节点的位置。以查询ID“abd200”为例进行说明,假设索引文件由三层索引组成,先查询三层索引的第一个索引数据“ab”,发现“abd200”大于“ab”,继续查询三层索引,直到小于某个索引,这里“abd200”大于“ab”,小于“ac”,同样的,在二层索引上查询到“abd”,最下层查询到“abd101~200”,这样很快就得到ID为“abd200”在数据文件中的位置。
本申请实施例中,顶点的所有边数据不仅是存储在连续的物理存储空间中,而且是根据边类型有序存储,从而通过索引文件既可以快速获取顶点的所有邻居点、也可以获取特定边类型的邻居点。
通过本申请实施例的方法,可以对上述点边数据的存储结构和索引文件的图查询场景进行优化,点边数据的存储结构相对于键值对数据库来说,提高了存储空间使用效率,存储空间占用较少。索引数据存储了边在数据文件中的位置,也存储了不同边类型的边在数据文件中的位置,从而提高随机查询边的性能。
可选的,顶点和边的迭代及查询设计及实现思路类似,以边为例,边数据迭代器的实现主要是读取边索引文件获取边数据在数据文件位置,在迭代过程中顺序读取边数据文件。根据边索引文件可以快速定位到边数据,由于迭代过程边数据为顺序读,且设计的存储结构较小,因此迭代性能较好。顶点的邻居点查询主要是根据顶点ID查询该顶点对应的全部边,计算该顶点对应的边在边数据文件中的起始位置,然后读取数据文件获取所有的边数据。
通过本申请实施例的方法,可以针对图查询场景进行优化,点边数据的存储结构相对于键值对数据库来说,提高了存储空间使用效率,存储空间占用较少。索引数据存储了边在数据文件中的位置,也存储了不同边类型的边在数据文件中的位置,从而提高随机查询边的性能。
可选的,参见图8,接收图数据中目标数据文件的查询请求之前,上述方法还包括:
步骤S81,获取用户的写入请求,其中,写入请求包括待写入的数据;
步骤S82,对待写入的数据进行数据分类,得到对应的分类结果,其中,分类结果为顶点数据文件、边数据文件中的至少一个;
步骤S83,根据分类结果将待写入数据存储到指定位置,并根据存储位置建立索引文件,其中,索引文件为顶点索引文件、边索引文件中的至少一个。
可选的,根据分类结果将待写入数据存储到指定位置,并根据存储位置建立索引文件,包括:根据分类结果将顶点数据文件和边数据文件划分到不同的分区;根据各分区中数据文件的标识信息进行排序,得到对应的排序结果;根据排序结果生成对应的索引文件。
具体的,本申请实施例中,可以通过存储节点获取用户的写入请求,对请求进行解析并进行数据分类,顶点数据和边数据分别存储在顶点数据文件、边数据文件,以及对应的顶点索引文件和边索引文件。其中,存储节点根据顶点的唯一标识,把顶点和边数据划分到不同的分区,其中边数据与边的起点是划在相同分区。然后通过顶点数据按照顶点唯一标识号进行排序,每条数据依序存储在顶点数据文件中,其中,顶点数据包括顶点唯一标识和属性数据。顶点索引文件存储了顶点数据在顶点数据文件中的位置,根据顶点唯一标识号组织成树形结构。边数据按照边的起点唯一标识号进行排序,每条边数据依序存储在边数据文件中,相同起点的所有边数据连续存储,其中,边数据包括了边的类型、边的起点和终点、边唯一标识和边的属性数据,边索引文件存储了边的起点在边数据文件中的位置,根据起点的唯一标识组织成树形结构。
本申请实施例的第二方面,提供了一种图数据的查询装置,参见图9,包括:
请求接收模块901,用于接收图数据中目标数据文件的查询请求;
分区识别模块902,用于通过查询请求和预设对应关系,识别得到图数据中目标节点中的目标分区,其中,图数据包括多个节点,各节点包括多个分区;
文件获取模块903,用于获取目标分区的索引文件,其中,索引文件包括多个数据文件的存储位置信息;
文件查询模块904,用于根据索引文件查询得到目标数据文件。
可选的,各分区存储有多个顶点数据文件和边数据文件,目标数据文件的查询请求包括目标顶点数据文件的标识信息,索引文件包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息;
文件查询模块,包括:
位置信息查询子模块,用于通过目标顶点数据文件的标识信息,根据索引文件查询得到目标数据文件的存储位置信息;
目标文件获取子模块,用于根据目标数据文件的存储位置信息获取目标数据文件。
可选的,索引文件还包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息,和与该顶点相邻的多个边的边数据文件的存储位置信息;
文件查询模块,包括:
相邻位置信息获取子模块,用于通过目标顶点数据文件的标识信息,根据索引文件查询得到目标顶点的相邻的多个边的边数据文件的存储位置信息;
相邻数据文件查找子模块,用于根据边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件,索引文件为多层次树形索引结构。
可选的,文件查询模块,具体用于根据索引文件,通过二分查找查询得到目标数据文件。
可选的,索引文件为多层次树形索引结构,索引文件包括多个按照预设顺序排序的标识信息,
文件查询模块,具体用于根据索引文件,按照预设顺序通过二分查找查询得到目标数据文件。
可选的,上述装置还包括:
请求获取模块,用于获取用户的写入请求,其中,写入请求包括待写入的数据;
分类结果获取模块,用于对待写入的数据进行数据分类,得到对应的分类结果,其中,分类结果为顶点数据文件、边数据文件中的至少一个;
数据写入模块,用于根据分类结果将待写入数据存储到指定位置,并根据存储位置建立索引文件,其中,索引文件为顶点索引文件、边索引文件中的至少一个。
可选的,数据写入模块,包括:
分区划分子模块,用于根据分类结果将顶点数据文件和边数据文件划分到不同的分区;
数据排序子模块,用于根据各分区中数据文件的标识信息进行排序,得到对应的排序结果;
索引生成子模块,用于根据排序结果生成对应的索引文件。
可见,通过本申请实施例的装置,可以接收目标图数据的查询请求;通过预先存储的索引文件识别目标数据的存储位置;根据存储位置获取目标数据。从而实现通过预先存储的索引文件识别目标数据的存储位置,实现目标数据的快速查找。
本发明实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现如下步骤:
接收图数据中目标数据文件的查询请求;
通过查询请求和预设对应关系,识别得到图数据中目标节点中的目标分区,其中,图数据包括多个节点,各节点包括多个分区;
获取目标分区的索引文件,其中,索引文件包括多个数据文件的存储位置信息;
根据索引文件查询得到目标数据文件。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一图数据的查询方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一图数据的查询方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolID State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种图数据的查询方法,其特征在于,所述方法包括:
接收图数据中目标数据文件的查询请求;
通过所述查询请求和预设对应关系,识别得到所述图数据中目标节点中的目标分区,其中,所述图数据包括多个节点,各所述节点包括多个分区;
获取所述目标分区的索引文件,其中,所述索引文件包括多个数据文件的存储位置信息;
通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标数据文件的存储位置信息;根据所述目标数据文件的存储位置信息获取所述目标数据文件,其中,各所述分区存储有多个顶点数据文件和边数据文件,所述目标数据文件的查询请求包括目标顶点数据文件的标识信息,所述索引文件包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息;
和/或,
通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标顶点的相邻的多个边的边数据文件的存储位置信息;根据所述边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件,其中,所述索引文件中相邻的边的边数据文件存储在物理上连续的存储空间中,其中,所述索引文件还包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息,和与该顶点相邻的多个边的边数据文件的存储位置信息。
2.根据权利要求1所述的方法,其特征在于,所述索引文件为多层次树形索引结构,所述根据所述索引文件查询得到目标数据文件,包括:
根据所述索引文件,通过二分查找查询得到目标数据文件。
3.根据权利要求2所述的方法,其特征在于,所述索引文件包括多个按照预设顺序排序的标识信息,所述根据所述索引文件,通过二分查找查询得到目标数据文件,包括:
根据所述索引文件,按照预设顺序通过二分查找查询得到目标数据文件。
4.根据权利要求1所述的方法,其特征在于,所述接收图数据中目标数据文件的查询请求之前,所述方法还包括:
获取用户的写入请求,其中,所述写入请求包括待写入的数据;
对所述待写入的数据进行数据分类,得到对应的分类结果,其中,所述分类结果为顶点数据文件、边数据文件中的至少一个;
根据所述分类结果将所述待写入数据存储到指定位置,并根据存储位置建立索引文件,其中,所述索引文件为顶点索引文件、边索引文件中的至少一个。
5.根据权利要求4所述的方法,其特征在于,所述根据所述分类结果将所述待写入数据存储到指定位置,并根据存储位置建立索引文件,包括:
根据所述分类结果将所述顶点数据文件和所述边数据文件划分到不同的分区;
根据各分区中数据文件的标识信息进行排序,得到对应的排序结果;
根据所述排序结果生成对应的索引文件。
6.一种图数据的查询装置,其特征在于,所述装置包括:
请求接收模块,用于接收图数据中目标数据文件的查询请求;
分区识别模块,用于通过所述查询请求和预设对应关系,识别得到所述图数据中目标节点中的目标分区,其中,所述图数据包括多个节点,各所述节点包括多个分区;
文件获取模块,用于获取所述目标分区的索引文件,其中,所述索引文件包括多个数据文件的存储位置信息;
文件查询模块,用于通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标数据文件的存储位置信息;根据所述目标数据文件的存储位置信息获取所述目标数据文件,其中,各所述分区存储有多个顶点数据文件和边数据文件,所述目标数据文件的查询请求包括目标顶点数据文件的标识信息,所述索引文件包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息;和/或,通过所述目标顶点数据文件的标识信息,根据所述索引文件查询得到目标顶点的相邻的多个边的边数据文件的存储位置信息;根据所述边数据文件的存储位置信息,从当前分区中查找目标顶点的相邻的多个边的边数据文件,其中,所述索引文件中相邻的边的边数据文件存储在物理上连续的存储空间中,其中,所述索引文件还包括顶点数据文件的标识信息与对应的顶点数据文件的存储位置信息,和与该顶点相邻的多个边的边数据文件的存储位置信息。
7.根据权利要求6所述的装置,其特征在于,所述索引文件为多层次树形索引结构;
所述文件查询模块,具体用于根据所述索引文件,通过二分查找查询得到目标数据文件。
8.根据权利要求7所述的装置,其特征在于,所述索引文件包括多个按照预设顺序排序的标识信息,
所述文件查询模块,具体用于根据所述索引文件,按照预设顺序通过二分查找查询得到目标数据文件。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
请求获取模块,用于获取用户的写入请求,其中,所述写入请求包括待写入的数据;
分类结果获取模块,用于对所述待写入的数据进行数据分类,得到对应的分类结果,其中,所述分类结果为顶点数据文件、边数据文件中的至少一个;
数据写入模块,用于根据所述分类结果将所述待写入数据存储到指定位置,并根据存储位置建立索引文件,其中,所述索引文件为顶点索引文件、边索引文件中的至少一个。
10.根据权利要求9所述的装置,其特征在于,所述数据写入模块,包括:
分区划分子模块,用于根据所述分类结果将所述顶点数据文件和所述边数据文件划分到不同的分区;
数据排序子模块,用于根据各分区中数据文件的标识信息进行排序,得到对应的排序结果;
索引生成子模块,用于根据所述排序结果生成对应的索引文件。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN202210296632.1A 2022-03-24 2022-03-24 图数据的查询方法、装置、电子设备及存储介质 Pending CN114691721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210296632.1A CN114691721A (zh) 2022-03-24 2022-03-24 图数据的查询方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210296632.1A CN114691721A (zh) 2022-03-24 2022-03-24 图数据的查询方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114691721A true CN114691721A (zh) 2022-07-01

Family

ID=82138752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210296632.1A Pending CN114691721A (zh) 2022-03-24 2022-03-24 图数据的查询方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114691721A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033599A (zh) * 2022-08-12 2022-09-09 深圳市洞见智慧科技有限公司 基于多方安全的图查询方法、***及相关装置
CN115481298A (zh) * 2022-11-14 2022-12-16 阿里巴巴(中国)有限公司 图数据处理方法及电子设备
CN116403684A (zh) * 2023-06-08 2023-07-07 杭州医策科技有限公司 一种数字病理图像加载方法和装置
CN117235120A (zh) * 2023-11-09 2023-12-15 支付宝(杭州)信息技术有限公司 具有时序特性的超图数据存储和查询方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033599A (zh) * 2022-08-12 2022-09-09 深圳市洞见智慧科技有限公司 基于多方安全的图查询方法、***及相关装置
CN115033599B (zh) * 2022-08-12 2022-11-11 深圳市洞见智慧科技有限公司 基于多方安全的图查询方法、***及相关装置
CN115481298A (zh) * 2022-11-14 2022-12-16 阿里巴巴(中国)有限公司 图数据处理方法及电子设备
CN116403684A (zh) * 2023-06-08 2023-07-07 杭州医策科技有限公司 一种数字病理图像加载方法和装置
CN116403684B (zh) * 2023-06-08 2023-08-11 杭州医策科技有限公司 一种数字病理图像加载方法和装置
CN117235120A (zh) * 2023-11-09 2023-12-15 支付宝(杭州)信息技术有限公司 具有时序特性的超图数据存储和查询方法及装置

Similar Documents

Publication Publication Date Title
CN114691721A (zh) 图数据的查询方法、装置、电子设备及存储介质
CN107491487B (zh) 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质
CN109325032B (zh) 一种索引数据存储及检索方法、装置及存储介质
CN112287182A (zh) 图数据存储、处理方法、装置及计算机存储介质
US20150058352A1 (en) Thin database indexing
CN109033278B (zh) 数据处理方法、装置、电子设备及计算机存储介质
CN112765405B (zh) 空间数据搜索结果的聚类和查询的方法及***
US11327985B2 (en) System and method for subset searching and associated search operators
CN114491172B (zh) 树形结构节点的快速检索方法、装置、设备及存储介质
US11853279B2 (en) Data storage using vectors of vectors
CN112434027A (zh) 多维度数据的索引方法、装置、计算机设备和存储介质
US20230252012A1 (en) Method for indexing data
CN113656397A (zh) 一种针对时序数据的索引构建及查询的方法、装置
CN113779286B (zh) 管理图数据的方法及装置
CN116126864A (zh) 索引构建方法、数据查询方法及相关设备
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
CN113821630A (zh) 一种数据聚类的方法和装置
CN110889424A (zh) 向量索引建立方法及装置和向量检索方法及装置
Yagoubi et al. Radiussketch: massively distributed indexing of time series
CN115495462A (zh) 批量数据更新方法、装置、电子设备和可读存储介质
CN114416741A (zh) 基于多级索引的kv数据写入读取方法、装置及存储介质
CN114398373A (zh) 应用于数据库存储的文件数据存储读取方法及装置
JP2000112973A (ja) 空間インデックス方法及び空間インデックス処理プログラムを格納した媒体
KR20220099745A (ko) 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치
US20150220596A1 (en) Dynamically adjust duplicate skipping method for increased performance

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