数据存储及查询方法、装置及数据库系统转让专利
申请号 : CN202111169465.6
文献号 : CN113609347B
文献日 : 2021-12-28
发明人 : 张松清 , 江进 , 付治钧 , 朱炳鹏 , 袁琳
申请人 : 支付宝(杭州)信息技术有限公司
摘要 :
权利要求 :
1.一种数据存储方法,包括:
确定待存储的有向图图数据中的各个起始图节点的邻居图节点数量;
根据各个起始图节点的邻居图节点数量确定数据存储方式;
针对各个起始图节点,在所述数据存储方式为非超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征信息以及出边数据存储到第一数据存储介质的第一起始图节点数据分块,所述出边索引特征信息包括该起始图节点的所有出边的出边索引特征,每个出边索引特征与用于索引所述第一起始图节点数据分块中存储的对应出边数据的出边数据索引之间形成映射关系;以及针对各个起始图节点,在所述数据存储方式为超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块,所述出边索引特征范围信息包括与出边数据分块索引之间形成映射关系的多个出边索引特征范围,以及将该起始图节点的出边数据以及出边数据存储地址信息存储到第三数据存储介质的至少两个出边数据分块,所述出边数据存储地址信息包括二元数组<出边数据的出边索引特征,出边数据在出边数据分块中的相对存储地址>。
2.如权利要求1所述的数据存储方法,其中,所述数据存储方式相对于所述有向图图数据中的所有起始图节点确定出,或者所述数据存储方式相对于所述有向图图数据中的各个起始图节点分别确定出。
3.如权利要求1所述的数据存储方法,其中,所述节点数据包括起始图节点的节点标识以及节点属性,所述邻居信息包括起始图节点的节点标识以及邻居属性,所述邻居属性包括所有出边的基本信息,以及所述出边数据包括出边标识以及出边属性。
4.如权利要求3所述的数据存储方法,其中,每个出边的基本信息包括该出边的终止图节点的节点标识以及该出边的出边索引特征,以及所述出边标识包括终止图节点的节点标识以及出边索引特征。
5.如权利要求4所述的数据存储方法,其中,每个出边的基本信息还包括该出边的终止图节点的节点类型和/或该出边的出边类型,以及所述出边标识还包括出边类型。
6.如权利要求3所述的数据存储方法,其中,所述节点数据还包括节点元数据,所述节点元数据包括起始图节点的节点索引特征和/或节点类型。
7.如权利要求1所述的数据存储方法,其中,所述索引特征包括时间戳,所述出边索引特征信息包括经过降序排序后的所有出边的出边时间戳,以及所述出边索引特征范围信息包括经过降序排序后的多个出边时间戳范围。
8.如权利要求7所述的数据存储方法,其中,每个出边时间戳范围保存对应出边数据分块的最大出边时间戳和最小出边时间戳。
9.如权利要求1所述的数据存储方法,其中,所述第一起始图节点数据分块和所述第二起始图节点数据分块还存储逆向邻居信息,和/或所述出边数据分块还存储出边数量。
10.如权利要求1所述的数据存储方法,其中,针对邻居数量超过预定阈值的各个起始图节点,在所确定的数据存储方式为超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块包括:
将该起始图节点的节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块,以及将邻居信息分别存储到第四数据存储介质的至少两个邻居数据分块,其中,所述邻居索引特征范围包括与邻居数据分块索引之间形成映射关系的多个邻居索引特征范围。
11.如权利要求1所述的数据存储方法,其中,所述第一数据存储介质、所述第二数据存储介质以及所述第三数据存储介质分别包括一个或多个数据存储介质,以及所述第一数据存储介质、所述第二数据存储介质以及所述第三数据存储介质中的部分数据存储介质采用同一数据存储介质实现。
12.如权利要求1所述的数据存储方法,其中,所述非超大点数据存储和所述超大点数据存储采用键值对存储方式实现。
13.一种数据查询方法,包括:
响应于接收到用户发起的数据查询请求,基于待查询图节点的节点标识确定该待查询图节点的数据分块索引,有向图图数据按照如权利要求1所述的方法存储在第一数据存储介质、第二数据存储介质和/或第三数据存储介质中;
将所述数据分块索引所索引的起始图节点数据分块从第一数据存储介质或第二数据存储介质读取到数据查询装置的内存中并进行解析;
根据解析后的起始图节点数据分块,在所述数据查询装置的本地解析数据中或者从第三数据存储介质的出边数据分块获取所述数据查询请求的查询数据;以及将所获取的查询数据提供给所述用户。
14.如权利要求13所述的数据查询方法,其中,所述节点数据包括起始图节点的节点标识以及节点属性,所述邻居信息包括起始图节点的节点标识信息以及邻居属性,所述邻居属性包括所有出边的基本信息,所述出边数据包括出边标识以及出边属性,根据解析后的起始图节点数据分块,在所述数据查询装置的本地解析数据中或者从第三数据存储介质的出边数据分块获取所述数据查询请求的查询数据包括:响应于所述数据查询请求指示查询图节点的节点属性,获取解析出的起始图节点数据分块的节点数据中的节点属性,作为所述查询数据,响应于所述数据查询请求指示查询图节点的邻居属性,获取解析出的邻居信息中的邻居属性,作为所述查询数据,或者
响应于所述数据查询请求指示查询图节点的出边属性,从解析出的起始图节点数据分块的邻居信息中确定目标出边的出边索引特征,基于所述出边索引特征和所述出边索引特征信息中确定所述目标出边的出边数据索引,以及从所述出边数据索引所索引的解析后的起始图节点数据分块的出边数据中获取所述目标出边的出边属性作为所述查询数据,或者基于所述出边索引特征和所述出边索引特征范围信息确定所述目标出边的出边数据分块索引,以及从所述出边数据分块索引所索引的第三数据存储介质的出边数据分块中获取所述目标出边的出边属性作为所述查询数据。
15.如权利要求14所述的数据查询方法,其中,所述数据查询请求包括过滤条件,响应于所述数据查询请求指示查询图节点的节点属性,获取解析出的起始图节点数据分块的节点数据中的节点属性包括:响应于所述数据查询请求指示查询图节点的节点属性,基于所述数据查询请求中的过滤条件对解析出的起始图节点数据分块的节点数据进行查询过滤,并且获取经过查询过滤后的节点数据的节点属性,
响应于所述数据查询请求指示查询图节点的邻居属性,获取解析出的邻居信息中的邻居属性包括:
响应于所述数据查询请求指示查询图节点的邻居属性,基于所述数据查询请求中的过滤条件对解析出的邻居信息进行查询过滤,并且获取经过查询过滤后的邻居信息中的邻居属性,或者
响应于所述数据查询请求指示查询图节点的出边属性,从解析出的起始图节点数据分块的邻居信息中确定目标出边的出边索引特征包括:响应于所述数据查询请求指示查询图节点的出边属性,从解析出的起始图节点数据分块的邻居信息中确定出符合所述过滤条件的目标出边的出边索引特征。
16.如权利要求14所述的数据查询方法,其中,从所述出边数据分块索引所索引的第三数据存储介质的出边数据分块中获取所述目标出边的出边属性作为所述查询数据包括:将所述出边数据分块索引所索引的出边数据分块从第三数据存储介质读取到所述数据查询装置的内存中;
解析所读取的出边数据分块中的出边数据存储地址信息;
基于所述目标出边的出边索引特征,从解析后的出边数据存储地址信息中确定所述目标出边的出边数据在所述出边数据分块中的相对存储地址;
根据所述相对存储地址从所读取的出边数据分块中获取所述目标出边的出边数据并进行解析;以及
获取解析后的所述目标出边的出边数据中的出边属性,作为所述查询数据。
17.如权利要求14所述的数据查询方法,其中,所述出边索引特征包括出边时间戳,基于所述出边索引特征和所述出边索引特征信息确定所述目标出边的出边数据索引包括:
基于所述出边时间戳,使用二分查找法在所述出边时间戳信息中查找来确定所述目标出边的出边数据索引或者在所述出边时间戳范围信息中确定出所述目标出边的出边数据分块索引,或者
基于所述出边索引特征和所述出边索引特征范围信息确定所述目标出边的出边数据分块索引包括:
基于所述出边时间戳,使用二分查找法在所述出边时间戳范围信息中查找来确定所述目标出边的出边数据分块索引。
18.如权利要求14所述的数据查询方法,其中,针对邻居数量超过预定阈值的各个起始图节点,在所述数据存储方式为超大点数据存储时,所述第二起始图节点数据分块存储起始图节点的节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引,以及起始图节点的邻居信息分别存储到第四数据存储介质的至少两个邻居数据分块,
在获取解析出的邻居信息中的邻居属性之前,所述数据查询方法还包括:响应于所述数据查询请求指示查询图节点的邻居属性,基于邻居索引特征和所述邻居索引特征范围信息确定邻居数据分块索引;以及将所述邻居数据分块索引所索引的邻居数据分块从第四数据存储介质读取到所述数据查询装置的内存并进行解析。
19.一种数据存储装置,包括:
节点数量确定单元,确定待存储的有向图图数据中的各个起始图节点的邻居图节点数量;
数据存储方式确定单元,根据各个起始图节点的邻居图节点数量确定数据存储方式;
以及
数据存储单元,针对各个起始图节点,在所述数据存储方式为非超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征信息以及出边数据存储到第一数据存储介质的第一起始图节点数据分块,所述出边索引特征信息包括该起始图节点的所有出边的出边索引特征,每个出边索引特征与用于索引所述第一起始图节点数据分块中存储的对应出边数据的出边数据索引之间形成映射关系;以及在所述数据存储方式为超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块,所述出边索引特征范围信息包括与出边数据分块索引之间形成映射关系的多个出边索引特征范围,以及将该起始图节点的出边数据以及出边数据存储地址信息存储到第三数据存储介质的至少两个出边数据分块,所述出边数据存储地址信息包括二元数组<出边数据的出边索引特征,出边数据在出边数据分块中的相对存储地址>。
20.如权利要求19所述的数据存储装置,其中,所述数据存储方式确定单元相对于所述有向图图数据中的所有起始图节点确定所述数据存储方式,或者相对于所述有向图图数据中的各个起始图节点确定所述数据存储方式。
21.如权利要求19所述的数据存储装置,其中,针对邻居数量超过预定阈值的各个起始图节点,在所述数据存储方式为超大点数据存储时,所述数据存储单元将该起始图节点的节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块,将邻居信息分别存储到第四数据存储介质的至少两个邻居数据分块,以及将该起始图节点的出边数据以及出边数据存储地址信息存储到第三数据存储介质的至少两个出边数据分块。
22.一种数据查询装置,包括:
数据分块索引确定单元,响应于接收到用户发起的数据查询请求,基于待查询图节点的节点标识确定该待查询图节点的数据分块索引,有向图图数据按照如权利要求1所述的方法存储到第一数据存储介质、第二数据存储介质和/或第三数据存储介质中;
数据读取单元,将所述数据分块索引所索引的起始图节点数据分块从第一数据存储介质或第二数据存储介质读取到数据查询装置的内存中;
数据解析单元,对所读取的起始图节点数据分块进行解析;
查询数据获取单元,根据解析后的起始图节点数据分块,在所述数据查询装置的本地解析数据中或者从第三数据存储介质的出边数据分块获取所述数据查询请求的查询数据;
以及
查询数据提供单元,将所获取的查询数据提供给所述用户。
23.如权利要求22所述的数据查询装置,其中,所述节点数据包括起始图节点的节点标识以及节点属性,所述邻居信息包括起始图节点的节点标识以及邻居属性,所述邻居属性包括所有出边的基本信息,所述出边数据包括出边标识以及出边属性,响应于所述数据查询请求指示查询图节点的节点属性,所述查询数据获取单元获取解析出的起始图节点数据分块的节点数据中的节点属性,作为所述查询数据,响应于所述数据查询请求指示查询图节点的邻居属性,所述查询数据获取单元获取解析出的邻居信息中的邻居属性,作为所述查询数据,或者响应于所述数据查询请求指示查询图节点的出边属性,所述查询数据获取单元从解析出的起始图节点数据分块的邻居信息中确定目标出边的出边索引特征,基于所述出边索引特征和所述出边索引特征信息确定所述目标出边的出边数据索引,以及从所述出边数据索引所索引的解析后的起始图节点数据分块的出边数据中获取所述目标出边的出边属性作为所述查询数据,或者基于所述出边索引特征和所述出边索引特征范围信息中确定所述目标出边的出边数据分块索引,以及从所述出边数据分块索引所索引的第三数据存储介质的出边数据分块中获取所述目标出边的出边属性作为所述查询数据。
24.如权利要求23所述的数据查询装置,所述数据查询请求包括过滤条件,响应于所述数据查询请求指示查询图节点的节点属性,所述查询数据获取单元进一步基于所述数据查询请求中的过滤条件对解析出的起始图节点数据分块的节点数据进行查询过滤,
响应于所述数据查询请求指示查询图节点的节点属性,所述查询数据获取单元基于所述数据查询请求中的过滤条件对解析出的邻居信息进行查询过滤,或者响应于所述数据查询请求指示查询图节点的出边属性,所述查询数据获取单元进一步从解析后的起始图节点数据分块的邻居信息中确定符合所述过滤条件的目标出边的出边索引特征。
25.如权利要求23所述的数据查询装置,其中,所述数据读取单元将所述出边数据分块索引所索引的出边数据分块从第三数据存储介质读取到所述数据查询装置的内存中,所述数据解析单元解析所述出边数据分块中的出边数据存储地址信息,以及所述数据查询单元被配置为:
基于所述目标出边的出边索引特征,从解析后的出边数据存储地址信息中确定所述目标出边在所述出边数据分块中的相对存储地址;
根据所述相对存储地址从所读取的出边数据分块中获取所述目标出边的出边数据并进行解析;以及
获取解析后的所述目标出边的出边数据中的出边属性,作为所述查询数据。
26.如权利要求23所述的数据查询装置,其中,针对邻居数量超过预定阈值的各个起始图节点,在所述数据存储方式为超大点数据存储时,所述第二起始图节点数据分块存储起始图节点的节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引,以及邻居信息分别存储到第四数据存储介质的至少两个邻居数据分块,
响应于所述数据查询请求指示查询图节点的邻居属性,所述查询数据获取单元基于邻居索引特征在所述邻居索引特征范围信息中确定出邻居数据分块索引,以及所述数据读取单元将所述邻居数据分块索引所索引的邻居数据分块从第四数据存储介质读取到所述数据查询装置的内存,
所述数据解析单元进一步解析所读取的邻居数据分块。
27.一种数据库系统,包括:
如权利要求19到21中任一所述的数据存储装置;
如权利要求22到26中任一所述的数据查询装置;以及至少一个数据存储介质,包括第一数据存储介质、第二数据存储介质和/或第三数据存储介质。
28.一种数据存储装置,包括:
至少一个处理器,
与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求1到12中任一所述的数据存储方法。
29.一种数据查询装置,包括:
至少一个处理器,
与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求13到18中任一所述的数据查询方法。
30.一种计算机可读存储介质,其存储有可执行指令,所述指令当被执行时使得处理器执行如权利要求1到12中任一所述的数据存储方法或者执行如权利要求13到18中任一所述的数据查询方法。
说明书 :
数据存储及查询方法、装置及数据库系统
技术领域
背景技术
据存储在比如磁盘的数据存储介质中。现有图数据存储方案不能以具有较高数据查询效率
的方式将图数据存储在数据存储介质中。
发明内容
量确定数据存储方式;针对各个起始图节点,在所述数据存储方式为非超大点数据存储时,
将该起始图节点的节点数据、邻居信息、出边索引特征信息以及出边数据存储到第一数据
存储介质的第一起始图节点数据分块,所述出边索引特征信息包括该起始图节点的所有出
边的出边索引特征,每个出边索引特征与用于索引所述第一起始图节点数据分块中存储的
对应出边数据的出边数据索引之间形成映射关系;以及针对各个起始图节点,在所述数据
存储方式为超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征范围
信息以及出边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块,所述出
边索引特征范围信息包括与出边数据分块索引之间形成映射关系的多个出边索引特征范
围,以及将该起始图节点的出边数据以及出边数据存储地址信息存储到第三数据存储介质
的至少两个出边数据分块,所述出边数据存储地址信息包括二元数组<出边数据的出边索
引特征,出边数据在出边数据分块中的相对存储地址>。
始图节点分别确定出。
所有出边的基本信息,以及所述出边数据包括出边标识以及出边属性。
以及出边索引特征。
经过降序排序后的多个出边时间戳范围。
息、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图
节点数据分块可以包括:将该起始图节点的节点数据、邻居索引特征范围、邻居数据分块索
引、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二起始图
节点数据分块,以及将邻居信息分别存储到第四数据存储介质的至少两个邻居数据分块,
其中,所述邻居索引特征范围包括与邻居数据分块索引之间形成映射关系的多个邻居索引
特征范围。
介质、所述第二数据存储介质以及所述第三数据存储介质中的部分数据存储介质采用同一
数据存储介质实现。
索引,有向图图数据按照如上所述的方法存储在第一数据存储介质、第二数据存储介质和/
或第三数据存储介质中;将所述数据分块索引所索引的起始图节点数据分块从第一数据存
储介质或第二数据存储介质读取到数据查询装置的内存中并进行解析;根据解析后的起始
图节点数据分块,在所述数据查询装置的本地解析数据中或者从第三数据存储介质的出边
数据分块获取所述数据查询请求的查询数据;以及将所获取的查询数据提供给所述用户。
所有出边的基本信息,所述出边数据包括出边标识以及出边属性。相应地,根据解析后的起
始图节点数据分块,在所述数据查询装置的本地解析数据中或者从第三数据存储介质的出
边数据分块获取所述数据查询请求的查询数据可以包括:响应于所述数据查询请求指示查
询图节点的节点属性,获取解析出的起始图节点数据分块的节点数据中的节点属性,作为
所述查询数据,响应于所述数据查询请求指示查询图节点的邻居属性,获取解析出的邻居
信息中的邻居属性,作为所述查询数据,或者响应于所述数据查询请求指示查询图节点的
出边属性,从解析出的起始图节点数据分块的邻居信息中确定目标出边的出边索引特征,
基于所述出边索引特征和所述出边索引特征信息确定所述目标出边的出边数据索引,以及
从所述出边数据索引所索引的解析后的起始图节点数据分块的出边数据中获取所述目标
出边的出边属性作为所述查询数据,或者基于所述出边索引特征和所述出边索引特征范围
信息确定所述目标出边的出边数据分块索引,从所述出边数据分块索引所索引的第三数据
存储介质的出边数据分块中获取所述目标出边的出边属性作为所述查询数据。
节点数据中的节点属性可以包括:响应于所述数据查询请求指示查询图节点的节点属性,
基于所述数据查询请求中的过滤条件对解析出的起始图节点数据分块的节点数据进行查
询过滤,并且获取经过查询过滤后的节点数据的节点属性。响应于所述数据查询请求指示
查询图节点的邻居属性,获取解析出的邻居信息中的邻居属性可以包括:响应于所述数据
查询请求指示查询图节点的邻居属性,基于所述数据查询请求中的过滤条件对解析出的邻
居信息进行查询过滤,并且获取经过查询过滤后的邻居信息中的邻居属性。响应于所述数
据查询请求指示查询图节点的出边属性,从解析出的起始图节点数据分块的邻居信息中确
定目标出边的出边索引特征可以包括:响应于所述数据查询请求指示查询图节点的出边属
性,从解析出的起始图节点数据分块的邻居信息中确定符合所述过滤条件的目标出边的出
边索引特征。
所述出边数据分块索引所索引的出边数据分块从第三数据存储介质读取到所述数据查询
装置的内存中;解析所读取的出边数据分块中的出边数据存储地址信息;基于所述目标出
边的出边索引特征,从解析后的出边数据存储地址信息中确定所述目标出边的出边数据在
所述出边数据分块中的相对存储地址;根据所述相对存储地址从所读取的出边数据分块中
获取所述目标出边的出边数据并进行解析;以及获取解析后的所述目标出边的出边数据中
的出边属性,作为所述查询数据。
包括:基于所述出边时间戳,使用二分查找法在所述出边时间戳信息中查找来确定所述目
标出边的出边数据索引。或者,基于所述出边索引特征和所述出边索引特征范围信息确定
所述目标出边的出边数据分块索引可以包括:基于所述出边时间戳,使用二分查找法在所
述出边时间戳范围信息中查找来确定所述目标出边的出边数据分块索引。
节点的节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边
数据分块索引,以及起始图节点的邻居信息分别存储到第四数据存储介质的至少两个邻居
数据分块。相应地,在获取解析出的邻居信息中的邻居属性之前,所述数据查询方法还可以
包括:响应于所述数据查询请求指示查询图节点的邻居属性,基于邻居索引特征和所述邻
居索引特征范围信息确定邻居数据分块索引;以及将所述邻居数据分块索引所索引的邻居
数据分块从第四数据存储介质读取到所述数据查询装置的内存并进行解析。
确定单元,根据各个起始图节点的邻居图节点数量确定数据存储方式;以及数据存储单元,
针对各个起始图节点,在所述数据存储方式为非超大点数据存储时,将该起始图节点的节
点数据、邻居信息、出边索引特征信息以及出边数据存储到第一数据存储介质的第一起始
图节点数据分块,所述出边索引特征信息包括该起始图节点的所有出边的出边索引特征,
每个出边索引特征与用于索引所述第一起始图节点数据分块中存储的对应出边数据的出
边数据索引之间形成映射关系;以及在所述数据存储方式为超大点数据存储时,将该起始
图节点的节点数据、邻居信息、出边索引特征范围信息以及出边数据分块索引存储到第二
数据存储介质的第二起始图节点数据分块,所述出边索引特征范围信息包括与出边数据分
块索引之间形成映射关系的多个出边索引特征范围,以及将该起始图节点的出边数据以及
出边数据存储地址信息存储到第三数据存储介质的至少两个出边数据分块,所述出边数据
存储地址信息包括二元数组<出边数据的出边索引特征,出边数据在出边数据分块中的相
对存储地址>。
各个起始图节点确定所述数据存储方式。
数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索
引存储到第二数据存储介质的第二起始图节点数据分块,将邻居信息分别存储到第四数据
存储介质的至少两个邻居数据分块,以及将该起始图节点的出边数据以及出边数据存储地
址信息存储到第三数据存储介质的至少两个出边数据分块。
待查询图节点的数据分块索引,有向图图数据按照如上所述的方法存储到第一数据存储介
质、第二数据存储介质和/或第三数据存储介质中;数据读取单元,将所述数据分块索引所
索引的起始图节点数据分块从第一数据存储介质或第二数据存储介质读取到数据查询装
置的内存中;数据解析单元,对所读取的起始图节点数据分块进行解析;查询数据获取单
元,根据解析后的起始图节点数据分块,在所述数据查询装置的本地解析数据中或者从第
三数据存储介质的出边数据分块获取所述数据查询请求的查询数据;以及查询数据提供单
元,将所获取的查询数据提供给所述用户。
所有出边的基本信息,所述出边数据包括出边标识以及出边属性。响应于所述数据查询请
求指示查询图节点的节点属性,所述查询数据获取单元获取解析出的起始图节点数据分块
的节点数据中的节点属性,作为所述查询数据。响应于所述数据查询请求指示查询图节点
的邻居属性,所述查询数据获取单元获取解析出的邻居信息中的邻居属性,作为所述查询
数据。响应于所述数据查询请求指示查询图节点的出边属性,所述查询数据获取单元从解
析后的起始图节点数据分块的邻居信息中确定目标出边的出边索引特征,基于所述出边索
引特征和所述出边索引特征信息确定所述目标出边的出边数据索引,以及从所述出边数据
索引所索引的解析后的起始图节点数据分块的出边数据中获取所述目标出边的出边属性
作为所述查询数据,或者基于所述出边索引特征和所述出边索引特征范围信息确定所述目
标出边的出边数据分块索引,以及从所述出边数据分块索引所索引的第三数据存储介质的
出边数据分块中获取所述目标出边的出边属性作为所述查询数据。
询请求中的过滤条件对解析出的起始图节点数据分块的节点数据进行查询过滤。响应于所
述数据查询请求指示查询图节点的节点属性,所述查询数据获取单元基于所述数据查询请
求中的过滤条件对解析出的邻居信息进行查询过滤。响应于所述数据查询请求指示查询图
节点的出边属性,所述查询数据获取单元进一步从解析后的起始图节点数据分块的邻居信
息中确定符合所述过滤条件的目标出边的出边索引特征。
解析单元解析所述出边数据分块中的出边数据存储地址信息;基于所述目标出边的出边索
引特征。所述数据查询单元被配置为:从解析后的出边数据存储地址信息中确定所述目标
出边在所述出边数据分块中的相对存储地址;根据所述相对存储地址从所读取的出边数据
分块中获取所述目标出边的出边数据并进行解析;以及获取解析后的所述目标出边的出边
数据中的出边属性,作为所述查询数据。
节点的节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边
数据分块索引,以及邻居信息分别存储到第四数据存储介质的至少两个邻居数据分块。响
应于所述数据查询请求指示查询图节点的邻居属性,所述查询数据获取单元基于邻居索引
特征和所述邻居索引特征范围信息确定邻居数据分块索引,以及所述数据读取单元将所述
邻居数据分块索引所索引的邻居数据分块从第四数据存储介质读取到所述数据查询装置
的内存。所述数据解析单元进一步解析所读取的邻居数据分块。
质、第二数据存储介质和/或第三数据存储介质。
少一个处理器执行所述计算机程序来实现如上所述的数据存储方法。
少一个处理器执行所述计算机程序来实现如上所述的数据查询方法。
述的数据查询方法。
查询方法。
附图说明
具体实施方式
书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围
的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或
者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,
以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中
也可以进行组合。
例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不
同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明
确地指明,否则一个术语的定义在整个说明书中是一致的。
节点。节点标识、节点属性数据和边属性数据可以与业务相关。比如,对于社交网络场景,节
点标识可以是人的身份证号码或者人员编号等。节点属性数据可以包括年龄、学历、住址、
职业等。边属性数据可以包括节点与节点之间的关系,即,人与人之间的关系,比如,同学/
同事关系等。在海量图数据的情况下,存在海量图节点数据和边数据,并且图节点数据和边
数据之间存在复杂的关联关系。数据存储介质中的图数据存储方式会大大影响图数据查询
效率。
如,查询出边属性)时,可能会需要进行多次IO查询(IO读取)。这里,IO查询是指通过数据查
询装置的操作系统的IO接口来与数据存储介质(例如,磁盘)进行数据交互,由此将IO查询
结果(IO查询数据)从数据存储介质读取到数据查询装置的内存中。IO查询可能会成为数据
查询装置的系统瓶颈,从而延长数据查询延时,由此导致图数据查询效率不佳。此外,在这
种图数据存储方案中,在图节点的邻居数量非常大的情况下,查询该图节点的指定时间戳
的出边信息时,需要遍历该图节点的所有出边,从而导致需要进行较多不必要的数据查询
及数据解析,由此导致数据查询效率较低。
邻居表服务端中。由于不同服务端上的存储数据异构,从而使得在图拓扑结构更新频繁的
情况下,邻居表的更新会成为数据库系统的系统瓶颈。
1、第二数据存储介质130‑2和/或第三数据存储介质130‑3。要说明的是,第一数据存储介质
130‑1、第二数据存储介质130‑2和第三数据存储介质130‑3虽然例示为一个数据存储介质,
但是在其它实施例中,第一数据存储介质130‑1、第二数据存储介质130‑2和第三数据存储
介质130‑3中的每种数据存储介质可以具有多个数据存储介质。
据(查询数据)。
数据读取到数据查询装置120的内存中,并且在内存中进行数据查询处理得到查询数据。数
据存储介质130例如可以是各种非易失性存储介质,比如,磁盘设备、存储卡等。磁盘是指利
用磁记录技术存储数据的存储器。磁盘的示例例如可以包括各种形式的(Soft Disk)软盘
和硬盘(Hard Disk)。
“邻居图节点”是指沿着边的方向一跳可以到达的图节点。图3示出了有向图图数据的示例
示意图。在图3的示例中,示出了6个图节点A、B、C、D、E和F。图节点B、C和D是图节点A的邻居
节点,图节点F是图节点C的邻居节点。图节点E不是图节点A的邻居节点,但图节点E是图节
点A的逆向邻居节点。
这种方式下,在确定出有向图图数据的所有起始图节点的邻居图节点的节点数量后,将邻
居图节点的节点数量的最大值与第一阈值进行比较。如果该最大值大于第一阈值,则将数
据存储方式确定为超大点数据存储。如果该最大值不大于第一阈值,则将数据存储方式确
定为非超大点数据存储。这里,第一阈值可以基于所使用的数据存储介质的存储容量设定,
或者可以根据应用场景或者经验设置。
各自的邻居节点数量确定,从而各个起始图节点的数据存储方式可能相同,也可能不同。在
这种方式下,在确定出一个起始图节点的邻居节点数量后,可以基于该起始图节点的邻居
节点数量确定该起始图节点的数据存储方式,并且随后执行后续数据存储操作,而无需等
待其它起始图节点的邻居节点数量确定和数据存储方式确定。
一数据存储介质130‑1的第一起始图节点数据分块中。在本说明书中,术语“索引特征”可以
指代有助于在图数据存储和/或图数据查询时生成或确定索引信息的特定图数据特征。例
如,在数据存储时,可以在每个出边的出边索引特征与用于索引数据分块中所存储的对应
出边数据的出边数据索引之间形成映射关系。在一个示例中,可以将每个出边的出边索引
特征存储在出边索引特征信息中,并且按照每个出边的出边索引特征在出边索引特征信息
中的存储顺序(或存储位置)来将对应的出边数据依序存储在数据分块中,由此使得出边索
引特征信息中的每个存储位置可以用作对应出边数据的出边数据索引,并且在出边索引特
征与边索引特征信息中的存储位置(即,出边数据索引)之间形成映射关系。在数据查询时,
可以基于数据索引特征得到对应的数据索引,由此实现数据查询。数据的索引特征的示例
例如可以包括时间戳、数据的特定属性等。这里,数据的特定属性可以包括有助于确定数据
存储索引的特定属性。例如,在数据属性包括“收款人的年龄”的情况下,在进行数据存储
时,可以按照收款人的年龄顺序存储,由此可以基于属性“收款人的年龄”生成数据存储位
置的索引,从而属性“收款人的年龄”可以充当索引特征。所述出边索引特征信息包括该起
始图节点的所有出边的出边索引特征,并且每个出边索引特征与用于索引第一起始图节点
数据分块中存储的对应出边数据的出边数据索引之间形成映射关系。例如,每个出边数据
的出边索引特征可以与出边索引特征在出边索引特征信息中的存储顺序建议映射关系,出
边索引特征信息中的存储顺序可以用于索引第一起始图节点数据分块中的对应出边数据。
比如,假设存在4个出边数据A1、A2、A3和A4,以及出边数据A1、A2、A3和A4的出边索引特征的
特征值分别为F1、F2、F3和F4。在进行数据存储时,可以将特征值F1、F2、F3和F4保存在出边
索引特征信息中。如果出边索引特征信息中的特征值的存储顺序为F1、F3、F2和F4,则出边
数据A1、A2、A3和A4在数据分块中的存储顺序为A1、A3、A2和A4。
引特征信息以及出边数据被独立地存储在一个第一起始图节点数据分块中。
~ ~
有多个字段的第一数据结构,该第一数据结构中的各个字段分别用于存储起始图节点的节
点数据、邻居信息、出边索引特征信息1 n以及出边数据1 n。此外,可选地,第一起始图节点
~ ~
数据分块中还可以存储有逆向邻居信息。逆向邻居信息所具有的内容可以与邻居信息相
同。
括属性名和属性值。节点的属性名例如可以包括“年龄”、“身高”、“职业”等。属性值是指属
性名的对应取值。可选地,属性名可以用于建立索引,从而在数据查询时支持条件过滤。起
始图节点的节点元数据可以包括该起始图节点的索引特征,例如,节点时间戳。可选地,在
一个示例中,起始图节点的节点元数据还可以包括节点类型。节点类型例如可以是实现节
点分类的特征信息,例如,“人”、“公司”、“设备”等。在图5的示例中,节点元数据包括时间戳
和节点类型。此外,可选地,在其它实施例中,节点数据也可以不包括节点元数据。
(终点ID)以及该出边的出边索引特征。可选地,在一个示例中,每个出边的基本信息可以按
照每个出边的出边索引特征在出边索引特征信息中的对应存储顺序依序存储在邻居信息
中。在图5的示例中,出边索引特征为出边时间戳。此外,可选地,起始图节点的邻居信息还
可以包括终止图节点的终点类型和出边类型。
边索引特征信息中的存储顺序相同。在一个示例中,用于存储出边索引特征信息的存储位
置(例如,字段)可以包括多个出边索引特征存储位置,每个出边索引特征存储位置用于存
储一个出边索引特征,并且每个出边索引特征的存储位置可以索引后续的一个对应出边数
据,即,该存储位置充当出边数据的数据索引。如图5所示,出边索引特征信息包括n个用于
存储出边索引特征的存储位置,其中,第k个存储位置对应后续第k个出边数据, ,
并且k为正整数。例如,在数据索引特征是时间戳的情况下,可以将所有出边的出边时间戳
按照降序排序保存在出边时间戳信息中。然后,在存储出边数据时,可以将各个出边数据按
照其时间戳在出边时间戳信息中的保存顺序依序存储。
例如可以是实现边分类的特征信息。例如,在该出边指示账户转账时,出边类型可以为“转
账”。在该出边指示支付时,出边类型可以为“支付”。出边属性可以包括一个或多个出边属
性。每个出边属性可以包括属性名和属性值。出边属性的属性名例如可以包括“金额”、“货
币”、“操作设备”等。属性值是指属性名的对应取值。
引存储到第二数据存储介质的第二起始图节点数据分块中。例如,第二起始图节点数据分
块可以形成为具有多个字段的第二数据结构,该第二数据结构中的各个字段分别用于存储
起始图节点的节点数据、邻居信息、出边索引特征范围信息以及出边数据分块索引。出边索
引特征范围可以包括与出边数据分块索引之间形成映射关系的多个出边索引特征范围,从
而使得每个出边索引特征范围信息可以用于索引一个出边数据分块索引。例如,每个出边
索引特征范围信息的存储顺序可以对应一个出边数据分块索引。可选地,每个出边索引特
征范围中可以存储对应出边数据分块中的最大出边索引特征值和最小出边索引特征值。此
外,将该起始图节点的出边数据以及出边数据存储地址信息存储在第三数据存储介质的至
少两个出边数据分块中,所述出边数据存储地址信息包括二元数组<出边数据的出边索引
特征,出边数据在出边数据分块中的相对存储地址>。换言之,每个出边数据分块可以形成
为具有多个字段的第三数据结构,该第三数据结构中的各个字段分别用于存储至少两个出
边数据以及对应的出边数据存储地址信息,如图6所示。这里,出边数据在出边数据分块中
的相对存储地址可以是相对于该出边数据分块的首地址的偏移量。要说明的是,在出边数
据分块中,出边数据存储在出边数据存储地址信息之前。此外,可选地,出边数据分块还可
以存储出边数量。在这种情况下,出边数量存储在出边数据分块的头部,即,存储在所有出
边数据之前。
邻居信息以及出边数据完全相同,在此不再描述。
出边时间戳。出边数据分块索引用于保存出边数据分块的索引信息。例如,出边数据分块索
引可以用于保存出边数据分块在第三数据存储介质中的起始存储地址(即,存储首地址)。
节点数据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分
块索引存储到第二数据存储介质的第二起始图节点数据分块中,将邻居信息分别存储到第
四数据存储介质的至少两个邻居数据分块中,以及将该起始图节点的出边数据以及出边数
据存储地址信息存储到第三数据存储介质的至少两个出边数据分块中。同样,邻居索引特
征范围包括与邻居数据分块索引形成映射关系的多个邻居索引特征范围,从而使得每个邻
居索引特征范围可以索引一个邻居数据分块索引。例如,可以使得每个邻居索引特征范围
信息的存储顺序对应一个邻居数据分块索引,由此使得存储在该存储顺序上的邻居索引特
征范围可以映射到该存储顺序所对应的邻居数据分块索引。在一个示例中,每个邻居索引
特征范围用于存储对应邻居数据分块的最大索引特征值和最小索引特征值。邻居数据分块
索引用于保存邻居数据分块的索引信息。例如,邻居数据分块索引可以用于保存邻居数据
分块在第四数据存储介质中的起始存储地址(即,存储首地址)。图7示出了根据本说明书的
实施例的超大点数据存储过程的另一示例流程图。
节点数据分块或第二起始图节点数据分块的数据分块索引。例如,通过计算该起始图节点
的节点标识的完美哈希值,对该完美哈希值按照起始图节点的节点数量取模,并将经过取
模处理后得到的数值作为第一起始图节点数据分块或第二起始图节点数据分块的数据分
块索引。
现。此外,在一些实施例中,非超大点数据存储和超大点数据存储可以采用键值对存储方式
实现。键值对存储的示例例如可以包括但不限于:基于完美哈希技术实现的键值对存储、基
于LevelDB的键值对存储、基于RocksDB的键值对存储以及基于Redis的键值对存储。
询。
存储的对应起始图节点数据分块。例如,可以通过计算待查询图节点的节点标识的完美哈
希值并对该完美哈希值按照起始图节点的节点数量取模,确定待查询图节点的数据分块索
引。
将在下面参照附图详细描述。
括该起始图节点的节点索引特征。邻居信息包括起始图节点的节点标识以及邻居属性。邻
居属性包括所有出边的基本信息,每个出边的基本信息包括该出边的结束图节点的节点标
识以及该出边的出边索引特征。出边数据包括出边标识以及出边属性。所述出边标识包括
结束图节点的节点标识以及出边索引特征。此外,可选地,节点元数据还可以包括节点类
型。
假设数据查询请求中的过滤条件为索引特征(例如,时间戳),则可以基于解析出的节点数
据的节点元数据中的节点索引特征进行查询过滤。此外,可选地,在数据查询请求中还包括
节点类型的情况下,则可以基于解析出的节点数据的节点元数据中的索引特征和节点类型
来进行查询过滤。在其它示例中,数据查询请求也可以包括其它过滤条件。在930,获取经过
查询过滤后的节点数据的节点属性作为查询数据。可选地,在另一示例中,数据查询请求也
可以不包括过滤条件,由此在获取节点属性时可以不进行查询过滤,从而获取解析出的节
点数据中的所有节点属性作为查询数据。
滤类似的查询过滤方式。在邻居属性包括终点标识、终点类型、出边类型和出边索引特征的
情况下,可以利用终点标识、终点类型、出边类型和出边索引特征进行查询过滤。在其它示
例中,数据查询请求也可以包括其它过滤条件。在950,获取经过查询过滤后的邻居属性作
为查询数据。可选地,在另一示例中,数据查询请求也可以不包括过滤条件,由此在获取邻
居属性时可以不进行查询过滤,从而获取解析出的邻居信息中的所有邻居属性作为查询数
据。
居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引,以及
起始图节点的邻居信息分别存储在第四数据存储介质的至少两个邻居数据分块中。
如,在可以基于解析后的起始图节点数据分块中的邻居信息进行查询过滤,找到符合过滤
条件的终点标识(ID)。上述查询过滤过程可以采用与上面参照邻居属性查询相同的查询过
滤过程。然后,提取出所找出的终点ID所对应的出边索引特征。可选地,在另一示例中,在数
据查询请求不包括过滤条件的情况下,也可以不执行查询过滤。
引特征为时间戳的情况下,可以基于出边时间戳,使用二分查找法来在出边时间戳信息中
确定目标出边的出边数据索引,或者在出边时间戳范围信息中确定目标出边的出边数据分
块索引。
数据分块之后。在进行出边数据分块解析时,可以自结束位置处向开始位置进行数据解析,
从而可以首先解析得到出边数据分块中的出边存储地址信息。此外,出边数据分块还可以
存储出边数量。基于出边数量,可以很容易地从出边数据分块中提取出出边数据存储地址
信息。
块中的相对存储地址,从而可以从出边数据分块中仅仅获取目标出边的出边数据来进一步
解析,而无需获取并解析其余出边数据,由此大大降低数据查询过程的数据处理量,进而提
升数据查询效率。
提取出对应的出边索引特征后,基于出边索引特征确定出边数据索引或者出边数据分块索
引。在查询到出边数据索引或者出边数据分块索引所索引的目标出边的出边数据后,需要
基于上述邻居属性处理(即,终点ID查找处理)中得到的边索引特征、终点标识和出边类型,
对该目标出边的各条数据进行匹配。如果存在匹配的出边数据,则获取该匹配的出边数据
的出边属性作为查询数据。在非超大点数据存储的情况下,由于起始图节点数据分块被一
次性解析出,从而可以直接获取本地解析出的匹配出边数据的出边属性作为查询数据。在
超大点数据存储的情况下,如果存在匹配的出边数据,则从出边数据分块中读取该匹配的
出边数据并进行解析,然后,获取解析后的出边数据的出边属性作为查询数据。对于不匹配
的出边数据,则不进行出边属性获取。按照上述处理方式,在获取到目标出边的出边数据
后,通过利用边索引特征、终点标识和出边类型对需要获取的出边数据再次进行匹配处理,
并且对匹配数据进行解析得到查询数据,可以使得所获取的出边数据更加准确,并且进一
步降低解析处理的数据量,从而进一步提升图数据查询效率。
通过针对数据存储介质的一次IO读取操作实现数据查询。此外,在图节点的邻居节点规模
较大时,通过将该起始图节点的节点数据、邻居信息、出边索引特征范围信息以及出边数据
分块索引存储到第二数据存储介质的第二起始图节点数据分块,以及将该起始图节点的出
边数据以及出边数据存储地址信息分别存储到第三数据存储介质的至少两个出边数据分
块,可以通过针对数据存储介质的两次IO读取操作实现数据查询。按照上述处理方案,可以
大大降低图数据查询时的IO读取操作次数,由此降低图数据查询时间,进而提升图数据查
询效率。
同,由此使得各个存储服务端的数据更新压力均衡。
析处理,从而可以降低数据查询过程的数据处理量,由此提升数据查询效率。
据存储单元1230。
有起始图节点确定数据存储方式。在另一示例中,数据存储方式确定单元1220相对于有向
图图数据中的各个起始图节点分别确定数据存储方式。
数据存储到第一数据存储介质的第一起始图节点数据分块,所述出边索引特征信息包括所
有出边的出边索引特征,每个出边索引特征与用于索引所述第一起始图节点数据分块中存
储的出边数据的出边数据索引之间形成映射关系。
边数据分块索引存储到第二数据存储介质的第二起始图节点数据分块,所述出边索引特征
范围信息包括与出边数据分块索引之间形成映射关系的多个出边索引特征范围,每个出边
索引特征范围信息用于索引一个出边数据分块索引,以及将该起始图节点的出边数据以及
出边数据存储地址信息存储到第三数据存储介质的至少两个出边数据分块,所述出边数据
存储地址信息包括二元数组<出边数据的出边索引特征,出边数据在出边数据分块中的相
对存储地址>。
据、邻居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引
存储到第二数据存储介质的第二起始图节点数据分块中,将邻居信息分别存储到第四数据
存储介质的至少两个邻居数据分块中,以及将该起始图节点的出边数据以及出边数据存储
地址信息存储到第三数据存储介质的至少两个出边数据分块中。
1330、查询数据获取单元1340和查询数据提供单元1350。
数据。
引特征信息确定目标出边的出边数据索引或者基于出边索引特征和出边索引特征范围信
息确定目标出边的出边数据分块索引。响应于确定出目标出边的出边数据索引,查询数据
获取单元1340从出边数据索引所索引的解析后的起始图节点数据分块的出边数据中获取
目标出边的出边属性作为查询数据。响应于确定出目标出边的出边数据分块索引,查询数
据获取单元1340从出边数据分块索引所索引的第三数据存储介质的出边数据分块中获取
目标出边的出边属性作为查询数据。
始图节点数据分块的节点数据进行查询过滤,并且获取经过查询过滤后的节点数据中的节
点属性作为查询数据。响应于数据查询请求指示查询图节点的节点属性,查询数据获取单
元1340基于数据查询请求中的过滤条件对解析出的邻居信息进行查询过滤,并且获取经过
查询过滤后的邻居信息中的邻居属性作为查询数据。响应于数据查询请求指示查询图节点
的出边属性,查询数据获取单元1340从解析后的起始图节点数据分块的邻居信息中确定出
符合过滤条件的目标出边的出边索引特征。然后,查询数据获取单元1340基于出边索引特
征和出边索引特征信息确定目标出边的出边数据索引,或者基于出边索引特征和出边索引
特征范围信息确定目标出边的出边数据分块索引。响应于确定出目标出边的出边数据索
引,查询数据获取单元1340从出边数据索引所索引的解析后的起始图节点数据分块的出边
数据中获取目标出边的出边属性作为查询数据。响应于确定出目标出边的出边数据分块索
引,查询数据获取单元1340从出边数据分块索引所索引的第三数据存储介质的出边数据分
块中获取目标出边的出边属性作为查询数据。
存中。在将出边数据分块读取到数据查询装置的内存后,数据解析单元1330解析出边数据
分块中的出边数据存储地址信息。查询数据获取单元1340基于目标出边的出边索引特征,
从解析后的出边数据存储地址信息中确定目标出边在出边数据分块中的相对存储地址。然
后,查询数据获取单元1340根据相对存储地址从所读取的出边数据分块中获取目标出边的
出边数据并进行解析,并且获取解析后的目标出边的出边数据中的出边属性,作为查询数
据。
戳范围信息中确定目标出边的出边数据分块索引。
居索引特征范围、邻居数据分块索引、出边索引特征范围信息以及出边数据分块索引,以及
邻居信息分别存储在第四数据存储介质的至少两个邻居数据分块中。
居数据分块索引后,数据读取单元1320将邻居数据分块索引所指示的邻居数据分块从第四
数据存储介质读取到数据查询装置的内存。随后,数据解析单元1330解析所读取的邻居数
据分块。查询数据获取单元1340基于数据查询请求中的过滤条件对解析出的邻居数据分块
中的邻居信息进行查询过滤,并且获取经过查询过滤后的邻居信息中的邻居属性,作为查
询数据。
硬件实现,也可以采用软件或者硬件和软件的组合来实现。
易失性存储器)1420、内存1430和通信接口1440,并且至少一个处理器1410、存储器1420、内
存1430和通信接口1440经由总线1460连接在一起。至少一个处理器1410执行在存储器中存
储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
个起始图节点的邻居图节点数量确定数据存储方式;针对各个起始图节点,在所述数据存
储方式为非超大点数据存储时,将该起始图节点的节点数据、邻居信息、出边索引特征信息
以及出边数据存储到第一数据存储介质的第一起始图节点数据分块,所述出边索引特征信
息包括该起始图节点的所有出边的出边索引特征,每个出边索引特征与用于索引所述第一
起始图节点数据分块中存储的对应出边数据的出边数据索引之间形成映射关系;以及针对
各个起始图节点,在所述数据存储方式为超大点数据存储时,将该起始图节点的节点数据、
邻居信息、出边索引特征范围信息以及出边数据分块索引存储到第二数据存储介质的第二
起始图节点数据分块,所述出边索引特征范围信息包括与出边数据分块索引之间形成映射
关系的多个出边索引特征范围,以及将该起始图节点的出边数据以及出边数据存储地址信
息存储到第三数据存储介质的至少两个出边数据分块,所述出边数据存储地址信息包括二
元数组<出边数据的出边索引特征,出边数据在出边数据分块中的相对存储地址>。
易失性存储器)1520、内存1530和通信接口1540,并且至少一个处理器1510、存储器1520、内
存1530和通信接口1540经由总线1560连接在一起。至少一个处理器1510执行在存储器中存
储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
该待查询图节点的数据分块索引,有向图图数据按照如上所述的方法存储在数据存储介质
中;将数据分块索引所索引的起始图节点数据分块从第一数据存储介质或第二数据存储介
质读取到数据查询装置的内存中并进行解析;根据解析后的起始图节点数据分块,在数据
查询装置的本地解析数据中或者从第三数据存储介质的出边数据分块获取数据查询请求
的查询数据;以及将所获取的查询数据提供给用户。
器执行时,使得机器执行本说明书的各个实施例中以上结合图1‑图13描述的各种操作和功
能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现
上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器
读出并执行存储在该可读存储介质中的指令。
分。
络从服务器计算机上或云上下载程序代码。
图13描述的各种操作和功能。
要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有
些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以
由多个独立设备中的某些部件共同实现。
ASIC)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或
其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械
方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对
所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的
情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公
知的结构和装置以框图形式示出。
的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应
用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开
的原理和新颖性特征的最广范围相一致。