大数据加载系统和方法

文档序号:6507999阅读:711来源:国知局
大数据加载系统和方法
【专利摘要】本发明公开了一种大数据加载系统,其包括用于接收用户数据的客户端、用于存储用户数据的数据存储系统、以及用于存储用户数据的管理信息的元数据库,其中管理信息包括数据结构、数据属性和数据存储位置。而且,大数据加载系统还包括加载服务器,其与客户端建立连接以从客户端接收用户数据,并根据数据存储系统的状态信息和元数据库的管理信息,将用户数据加载至数据存储系统。本发明还公开了一种大数据加载方法。本发明的系统和方法实现了海量结构化数据、半结构化数据和非结构化数据的有效结合和统一存储管理,并且为各种数据之间的关联分析查询提供了可能。
【专利说明】大数据加载系统和方法
【技术领域】
[0001]本发明涉及数据存储领域,具体涉及一种大数据加载系统和方法。
【背景技术】
[0002]随着云计算、物联网、社交网络、移动互联的快速发展,数据量以前所未有的速度增长,并且更加集中,而且这种趋势将持续下去。数据正在迅速膨胀并变大,数据规模越大,处理的难度也越大,但对其进行挖掘可能得到的价值也越大,人们正在越来越深地意识到数据的重要性。
[0003]然而,海量数据的危机并不单纯是数据量的爆炸性增长,它还涉及到数据类型的改变。以往的数据基本都可以用二维表结构表示并存储在数据库中,也就是结构化数据,但是现在越来越多的互联网多媒体等应用的出现,使得诸如图片、音视频等非结构化数据占到了越来越大的比重,甚至增长速度远远超过了结构化数据。这些非结构化数据往往蕴含着更大量的信息,如何将这些数据转化为可用的结构化数据信息,以便于进行数据分析和预测,则成为越来越迫切的需求。
[0004]现阶段,结构化数据的存储分析通过数据库实现,如oracle, pos tgresql, mysql等等,非结构化数据的存储分析通过Hadoop平台和MapReduce编程模型实现。数据库在结构化数据的高速加载和实时查询方面提供了良好的支持,Hadoop的文件系统HDFS满足了非结构化数据分析处理的底层支持。但是数据库或者Hadoop及相关组件只能单一地实现结构化或非结构化的数据处理,并没有实现结构化和非结构化数据的有效结合。如南大通用的gbase数据库,只支持结构化数据处理的功能。Facebook提出的Hive,支持对非结构化数据处理的功能,但在对数据处理的实时性上效果并不理想。EMC等相关厂商也发布了结构化数据和非结构化数据的统一处理平台,如Greenplum并行数据库,Teradata, Vertica等,但是目前在对非结构化数据的处理方面并没有满足高可扩展性和容错性的需求。
[0005]现阶段针对移动互联网应用海量数据复杂的处理需求,比如复杂的关联分析,不同类型数据的处理(包括结构化数据、文本数据、和音视频数据等),甚至不同类型数据的联合分析和检索等,决定了很多应用需求并非能够通过现有技术(数据库的结构化数据处理或是其他平台的非结构化数据处理)满足,这些应用需要实现对不同类型数据的统一处理。
[0006]现有技术,无论是各种数据库或是Hadoop及其各种组件均是只支持单一类型的数据分析,或是结构化数据的分析处理或是非结构化数据的分析处理。虽然有些厂商对并行数据库融合了 Hadoop平台对于非结构化数据的支持,仍然不能有效地支持结构化数据和非结构化数据的结合。因为现有的各种数据库,在设计上均是采用二维表的结构表示和处理数据,不能支持某些非结构化数据的存储及分析。对于某些能够通过数据库存储分析的非结构化数据来说,虽然对结构化数据的实时查询支持效果很好,但由于非结构化数据文件较大,利用数据库分析处理会在很大程度上降低数据库的性能。而Hadoop及其相关组件以及其他非结构化数据处理平台虽然支持非结构化数据的存储管理,但是在对数据本身价值的利用并不完全,且在数据分析的实时性方面效果一般。有效地将结构化数据和非结构化数据统一存储管理,并进行数据的分析处理是当前迫切需要解决的问题。
[0007]综上所述,现有技术存在的主要问题在于,大数据加载平台不能同时支持结构化数据和非结构化数据的处理,并且保证数据分析的实时性。

【发明内容】

[0008]为了解决上述问题,本发明提供了一种大数据加载系统,其包括:
[0009]客户端,用于接收用户数据;
[0010]数据存储系统,用于存储所述用户数据;
[0011]元数据库,用于存储所述用户数据的管理信息,其中所述管理信息包括数据结构、数据属性和数据存储位置;
[0012]其特征在于
[0013]还包括加载服务器,其与客户端建立连接以从客户端接收用户数据,并根据数据存储系统的状态信息和元数据库的管理信息,将所述用户数据加载至所述数据存储系统。
[0014]在另一方面,本发明还提供了一种大数据加载方法,其特征在于包括步骤:
[0015]客户端接收用户数据;
[0016]加载服务器从客户端接收用户数据,并根据数据存储系统的状态信息和元数据库的管理信息,将所述用户数据加载至所述数据存储系统;
[0017]其中所述元数据库存储所述用户数据的管理信息,所述管理信息包括数据结构、数据属性和数据存储位置。
[0018]本发明提供的大数据加载系统和方法,可以对包含结构化数据、半结构化数据和非结构数据的大数据进行统一加载,实现了海量结构化数据、半结构化数据和非结构化数据的有效结合和统一存储管理。本发明还提出了采用元数据库对数据结构、数据属性和数据存储位置等信息进行存储和管理,为各种数据之间的关联分析查询提供了可能。与单一的结构化数据处理数据库相比,解决了半结构化数据和非结构化数据的存储管理问题。与单一的非结构化数据处理平台相比,解决了结构化数据、半结构化数据和非结构化数据的融合问题,并且使得能在后续数据的分析查询中利用数据库的实时分析查询优势。
【专利附图】

【附图说明】
[0019]图1为本发明的大数据加载系统的示意图;
[0020]图2为本发明的大数据加载方法的流程图;
[0021]图3为本发明的大数据加载方法中建立客户端与加载服务器之间连接的流程图。【具体实施方式】
[0022]为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
[0023]如图1所示,本发明实施例提供了一种大数据加载系统,其包括:客户端101,用于接收用户数据;数据存储系统104,用于存储用户数据;元数据库105,用于存储用户数据的管理信息,其中管理信息包括数据结构、数据属性和数据存储位置;以及加载服务器103,其与客户端101建立连接以从客户端101接收用户数据,并根据数据存储系统104和元数据库105的状态信息以及元数据库105的管理信息,将用户数据加载(即存储)至数据存储系统104。
[0024]客户端101接收到的用户数据可以是结构化数据、半结构化数据以及非结构化数据中的一种或多种的混合。相应地,数据存储系统104可包括用于存储结构化数据的结构化数据存储子系统、用于存储半结构化数据的半结构化数据存储子系统以及用于存储非结构化数据的非结构化数据存储子系统。加载服务器103依据用户数据的具体属性进行数据划分并将其分别加载至数据存储系统104相应的存储子系统的分区中。用户数据的存储需要其他存储系统支持,比如结构化数据采用oracle或是postgresql数据库存储,半结构化和非结构化数据采用开源的Hadoop平台组件HDFS/HBase/Hive存储,这些数据库和Hadoop平台组件存储技术均属于数据存储领域的现有技术并且本发明的重点也不在于此,故不再赘述。
[0025]本发明实施例的大数据加载系统还可包括负载均衡装置102,用于基于加载服务器103的负载情况均衡加载服务器103与客户端101的连接,以防止某个加载服务器由于连接过多导致加载缓慢或是某个加载服务器由于连接较少导致资源浪费。
[0026]为了便于加载服务器103获得数据存储系统104和元数据库105的状态信息,本发明实施例的大数据加载系统还包括状态信息监测模块106,用于监测数据存储系统104和元数据库105的状态信息,比如各数据存储单元是否正常可用等。在本说明书中,数据存储单元指的是数据存储系统104的各个数据存储子系统。这些状态信息由状态信息同步模块107周期性地读取,并发送给加载服务器103,以便加载服务器103根据最新的服务状态确定有效的数据划分及分发过程,进行正确的数据加载,根据数据存储系统的状态(数据存储子系统包括的主节点和数据节点状态)和数据属性将数据拆分并存储至各个存储系统子系统的不同分区中。
[0027]以下,本发明实施例的大数据加载系统的数据加载工作过程将结合图2逆行描述。如图2所示,本发明实施例的数据加载方法包括步骤:
[0028]S201,客户端接收用户数据;以及
[0029]S202,加载服务器从客户端接收用户数据,并根据数据存储系统和元数据库的状态信息以及元数据库的管理信息,将用户数据加载至数据存储系统;
[0030]其中元数据库存储用户数据的管理信息,管理信息包括数据结构、数据属性和数据存储位置。
[0031]在本发明的另一个实施例中,在步骤S201客户端接收用户数据之前,还包括建立客户端与加载服务器之间的连接,如图3所示,其具体步骤为:
[0032]S301,启动数据加载服务并在负载均衡器上注册;
[0033]S302,客户端向负载均衡器发出数据加载请求;
[0034]5303,负载均衡器按照均衡规则动态分配一个加载服务器给客户端,让两者之间建立连接。均衡的目的是防止加载服务器超负载或负载过低,并使得各个加载服务器之间的负载相对均匀。
[0035]客户端与加载服务器之间的连接建立后,客户端即可接收用户数据并发送至加载服务器。
[0036]加载服务器在接收到用户数据后,进行以下操作:
[0037]a)加载服务器根据加载请求的数量和当前加载执行状态,确定加载请求立即执行或是等待,当加载服务器的请求数超过设定的上限或资源占用较多时,则再次接收到的所有请求均需等待,直到正在执行的请求数低于上限且资源占用正常,当加载服务器的请求数未达到设定上限时,立即执行;
[0038]b)加载服务器根据数据存储系统和元数据库的状态信息,结合从元数据库获得的关于用户数据的属性,确定数据分区策略,并从元数据库获取数据分布规则和存储位置,从状态信息监测模块获取数据存储系统和元数据库的状态信息,将用户数据存储至正常工作的数据存储单元,对于故障数据存储单元的数据采取故障策略进行备份。
[0039]然后将用户数据存入相应数据存储单元中,如果加载服务器的某个数据缓存中的数据量超过定义的批大小(例如batchsize = 1000)或超时,则调用加载接口进行数据的并行加载。
[0040]在数据写入成功后,如果是同步接口,则将结果返回给客户端。如果是异步接口,则在前述步骤中将数据写入加载服务器本地缓存时即可返回结果给客户端。
[0041]在加载服务正常运行的整个过程中,为了保证数据加载的可靠性和正确性,加载服务器需要及时地得到各数据存储单元的当前状态即数据存储单元包括的主节点和数据节点状态以及底层文件系统和数据库系统的运行状态,因此在加载服务运行的过程中需要利用状态信息同步模块周期性地向加载服务器报告各数据存储单元的工作状态,,并记录整个加载服务运行期间的日志和数据存储过程日志。
[0042]下面结合图1描述加载服务状态信息管理流程。
[0043]首先,状态信息监测模块106在加载服务启动时开始数据存储服务状态信息的搜集与记录,包括各数据存储单元包含的所有节点和元数据库的运行状态。
[0044]随后,状态信息监测模块106不断地从元数据105读取数据存储单元所有节点状态信息,获取要监测的文件系统(即HDFS,HBaSe,HiVe)的节点列表和数据库(即结构化数据存储子系统)的节点列表,并开始定期向文件系统节点和数据库节点发送探测信息,监测各数据存储单元(文件系统存储单元和数据库存储单元)是否可用。
[0045]在当前数据存储单元状态发生改变时,状态信息监测模块106将更新数据存储单元故障节点的信息,由可用变为不可用,或不可用变为可用。然后,状态信息同步模块107将由状态信息监测模块106获取的最新服务状态发送给加载服务器103。加载服务器103根据最新服务状态确定有效的数据划分及分发过程,进行正确的数据加载。
[0046]总体上看,本发明实施例的数据加载方法在进行数据加载时有三个主要过程:数据传输、数据划分和数据分发。数据传输是,将用户数据(结构化数据、半结构化数据和非结构化数据)按列的方式组织由客户端发送至加载服务器。数据划分是,将加载服务器接收到的数据按照某种划分策略分割成适合于结构化数据存储单元和非结构化数据存储单元存储的结构(组织成结构化数据列,半结构化数据列,非结构化数据列,各数据列写入对应于不同存储单元的分区缓存中)。数据分发是,将数据划分后的各个缓存数据并行地写入到数据存储单元中。
[0047]在数据传输过程中,数据按类型的不同组织成不同的列循环发送到加载服务器。在数据划分过程,加载服务器根据客户端传输数据的不同属性将其按照某种划分策略划分并写入到不同数据存储单元对应的缓存中,同时写入到加载服务器本地文件以保证数据写入安全准确。每个数据存储单元按照数据的属性存在一个缓存组。在数据分发过程中,力口载服务器对于每个底层数据存储单元HDFS/HBase/Hive/Database,启动多个线程以将各个缓存组中的数据并行地写入到各存储单元中,从而实现结构化数据、半结构化数据和非结构化数据的统一加载和存储管理。
[0048]整个数据加载过程在处理结构化数据和非结构化数据的部分对于用户是透明的,用户只需要将数据按列组织传输即可,无需关心数据类型,从而便于使用。
[0049]本发明提供的结构化数据和非结构数据统一加载平台实现了海量结构化数据和非结构化数据的有效结合和统一存储管理,这一平台为各种数据之间的关联分析查询提供了可能。与单一的结构化数据处理数据库相比解决了非结构化数据的存储管理问题,与单一的非结构化数据处理平台相比解决了结构化数据和非结构化数据的融合,并且将数据库的实时分析查询优势在后续数据的分析查询中得以利用提供了可能。同时在一定程度上弥补了现阶段结构化数据和非结构化数据的统一管理方面的不足,有效的降低了数据管理方面的成本。
[0050]最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对本发明保护范围的限制。尽管参照上述实施例对本发明进行了详细的说明,所述领域的普通技术人员应该理解,可以对本发明的具体实施例方式进行修改或等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,均涵盖在本发明的权利要求范围中。
【权利要求】
1.一种大数据加载系统,其包括:客户端,用于接收用户数据;数据存储系统,用于存储所述用户数据;元数据库,用于存储所述用户数据的管理信息,其中所述管理信息包括数据结构、数据属性和数据存储位置;其特征在于还包括加载服务器,其与客户端建立连接以从客户端接收用户数据,并根据数据存储系统的状态信息和元数据库的管理信息,将所述用户数据加载至所述数据存储系统。
2.如权利要求1所述的大数据加载系统,其特征在于,还包括负载均衡装置,用于基于所述加载服务器的负载情况均衡所述加载服务器与所述客户端的连接。
3.如权利要求1或2所述的大数据加载系统,其特征在于,所述数据存储系统包括用于存储结构化数据的结构化数据存储子系统、用于存储半结构化数据的半结构化数据存储子系统以及用于存储非结构化数据的非结构化数据存储子系统。
4.如权利要求3所述的大数据加载系统,其特征在于,所述加载服务器将所述用户数据加载至所述数据存储系统具体为:加载服务器依据所述用户数据的属性进行数据划分并将其加载至数据存储系统相应的存储子系统。
5.如权利要求4所述的大数据加载系统,其特征在于,所述数据划分是将所述加载服务器接收到的数据划分为适合于结构化数据存储和非结构化数据存储的多个数据列,所述多个数据列按照分区策略存 储于缓存组中,缓存组中的每个缓存存储结构化数据或半结构化数据或非结构化数据的独立分区数据,并且所述数据分发是所述缓存组的数据并行地写入到所述数据存储系统的各个存储子系统中,并进一步地写入到各个存储子系统的相应分区中。
6.如权利要求1或2所述的大数据加载系统,其特征在于,还包括状态信息监测模块,用于监测数据存储系统和元数据库的状态。
7.如权利要求6所述的大数据加载系统,其特征在于,还包括状态信息同步模块,用于从状态信息监测模块周期性地读取数据存储系统和元数据库的状态信息,并发送给加载服务器。
8.如权利要求7所述的大数据加载系统,其特征在于,所述状态信息同步模块还记录加载服务器的运行日志和数据存储过程日志。
9.一种大数据加载方法,其特征在于包括步骤:客户端接收用户数据;加载服务器从客户端接收用户数据,并根据数据存储系统的状态信息和元数据库的管理信息,将所述用户数据加载至所述数据存储系统;其中所述元数据库存储所述用户数据的管理信息,所述管理信息包括数据结构、数据属性和数据存储位置。
10.如权利要求9所述的大数据加载方法,其特征在于,所述加载服务器与所述客户端的连接由负载均衡装置基于所述加载服务器的负载情况进行均衡。
11.如权利要求10所述的大数据加载方法,其特征在于,所述均衡具体为:首先,启动数据加载服务后在负载均衡器上注册;然后,客户端向负载均衡器发出数据加载请求;最后,负载均衡器动态分配加载服务器给客户端,两者之间建立连接。
12.如权利要求9所述的大数据加载方法,其特征在于,所述加载服务器周期性地获取数据存储系统和元数据库的状态信息,并根据数据存储系统的状态和数据属性将数据拆分并存储至各个存储系统子系统的不同分区中。
13.如权利要求9所述的大数据加载方法,其特征在于,所述加载服务器以同步或异步方式将所述用户数据加载至所述数据存储系统。
14.如权利要求9至13中任一所述的大数据加载方法,其特征在于,所述加载服务器将所述用户数据加载至所述数据存储系统具体为:加载服务器依据所述用户数据的属性进行数据划分并将其加载至数据存储系统相应的存储子系统。
15.如权利要求14所述的大数据加载方法,其特征在于,所述数据划分是将所述加载服务器接收到的数据划分为适合于结构化数据存储、半结构化数据存储和非结构化数据存储的存储于多个缓存组中的多个数据列组,并且所述数据分发是所述缓存数据组中的数据并行地写入到所述数据存储系.统的各个存储子系统相应的分区中。
【文档编号】G06F17/30GK103440290SQ201310359675
【公开日】2013年12月11日 申请日期:2013年8月16日 优先权日:2013年8月16日
【发明者】狄静舒, 王颖, 宋怀明, 苗艳超, 刘新春, 邵宗有 申请人:曙光信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1