数据结构的处理方法和系统的制作方法

文档序号:8487914阅读:205来源:国知局
数据结构的处理方法和系统的制作方法
【技术领域】
[0001]本公开的实施方式总体上涉及数据处理领域,特别是对以图表征的数据结构的处理。
【背景技术】
[0002]对于企业、组织、机关等机构而言,在日常中会产生大量的数据,而且这些数据随着日子的推移与日俱增,数据量将变得异常庞大。这些大数据为商业发展、统计分析、政策制定等提供了宝贵的原始数据。这些数据的处理和运算是在大数据处理中极其重要的因素。以打车服务为例进行说明。乘客数量上千万甚至过亿,司机数量近百万甚至到千万,每日交易量高达几百万甚至上千万订单,这就意味紧紧一个月的数据就会形成将是由千万个点,十亿级以上边构成的巨大关系网络图。如何对这样的数据进行存储与运算(或分析)是当前迫切解决的技术问题。
[0003]现有技术中通常采用将这些数据存储在单台机器上。现有单机存储具有如下技术缺点。一、数据存储少,单机仅可以存储千万级别数据,对于十亿级以上的数据量的处理非常困难。二、存储扩展困难、存储成本高,对于单机存储而言,当数据量继续增加时,单机存储难以实现横向,数据的存储成本高。三、数据处理慢,对于单机存储而言,所有的数据计算在单机上完成,在处理大数据时,具有速度慢、性能差的问题。

【发明内容】

[0004]本公开的实施例的目的之一在于提供一种数据处理方法和系统,以解决或减轻上述现有技术中的一个或多个问题。
[0005]根据本公开的第一方面,提供了一种数据结构的处理方法,其中,所述数据结构以图表征,所述图包括多个顶点和连接顶点的多条边,其中以所述顶点和所述边的属性来定义数据,所述方法包括:将所述多个顶点分割成多组;将每组顶点存储在对应的存储节点中;以及生成表示每个顶点与对应的存储节点之间关系的存储路由表。在本申请的实施例中,采用多个存储节点来对数据进行分布式存储。在将多个顶点分成多组之后,基于分割的结果,将每组顶点存储在与每组顶点相对应的存储节点中。这里对于顶点分组和存储节点之间的对应关系没有特别要求,例如,在一个实施例中,可以是随机地以一对一的方式进行分别存储,在另一个实施例中,可以按照预定的顺序将多组顶点中的每组顶点顺次地存储到多个存储节点中的一个存储节点。
[0006]根据本公开的一个实施例,将所述多个顶点分割成多组包括:统计所述多个顶点的数目并且将所述多个顶点分成与存储节点数目对应的多组。
[0007]根据本公开的一个实施例,将所述多个顶点分割成多组包括:确定所述多组中的每组中的边;确定与每组中的边相关联的顶点;以及以边不冗余、而与所述边相关联的顶点冗余的方式,将所述多个顶点分割成多组。
[0008]根据本公开的一个实施例,将所述多个顶点分割成多组包括:确定所述多组中的每组中的顶点;确定与每组中的顶点相关联的边;以及以顶点不冗余、而与所述顶点相关联的边冗余的方式,将所述多个顶点分割成多组。
[0009]根据本公开的一个实施例,生成表示每个顶点与对应的存储节点之间关系的存储路由表包括:生成表不每个边与对应的存储节点之间关系的存储路由表。
[0010]根据本公开的一个实施例,所述顶点表示对象数据;所述边表示所述对象之间的关系数据。
[0011]根据本公开的一个实施例,每个存储节点包括能够进行独立运算的计算设备,并且每个存储节点能够响应于客户端的请求对所存储的图执行并行运算。
[0012]根据本公开的第二方面,提供了一种数据结构的处理系统,其中,所述数据结构以图表征,所述图包括多个顶点和连接顶点的多条边,其中以所述顶点和所述边的属性来定义数据,所述系统包括:分割装置,配置成将所述多个顶点分割成多组;存储装置,配置成将每组顶点存储在对应的存储节点中;以及路由表生成装置,配置成生成表示每个顶点与对应的存储节点之间关系的存储路由表。
[0013]根据本公开的一个实施例,所述分割装置配置成统计所述多个顶点的数目并且将所述多个顶点分成与存储节点数目对应的多组。
[0014]根据本公开的一个实施例,所述分割装置还包括:边确定部件,配置成确定所述多组中的每组中的边;顶点确定部件,配置成确定与每组中的边相关联的顶点;以及第一分割部件,配置成以边不冗余、而与所述边相关联的顶点冗余的方式,将所述多个顶点分割成多组。
[0015]根据本公开的一个实施例,所述分割装置还包括:顶点确定部件,配置成确定所述多组中的每组中的顶点;边确定部件,配置成确定与每组中的顶点相关联的边;以及第二分割部件,配置成以顶点不冗余、而与所述顶点相关联的边冗余的方式,将所述多个顶点分割成多组。
[0016]根据本公开的一个实施例,所述路由表生成装置还包括:边路由表生成部件,配置成生成表示每个边与对应的存储节点之间关系的存储路由表。
[0017]根据本公开的一个实施例,所述顶点表示对象数据;所述边表示所述对象之间的关系数据。
[0018]根据本公开的一个实施例,每个存储节点包括能够进行独立运算的计算设备,并且每个存储节点能够响应于客户端的请求对所存储的图执行并行运算。
[0019]根据本公开的实施例的处理方法和处理系统,通过对顶点进行切割,将图进行分布式存储,以成本低的方式实现了图的存储与图的快速计算。
[0020]本公开的实施例的上述特征和其他优点通过下面实施例的说明将变得清楚。
【附图说明】
[0021]现将仅通过示例的方式,参考所附附图对本公开的实施例进行描述,其中:
[0022]图1是根据本公开的示例性实施例的数据结构的处理方法的流程图;
[0023]图2是根据本公开的示例性实施例的顶点分割的示意图;
[0024]图3是根据本公开的示例性实施例的数据结构的处理系统的配置示意图;以及
[0025]图4是根据本公开的示例性实施例的分割装置的配置示意图。
【具体实施方式】
[0026]现将结合附图对本公开的实施例进行具体的描述。应当注意的是,附图中对相似的单元或者功能组件可能使用同样的数字标示。所附附图仅仅旨在说明本公开的实施例。本领域的技术人员可以在不偏离本公开精神和保护范围的基础上从下述描述得到替代技术方案。
[0027]以图表征的数据结构已经为本领域的技术人员所熟知。然而,如何来对以图表征的海量数据进行高效处理却是困扰本领域技术领域的难题。本公开的实施例旨在提供一种能对图进行高效处理的数据处理方法。在数据库中,有大量的数据可以抽象为图。下文以打车服务所涉及的数据为例来说明本公开的原理,但是应当理解的是,本公开不限于打车服务的数据,可是可应用于能够抽象成以图表征的数据结构的各种数据处理。
[0028]在打车服务中的数据结构中,将乘客和司机看成图中的一个顶点,每次交易看为一条边,这样就形成了司机与乘客关系社交的“有向图”结构。随着乘客与司机之间的交易数目的增加,图变得越来越庞大。对所涉及的海量数据进行存储和分析是非常模范的。如上所述,可基于“图”的数据结构来构建打车服务中的相关数据。
[0029]在一个实施例中,用顶点和边的属性可以定义数据。这个数据定义可以由用户根据需要自由设定。例如,可以用“图”建模司机乘客关系,建模如下。图形的点用来表示乘客和司机。图形的边用来表示乘客与司机发生的关系(例如一次交易等)。在一些情况下,可以进一步引入图形的度等。例如,图形的度表示乘客司机发生多次关系,将会有多条边。根据这种抽象,司机乘客之间的数据关系可以用图得到完整表征。例如:交易频率,交易团体等可以得到有效表征。该模型是一种属性图的思想,顶点和边可以分别定义各自的属性,基于属性可以来表征对象特征或交易相关的数据。根据如上所述的建模,打车服务中的相关数据得以建构。
[0030]针对千万个顶点和上十亿条边构成的图,本公开的实施例提供一种数据结构的处理方法,其中,所述数据结构以图表征,所述方法包括:将多个顶点分割成多组;将每组顶点存储在对应的存储节点中;以及生成表示每个顶点与对应的存储节点之间关系的存储路由表。通过将顶点进行分割成多组,并且将每组顶点存储在对应的存储节点,由此可以实现图的分布式存储。采用分布式存储的方式,能够实现数据的高效快速处理和分析。
[0031]下面结合【附图说明】本公开的实施例。
[0032]图1是根据本公开的示例性实施例的数据结构的处理方法的流程图。如图1所示,根据本公开的实施例的数据结构的处理方法包括:步骤S101,将多个顶点分割成多组;步骤S102将每组顶点存储在对应的存储节点中;以及步骤S103,生成表示每个顶点与对应的存储节点之间关系的存储路由表。
[0033]由于不能在单机存储和处理如此大的数据,根据本公开的处理方法,对顶点进行切割,将图进行分布式存储,有效地解决了存储与计算的问题。这种处理方法具有以下优点:存储数据量可以理论上不受限制,例如可以通过扩展存储节点的数目,可以存储海量数据;存储节点可以横向任意扩展,存储成本大幅降低;在每个存储节点内可以进行独立计算,由此实现整个图的并行计算,加速图计算的速度。此外,采用分布式存储的方式,可以将每个存储节点的数据进行选择性地冗余备份,使在某台机器上宕机的情况下,快速恢复并读取另外一个节点的信息。
[0034]术语“存储路由表”表示顶点与对应的存储节点之间的关系。由于设置了存储路由表,可以基于存储路由表确定每个顶点的存储位置,由此能够实现所有顶点的访问。在一个实施例中,存储路由表可以存储在对应的存储节点内,并且可以与主控节点进行通信来访问。在另一个实施例中,存储路由表可以存储在主控节点内并且可被存储节点访问。
[0035]根据本公开的实施例的数据结构的处理方法,通过将图进行分割成多个图分片,将图分片上的顶点和边存储在多个存储节点上,每个存储节点可以对各自存储的图分片进行计算。与现有技术相比能够大幅度地提高数据处理能力。在一个实施例中,以图表征的数据可以源自于关系型数据库,当然也可以来自于其他数据库。只要数据库能够抽象为图表征的数据结构即可。在每个存储节点独立运算的数据可以进一步被汇总、存储或以各种方式呈现。
[0036]下面结合图2进一步说明根据本公开的示例性实施例的顶点分割的原理。图2示出了根据本公开的示例性实施例的顶点分割的示意图。为了图示和说明的方便
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1