一种数据存储、数据计算方法和设备
技术领域
本申请涉及互联网信息处理技术领域,尤其涉及一种数据存储、数据计算方法和设备。
背景技术
随着计算机技术的不断发展,互联网中产生的数据量越来越多。而随着大数据时代的到来,以图的方式存储数据成为互联网中大数据存储的一种方式。这种以图的方式存储的数据又被称为图数据。一般图数据以分布式方式存储。
假设一个图数据中包含5个图节点。其中,5个图节点分别为:图节点1、图节点2、图节点3、图节点4和图节点5。再假设,图节点1存储在存储服务器5中,图节点2存储在存储服务器1中,图节点3存储在存储服务器4中,图节点4存储在存储服务器3中,图节点5存储在存储服务器2中。这样,当需要确定图节点1关联哪些图节点时,按照广度优先搜索算法,将先后访问存储服务器5、存储服务器1、存储服务器4、存储服务器3以及存储服务器2。由此可见,在对一个图节点进行图计算时,需要访问存储服务器的次数比较多。
然而,随着图计算请求量的增加,访问存储服务器的次数也相应增加,这样导致存储服务器集群中的网络负载也随之增加,使得系统的数据处理能力急剧下降。
发明内容
有鉴于此,本申请实施例提供了一种数据存储、数据计算方法和设备,用于解决在执行图计算时如何减少访问存储服务器次数的问题,以提升系统的工作效率。
一种数据存储方法,包括:
根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图,其中,不同的所述连通子图中包含的所述图节点数据不重叠;
以连通子图为存储单元,将所述待存储图数据中包含的所述连通子图存储在服务器中。
一种数据计算方法,包括:
接收数据计算请求,其中,所述数据计算请求中包含用于数据计算的图节点数据;
根据所述数据计算请求中包含的图节点数据,确定包含所述图节点数据的连通子图;
根据确定的所述连通子图的标识,确定所述连通子图存储的服务器;
从确定的所述服务器中获取所述连通子图中包含的图节点数据;
根据获取的所述图节点数据,执行图数据计算操作。
一种数据存储设备,包括:
确定单元,用于根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图,其中,不同的所述连通子图中包含的所述图节点数据不重叠;
存储单元,用于以连通子图为存储单元,将所述待存储图数据中包含的所述连通子图存储在服务器中。
一种数据计算设备,包括:
接收单元,用于接收数据计算请求,其中,所述数据计算请求中包含用于数据计算的图节点数据;
确定单元,用于根据所述数据计算请求中包含的图节点数据,确定包含所述图节点数据的连通子图;根据确定的所述连通子图的标识,确定所述连通子图存储的服务器;
获取单元,用于从确定的所述服务器中获取所述连通子图中包含的图节点数据;
计算单元,用于根据获取的所述图节点数据,执行图数据计算操作。
本申请有益效果如下:
本申请实施例根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图,不同的所述连通子图中包含的所述图节点数据不重叠;以连通子图为存储单位,将所述待存储图数据中包含的所述连通子图存储在服务器中。对于待存储的图数据,以连通子图为切分单元,将待存储的图数据切分成几个连通子图,并以连通子图为存储单元,将切分后得到的不同的连通子图存储在服务器中,这样,在进行图计算的时候,对于一个连通子图中包含的图节点只需要访问一次该连通子图所存储的服务器,大大减少了访问服务器的次数,有效地提升系统的工作效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一个图的结构示意图。
图2为本申请实施例提供的一种数据存储方法的流程示意图;
图3为待存储图数据的结构示意图;
图4为计算得到的三个连通子图的结构示意图;
图5为一种图结构数据的存储结构示意图;
图6为一种图节点属性集合数据的存储结构示意图;
图7为本申请实施例中提供的一种数据计算方法的流程示意图;
图8为本申请实施例提供的一种数据存储设备的结构示意图;
图9为本申请实施例提供的一种数据计算设备的结构示意图。
具体实施方式
在现有技术中一个图数据以分布式存储方式存储,例如:如图1所示,为现有技术中一个图的结构示意图。从图1中可以看出,该图中包含5个图节点,4条图边。5个图节点为:图节点1、图节点2、图节点3、图节点4和图节点5。按照现有技术的存储方式存储该图具体为:图节点1存储在存储服务器5中,图节点2存储在存储服务器1中,图节点3存储在存储服务器4中,图节点4存储在存储服务器3中,图节点5存储在存储服务器2中。这样,在对一个图节点进行图计算时,需要访问存储服务器的次数比较多,使得系统的数据处理能力急剧下降。
为了提升系统的数据处理效率,本申请实施例提供了一种数据存储、数据计算方法和设备,根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图,不同的所述连通子图中包含的所述图节点数据不重叠;以连通子图为存储单位,将所述待存储图数据中包含的所述连通子图存储在服务器中。对于待存储的图数据,以连通子图为切分单元,将待存储的图数据切分成几个连通子图,并以连通子图为存储单元,将切分后得到的不同的连通子图存储在服务器中,这样,在进行图计算的时候,对于一个连通子图中包含的图节点只需要访问一次该连通子图所存储的服务器,大大减少了访问服务器的次数,有效地提升系统的工作效率。
需要说明的是,在本申请实施例中涉及到的图数据包含图节点数据、图边数据和图节点属性数据。
具体地,图节点数据与图数据中的一个图节点对应。每一个图节点数据包含图节点和图节点属性数据。
其中,图节点包含图节点类型和图节点值,例如:图节点1表示一张银行卡,那么与该图节点1对应的图节点中包含的图节点类型为“银行卡”,图节点值为“622654232XXXXXXX09”。
其中,图节点属性数据包含图节点属性名称和图节点属性值。例如:图节点1表示一张银行卡,那么与该图节点1对应的图节点数据中包含的图节点属性数据中图节点属性名称为“银行卡有效期”、属性值为“2020年”,即可以确定该银行卡的有效期到2020年12月31日;图节点2表示一张身份证,那么与该图节点2对应的图节点数据中包含的图节点属性数据为中属性名称为“身份证”、属性值为身份证号,例如:“AAAAAABBBBCCCCDDDD”。
具体地,图边数据,用于描述图数据中两个图节点之间的关联关系。一个图边数据包含图节点和图边属性,图边属性用于表征该图边数据中包含的两个图节点数据之间产生的关联事件。
仍以上述实例为例,图节点1与图节点2之间存在绑定关系,且图节点2使用图节点1完成交易,那么包含图节点1和图节点2的图边数据中包含的图节点为图节点1和图节点2;包含的图边属性为交易。
此外,图边属性包含图边属性名称和图边属性值。例如:图边属性名称为交易次数,图边属性值为3次;图边属性名称为历史交易总金额,图边属性值为1000。
下面结合说明书附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
图2为本申请实施例提供的一种数据存储方法的流程示意图。所述方法可以如下所述。
步骤201:根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图。
其中,不同的所述连通子图中包含的所述图节点数据不重叠。
在步骤201中,对于待存储图数据,可以确定该图数据中包含的图边数据,通过图边数据中包含的图节点之间的关联关系,确定该图数据中包含的连通子图。
其中,不同的连通子图中包含的图节点不重叠。即不同连通子图中包含的图节点不交叉。
例如:如图3所示,为待存储图数据的结构示意图。从图3中可以看出,该待存储图数据中包含14个图节点和12个图边数据。
这14个图节点为:图节点1、图节点2、图节点3、图节点4、图节点5、图节点6、图节点7、图节点8、图节点9、图节点10、图节点11、图节点12、图节点13和图节点14;
这12个图边数据为:包含图节点1和图节点2的图边数据;包含图节点1和图节点3的图边数据;包含图节点5和图节点4的图边数据;包含图节点4和图节点3的图边数据;包含图节点6和图节点7的图边数据;包含图节点7和图节点9的图边数据;包含图节点6和图节点8的图边数据;包含图节点8和图节点9的图边数据;包含图节点11和图节点12的图边数据;包含图节点10和图节点12的图边数据;包含图节点12和图节点13的图边数据;包含图节点12和图节点14的图边数据。
那么通过各个图边数据中包含的图节点之间的关联关系,计算得到三个连通子图:连通子图1、连通子图2和连通子图3。
如图4所示,为计算得到的三个连通子图的结构示意图。
从图4中可以看出,连通子图1中包含图节点1、图节点2、图节点3、图节点4和图节点5;
连通子图2中包含图节点6、图节点7、图节点8和图节点9;
连通子图3中包含图节点10、图节点11、图节点12、图节点13和图节点14。
从图4中可以看出,一个图节点只属于一个连通子图,即不同连通子图中包含的图节点不交叉,即不同连通子图中包含的图节点不重叠。
步骤202:以连通子图为存储单元,将所述待存储图数据中包含的所述连通子图存储在服务器中。
在步骤202中,在计算得到待存储图数据中包含的连通子图时,以连通子图为存储单元,分别将得到的连通子图存储在服务器中。
在将连通子图存储在服务器中时,可以将不同的连通子图分别存储在不同的服务器中;还可以将多个连通子图存储在一个服务器中。
在将多个连通子图存储在一个服务器中时,仍以连通子图为存储单元进行存储。
例如:仍以步骤202中所记载的事实为例,将连通子图1和连通子图3存储在服务器1中;将连通子图2存储在服务器2中。
下面详细说明如何将一个连通子图存储在一个服务器中。
由于图数据存储可以按照连通子图进行聚合存储,那么包含连通子图的图数据构成整个关系网络图数据。其中,每一个连通子图构成一个小关系网络图数据。
每一个连通子图中包含多个图节点数据和图边数据,每一个图节点数据包含图节点和图节点属性数据,每一个图边数据包含图节点和图边属性数据。
那么,在将连通子图存储在一个服务器中的方式可以将连通子图中包含图节点数据和图边数据整合为一个图结构数据进行存储;还可以将连通子图中包含的图节点数据的图节点属性数据整合为一个图节点属性集合数据进行存储。
可选地,将连通子图中包含的图节点数据和图边数据整合为一个图结构数据进行存储,具体包括:
第一步:针对所述待存储图数据中包含的一个连通子图,确定该连通子图中包含的图节点数据和图边数据。
例如:待存储图数据中包含的连通子图1,该连通子图1中包含的图节点有:图节点1、图节点2、图节点3、图节点4和图节点5;该连通子图1中包含的图边数据有:包含图节点1和图节点2的图边数据1;包含图节点1和图节点3的图边数据2;包含图节点5和图节点4的图边数据3;包含图节点4和图节点3的图边数据4。
第二步:将确定的所述图节点数据和所述图边数据聚合为图结构数据,并将所述图结构数据存储在服务器中。
其中,所述图结构数据中包含所述图节点数据与所述图边数据之间的第一对应关系。
具体地,首先,根据所述连通子图中包含的图节点数据,为每一个所述图节点数据中包含的图节点分配图节点索引。
优选地,所述图节点索引的形式可以为一个图节点数组,即将连通子图中包含的图节点以数组的方式存储,那么图节点在数组中的标识可以作为该图节点的图节点索引。
例如:该连通子图1中包含的图节点有:图节点1、图节点2、图节点3、图节点4和图节点5,其中,图节点1为银行卡66873*******213;图节点2为手机号码130********;图节点3为用户ID111122223333;图节点4为用户ID222233334567;图节点5为手机号码131********。
那么,构建一个长度为5的图节点数组(英文:Nodes),数组中第0个元素为图节点1;数组中第1个元素为图节点2;数组中第2个元素为图节点3;数组中第3个元素为图节点4;数组中第4个元素为图节点5。即:
Nodes【0】=银行卡66873*******213;
Nodes【1】=手机号码130********;
Nodes【2】=用户ID111122223333;
Nodes【3】=用户ID222233334567;
Nodes【4】=手机号码131********。
由此可以得到,图节点1对应的图节点索引为N0;图节点2对应的图节点索引为N1;图节点3对应的图节点索引为N2;图节点4对应的图节点索引为N3;图节点5对应的图节点索引为N4。
其次,根据所述连通子图中包含的图边数据,确定每一个所述图边数据中包含的图节点以及图边属性数据,并分别为每一个所述图边数据建立所述图边数据中包含的所述图节点对应的图节点索引与所述图边数据中包含的所述图边属性数据之间的第一对应关系。
具体地,由于连通子图中每一个图边数据包含图节点以及图边属性数据,为了节省存储空间,可以利用图节点对应的图节点索引来存储连通子图中包含的图节点数据以及图边数据。
即分别为每一个所述图边数据建立所述图边数据中包含的所述图节点对应的图节点索引与所述图边数据中包含的所述图边属性数据之间的第一对应关系。
仍以上述事实为例,包含图节点1和图节点3的图边数据2,图边数据2中包含的图边属性数据为图节点1与图节点3之间发生交易事件。
如表1所示,为图边数据2建立的对应关系的示意列表。
表1
图节点1的图节点索引 |
图节点3的图节点索引 |
图边属性数据 |
优选地,为每一个所述图边数据建立所述图边数据中包含的所述图节点对应的图节点索引与所述图边数据中包含的所述图边属性之间的第一对应关系,包括:
根据所述连通子图中包含的图边数据,确定每一个所述图边数据中包含的图边属性数据,并提取每一个所述图边属性数据中包含的图边属性名称和所述图边属性名称对应的图边属性值,为提取到的每一个不同的所述图边属性名称分配图边属性名称索引。
仍以上述事实为例,图边数据2中包含的图边属性数据为图节点1与图节点3之间发生交易事件。例如:“用户ID111122223333”使用“银行卡66873*******213”发生交易事件,其中,交易10次,成功交易9次。
那么,“交易次数”、“成功交易次数”属于图边属性名称,“10次”、“9次”分别属于图边属性名称对应的图边属性值。
优选地,使用一个长度为n的数组存储图边属性名称,得到每一个图边属性名称的图边属性名称索引。
例如:数组【0】=交易次数;
数组【1】=成功交易次数。
那么,图边属性名称“交易次数”的图边属性名称索引为S0;图边属性名称“成功交易次数”的图边属性名称索引为S1。
需要说明的是,一个图边数据中包含的图边属性数据不限于一个,即两个图边节点之间发生关联事件的个数不限于一个。
针对所述连通子图中包含的每一个图边数据,执行以下操作:
选择其中一个图边数据,确定选择的所述图边数据中包含的图边属性名称对应的图边属性名称索引与选择的所述图边数据中包含的所述图边属性名称对应的图边属性值之间的第三对应关系;
确定选择的所述图边数据中包含的图节点,并建立选择的所述图边数据中包含的图节点对应的图节点索引与所述第三对应关系之间的第一对应关系。
仍以上述事实为例,包含图节点1和图节点3的图边数据2,图边数据2中包含的图边属性数据为图节点1与图节点3之间发生交易事件。
如表2所示,为图边数据2建立的对应关系的示意列表。
表2
若一个图边数据中包含的图边属性数据个数为多个时,可以为该图边数据中包含的图边属性数据确定一个图边属性列表。那么建立选择的所述图边数据中包含的图节点对应的图节点索引与多组所述第三对应关系之间的第一对应关系。
仍以上述事实为例,包含图节点1和图节点3的图边数据2,图边数据2中包含的图边属性数据为图节点1与图节点3之间发生交易事件。
如表3所示,为图边数据2建立的对应关系的示意列表。
表3
最后,在得到为每一个所述图边数据建立的所述第一对应关系时,将所述连通子图中包含的每一个所述图节点数据、所述图节点数据中包含的图节点对应的图节点索引以及所述第一对应关系聚合为图结构数据。
需要说明的是,对于聚合得到的图结构数据,可以采用以下格式进行存储:
图5为一种图结构数据的存储结构示意图。
从图5中可以看出,图结构数据中包含格式头、元素信息、图节点索引、图边属性名称索引和图边数据集。
其中,图边数据集中包含如表3所示的列表信息。
例如:格式头,用于存储数据的格式号和版本号。例如,存储待存储图数据的格式号和版本号。
元素信息,用于存储图数据中的统计信息。包括:图节点个数、图边数据个数以及图边属性名称个数。
可选地,将连通子图中包含的图节点数据的图节点属性数据整合为一个图节点属性集合数据进行存储,具体包括:
首先,确定所述连通子图中每一个图节点数据中包含的图节点以及所述图节点对应的图节点属性数据。
其中,所述图节点属性数据中包含图节点属性名称和所述图节点属性名称对应的属性值。
例如:图节点数据1中包含图节点1(银行卡66873*******213)以及图节点属性数据(历史交易总金额和快捷支付次数),那么图节点1为银行卡66873*******213,该图节点1的图节点属性数据中包含的图节点属性名称为历史交易总金额和快捷支付次数,“历史交易总金额”对应的属性值为1000,“快捷支付次数”对应的属性值为3。
需要说明的是,所述连通子图中每一个图节点数据中包含的图节点以及所述图节点对应的图节点属性数据的确定方式可以根据图结构数据中包含的图节点数据进行确定。
其次,根据所述连通子图中每一个图节点数据中包含的图节点以及图节点属性数据,为所述连通子图中包含的图节点属性名称分配图节点属性名称索引。
具体地,在得到连通子图中每一个图节点数据包含的图节点以及图节点属性数据时,可以为图节点属性数据中包含的不同的图节点属性名称分配图节点属性名称索引。
例如:图节点属性数据中包含的不同的图节点属性名称为:历史交易总金额、快捷支付次数以及交易次数,依然可以采用数组的方式为每一个图节点属性名称确定一个图节点属性名称索引。
即数组【0】=历史交易总金额;数组【1】=快捷支付次数;数组【2】=交易次数。
那么,得到“历史交易总金额”的图节点属性名称索引为T0;得到“快捷支付次数”的图节点属性名称索引为T1;得到“交易次数”的图节点属性名称索引为T2。
最后,建立所述连通子图中包含的图节点、所述图节点对应的图节点属性数据中包含的图节点属性名称对应的图节点属性名称索引与所述图节点对应的图节点属性数据中包含的所述图节点属性名称对应的属性值之间的第二对应关系。
如表4所示,为建立的所述第二对应关系的示意表:
表4
当一个图节点数据中包含的图节点属性数据不止一个,那么对于该图节点数据中包含的图节点属性数据可以建立一个图节点属性列表,建立图节点与图节点属性列表之间的对应关系。
仍以图节点数据1中包含图节点1(银行卡66873*******213)以及图节点属性数据(历史交易总金额和快捷支付次数)为例,那么图节点1为银行卡66873*******213,该图节点1的图节点属性数据中包含的图节点属性名称为历史交易总金额和快捷支付次数,“历史交易总金额”对应的属性值为1000,“快捷支付次数”对应的属性值为3,得到表5中所示的示意表:
表5
将得到多组第二对应关系整合为一个图节点属性集合数据进行存储。
优选地,建立所述连通子图中包含的图节点对应的图节点索引、所述图节点对应的图节点属性数据中包含的图节点属性名称对应的图节点属性名称索引与所述图节点对应的图节点属性数据中包含的所述图节点属性名称对应的属性值之间的第二对应关系。
那么表5可以转换为表6:
表6
需要说明的是,对于得到的图节点属性集合数据,可以采用以下格式进行存储:
图6为一种图节点属性集合数据的存储结构示意图。
从图6中可以看出,图节点属性集合数据中包含格式头、元素信息、图节点索引、图节点属性名称索引和图节点属性数据。
例如:格式头,用于存储数据的格式号和版本号。例如,存储待存储图数据的格式号和版本号。
元素信息,用于存储图数据中的统计信息。包括:图节点个数、图边数据个数以及图边属性名称个数。
可选地,将所述待存储图数据中包含的所述连通子图存储在服务器中,包括:
所述待存储图数据存储在一个服务器上时,分别建立每一个连通子图的标识与所述连通子图中包含的图节点之间的映射关系;并将所述映射关系存储在服务器中。
例如:连通子图1中包含图节点1、图节点2、图节点3、图节点4和图节点5;连通子图2中包含图节点6、图节点7、图节点8和图节点9;连通子图3中包含图节点10、图节点11、图节点12、图节点13和图节点14,建立的映射关系如表7所示:
表7
图节点 |
连通子图标识 |
图节点 |
连通子图标识 |
图节点1 |
1 |
图节点8 |
2 |
图节点2 |
1 |
图节点9 |
2 |
图节点3 |
1 |
图节点10 |
3 |
图节点4 |
1 |
图节点11 |
3 |
图节点5 |
1 |
图节点12 |
3 |
图节点6 |
2 |
图节点13 |
3 |
图节点7 |
2 |
图节点14 |
3 |
从表7中可以看出,三个连通子图中存储的图节点个数。
可选地,除了可以建立表7这种映射关系之外,还可以根据每一个图节点对应的具体信息,建立图节点对应的具体信息与连通子图标识之间的映射关系。例如:图节点1对应的具体信息为“银行卡66873*******213”,那么还可以建立“银行卡66873*******213”与连通子图标识“1”之间的映射关系。
可选地,在确定所述待存储图数据中包含的连通子图的个数大于两个时,确定每一个连通子图存储的服务器标识,在将连通子图存储至所述服务器标识对应的服务器时,建立所述连通子图的标识与所述服务器标识之间的映射关系。
例如:建立所述连通子图的标识与所述服务器标识之间的映射关系可以称之为连通子图信息表,该连通子图信息表中包含连通子图的标识、存储服务器的标识、存储在该服务器中的连通子图中包含的图节点的个数等。
这样,在进行图数据计算时,可以根据连通子图的标识与服务器标识之间的映射关系,确定连通子图的标识对应的连通子图存储的服务器。
通过本申请实施例的技术方案,根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图,不同的所述连通子图中包含的所述图节点数据不重叠;以连通子图为存储单位,将所述待存储图数据中包含的所述连通子图存储在服务器中。对于待存储的图数据,以连通子图为切分单元,将待存储的图数据切分成几个连通子图,并以连通子图为存储单元,将切分后得到的不同的连通子图存储在服务器中,这样,在进行图计算的时候,对于一个连通子图中包含的图节点只需要访问一次该连通子图所存储的服务器,大大减少了访问服务器的次数,有效地提升系统的工作效率。
图7为本申请实施例中提供的一种数据计算方法的流程示意图。所述数据计算方法可以如下所述。
步骤701:接收数据计算请求。
其中,所述数据计算请求中包含用于数据计算的图节点数据。
步骤702:根据所述数据计算请求中包含的图节点数据,确定包含所述图节点数据的连通子图。
在步骤702中,根据图数据存储时建立的图节点数据中包含图节点对应的图节点索引与连通子图的标识之间的映射关系,确定包含所述图节点数据的连通子图的标识;并根据所述连通子图的标识,确定包含所述图节点数据的连通子图。
此外,根据图数据存储时建立的图节点数据中包含图节点对应的图节点索引与图节点属性数据之间的映射关系,确定图节点数据中包含图节点对应的图节点属性数据。
此外,根据图数据存储时建立的图节点数据中包含图节点对应的图节点索引与图边属性数据之间的映射关系,确定图节点数据中包含图节点对应的图边属性数据。
步骤703:根据确定的所述连通子图的标识,确定所述连通子图存储的服务器。
在步骤703中,根据图数据存储时建立的连通子图的标识与服务器的标识之间的映射关系,确定所述所述连通子图的标识对应的服务器的标识,并根据所述服务器的标识,确定所述连通子图存储的服务器。
步骤704:从确定的所述服务器中获取所述连通子图中包含的图节点数据。
步骤705:根据获取的所述图节点数据,执行图数据计算操作。
图8为本申请实施例提供的一种数据存储设备的结构示意图。所述数据存储设备中包括:确定单元81和存储单元82。
确定单元81,用于根据待存储图数据中包含的各个图节点数据之间的关联关系,确定所述待存储图数据中包含的连通子图,其中,不同的所述连通子图中包含的所述图节点数据不重叠;
存储单元82,用于以连通子图为存储单元,将所述待存储图数据中包含的所述连通子图存储在服务器中。
具体地,所述存储单元82,具体用于针对所述待存储图数据中包含的所述连通子图,确定所述连通子图中包含的图节点数据和图边数据;
将确定的所述图节点数据和所述图边数据聚合为图结构数据,其中,所述图结构数据中包含所述图节点数据与所述图边数据之间的第一对应关系;
将所述图结构数据存储在服务器中。
优选地,所述数据存储设备还包括:建立单元83,其中:
所述建立单元83,用于在将确定的所述图节点数据和所述图边数据聚合为图结构数据时,确定所述连通子图中每一个图节点数据中包含的图节点以及所述图节点对应的图节点属性数据,其中,所述图节点属性数据中包含图节点属性名称和所述图节点属性名称对应的属性值;
根据所述连通子图中每一个图节点数据中包含的图节点以及图节点属性数据,为所述连通子图中包含的图节点属性名称分配图节点属性名称索引;
建立所述连通子图中包含的图节点、所述图节点对应的图节点属性数据中包含的图节点属性名称对应的图节点属性名称索引与所述图节点对应的图节点属性数据中包含的所述图节点属性名称对应的属性值之间的第二对应关系;
所述存储单元82,还用于将所述第二对应关系存储在服务器中。
优选地,所述存储单元82,具体用于根据所述连通子图中包含的图节点数据,为每一个所述图节点数据中包含的图节点分配图节点索引;
根据所述连通子图中包含的图边数据,确定每一个所述图边数据中包含的图节点以及图边属性数据,并分别为每一个所述图边数据建立所述图边数据中包含的所述图节点对应的图节点索引与所述图边数据中包含的所述图边属性数据之间的第一对应关系;
在得到为每一个所述图边数据建立的所述第一对应关系时,将所述连通子图中包含的每一个所述图节点数据、所述图节点数据中包含的图节点对应的图节点索引以及所述第一对应关系聚合为图结构数据。
优选地,所述存储单元82为每一个所述图边数据建立所述图边数据中包含的所述图节点对应的图节点索引与所述图边数据中包含的所述图边属性数据之间的第一对应关系,包括:
根据所述连通子图中包含的图边数据,确定每一个所述图边数据中包含的图边属性数据,并提取每一个所述图边属性数据中包含的图边属性名称和所述图边属性名称对应的图边属性值,为提取到的每一个不同的所述图边属性名称分配图边属性名称索引;
针对所述连通子图中包含的每一个图边数据,执行以下操作:
选择其中一个图边数据,确定选择的所述图边数据中包含的图边属性名称对应的图边属性名称索引与选择的所述图边数据中包含的所述图边属性名称对应的图边属性值之间的第三对应关系;
确定选择的所述图边数据中包含的图节点,并建立选择的所述图边数据中包含的图节点对应的图节点索引与所述第三对应关系之间的第一对应关系。
优选地,所述存储单元82将所述待存储图数据中包含的所述连通子图存储在服务器中,包括:
若将所述待存储图数据中包含的至少两个所述连通子图存储在一个服务器上时,分别建立每一个连通子图的标识与所述连通子图中包含的图节点之间的映射关系;
将所述映射关系存储在服务器中。
需要说明的是,本申请实施例中所述的数据存储设备可以通过硬件方式实现,也可以通过软件方式实现,这里不做限定。
图9为本申请实施例提供的一种数据计算设备的结构示意图。所述数据计算设备包含接收单元91、确定单元92、获取单元93和计算单元94,其中:
接收单元91,用于接收数据计算请求,其中,所述数据计算请求中包含用于数据计算的图节点数据;
确定单元92,用于根据所述数据计算请求中包含的图节点数据,确定包含所述图节点数据的连通子图;根据确定的所述连通子图的标识,确定所述连通子图存储的服务器;
获取单元93,用于从确定的所述服务器中获取所述连通子图中包含的图节点数据;
计算单元94,用于根据获取的所述图节点数据,执行图数据计算操作。
需要说明的是,本申请实施例中所述的数据计算设备可以通过硬件方式实现,也可以通过软件方式实现,这里不做限定。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。