一种海量数据处理方法和系统的制作方法

文档序号:6427653阅读:176来源:国知局
专利名称:一种海量数据处理方法和系统的制作方法
技术领域
本发明涉及数据处理技术,特别是涉及一种海量数据处理方法和系统。
背景技术
随着互联网技术的迅猛发展,互联网用户的数量急剧增长,因此,对于互联网用户数据的采集、清洗、统计、分析等数据处理的需求越来越多。同时,互联网用户数据的量级也在呈爆炸式的增长,从而导致上述数据处理的压力进一步增大。目前,在对互联网用户的海量数据进行处理时,采用分布式平台(Hadoop)技术与数据仓库平台(Hive)技术相结合的方法。在分布式平台存储海量数据,通过控制台命令调用数据仓库操作语句(HQL)的计算命令对分布式平台存储的海量数据进行统计、分析等处理,该方法在命令调用时的灵活性差。

发明内容
本发明提供了一种海量数据处理方法,采用该方法能够增强海量数据处理的灵活性。本发明还提供了一种海量数据处理系统,采用该系统能够增强海量数据处理的灵活性。为达到上述目的,本发明的技术方案是这样实现的本发明公开了一种海量数据处理方法,包括调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句,当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序;调度模块根据所述调用顺序向数据仓库平台调用数据仓库操作语句;数据仓库平台从关系数据库中读取所述数据仓库操作语句对应的配置信息;数据仓库平台根据所述调用顺序触发所述数据仓库操作语句对分布式平台存储的数据进行运算,生成结果数据并存储到所述分布式平台。所述生成结果文件并存储到所述分布式平台之后,还包括调度模块控制所述分布式平台将所述结果数据导入所述关系数据库;调度模块控制缓存模块根据预设的展现策略从所述关系数据库中抽取常用的结果数据;数据展现平台从所述缓存模块中读取并展现所述常用的结果数据。所述数据展现平台从所述缓存模块中读取并展现所述常用的结果文件之后,还包括数据展现平台从所述关系数据库中读取并展现所述结果数据。所述调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句之前,还包括数据接入平台向分布式平台传输至少一次数据;
当每次传输完成时,数据接入平台向消息接口模块发送数据传输完成消息;所述调度模块从所述消息接口模块获取至少一次所述数据传输完成消息,作为所述当前业务信息。所述数据接入平台向消息接口模块发送数据传输完成消息包括所述数据接入平台采用谷歌消息传输方案protoBuffer通讯方式向消息接口模块发送所述数据传输完成消息。本发明公开了一种海量数据处理系统,包括调度模块,用于根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句,当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序,根据所述调用顺序向数据仓库平台调用数据仓库操作语句;所述数据仓库平台,用于从关系数据库中读取所述数据仓库操作语句对应的配置信息,根据所述调用顺序触发所述数据仓库操作语句对分布式平台存储的数据进行运算, 生成结果数据并存储到所述分布式平台;所述关系数据库,用于存储所述数据仓库操作语句对应的配置信息;分布式平台,用于存储所述数据和所述结果数据。所述调度模块还用于控制所述分布式平台将所述结果数据导入所述关系数据库, 控制缓存模块根据预设的展现策略从所述关系数据库中抽取常用的结果数据;所述系统还包括所述缓存模块用于缓存所述常用的结果数据;数据展现平台,用于从所述缓存模块中读取并展现所述常用的结果数据。所述数据展现平台还用于从所述关系数据库中读取并展现所述结果数据。所述系统还包括数据接入平台,用于向分布式平台传输至少一次数据,当每次传输完成时,向消息接口模块发送数据传输完成消息;所述消息接口模块,用于接收所述数据传输完成消息;所述调度模块,还用于从所述消息接口模块获取至少一次所述数据传输完成消息,作为所述当前业务信息。所述数据接入平台具体用于采用谷歌消息传输方案protoBuffer通讯方式向消息接口模块发送所述数据传输完成消息。由上述发明内容可见,在海量数据处理系统中加入调度模块,该模块根据当前业务信息和预设的调度策略确定调用数据仓库操作语句以及调用顺序,在调度模块的控制下完成数据处理过程,从而避免了现有的海量数据处理系统中通过控制台逐次下发命令,因为通过调度模块进行控制,可以根据所需要实现的业务的逻辑,灵活配置相应的调度策略和调用顺序,从而增强了海量数据处理的灵活性。


图1是本发明实施例一的海量数据处理方法的流程图;图2是本发明实施例二的海量数据处理方法的流程图;图3是本发明实施例三的海量数据处理系统的结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的基本思想是,在海量数据处理系统中加入调度模块,该模块根据当前业务信息和预设的调度策略确定调用数据仓库操作语句以及调用顺序,在调度模块的控制下完成数据处理过程。图1是本发明实施例一的海量数据处理方法的流程图。如图1所示,该方法至少包括如下过程。步骤101 调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句,当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序。步骤102 调度模块根据调用顺序向数据仓库平台调用数据仓库操作语句。步骤103 数据仓库平台从关系数据库(mysql)中读取数据仓库操作语句对应的
配置信息。步骤104 数据仓库平台根据调用顺序触发数据仓库操作语句对分布式平台存储的数据进行运算,生成结果数据并存储到分布式平台。图2是本发明实施例二的海量数据处理方法的流程图。如图2所示,该方法包括如下过程。步骤201 数据接入平台向分布式平台传输至少一次数据。在本步骤中,一种较佳的实施方式为,数据接入平台定时将已接收的数据传输到分布式平台里面。分布式平台支持外围系统的数据接收、整理、计算、分发计算结果到报表系统等功能。具体地,分布式平台是国外开源基金会(Apache)下的一个数据存储平台,由分布式文件系统(HDFS)、分布式文件处理等成员组成。其中,分布式文件系统(HDR5)和分布式文件处理是两个最基础最重要的成员。分布式文件系统(HDFS)是谷歌分布文件系统 (GFS)的开源版本,是一个高度容错的分布式文件系统,它能够提供高吞吐量的数据访问, 适合存储海量的大文件,例如PB级的超过64M的大文件,将大的文件拆分成N个小的文件分散到不同的机器上面,并且可以设置备份的数量,从而在某些机器出现问题时仍然可以正常工作。分布式文件处理是大规模数据计算的利器,例如TB级数据,包括分布数据抽取 (Map)和分布数据处理(Reduce)模块。分布数据抽取模块负责将数据打散;分布数据处理模块负责对数据进行聚集。用户只需要实现分布数据抽取和分布数据处理两个接口,即可完成TB级数据的计算。分布式文件处理可以应用于日志分析和数据挖掘等数据分析,还可应用于科学数据计算,如圆周率PI的计算等。步骤202 当每次传输完成时,数据接入平台向消息接口模块发送数据传输完成消息。在本步骤中,数据接入平台每次向分布式平台传输数据完成时,数据接入平台向消息接口模块发送数据传输完成消息,通过该消息将数据传输完成的信息同步到数据平台的应用系统。一种较佳的实施方式为,数据接入平台采用谷歌的一种消息传输方案 (protoBuffer)通讯方式向消息接口模块发送数据传输完成消息。
步骤203 调度模块从消息接口模块获取至少一次数据传输完成消息,作为当前业务信息。在本步骤中,例如,数据接入平台向分布式平台传输了 3次数据,相应地,调度模块从消息接口模块获取3次数据传输完成消息,调度模块将3次获取的数据传输完成消息作为当前业务信息。步骤204 调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句。当判断为是时,执行步骤205 ;当判断为是否,返回步骤201。在本步骤中,调度策略是预先设置在调度模块中的。调度策略用于指示调用数据仓库操作语句的触发条件,如果当前业务信息满足调度策略规定的条件,则调度模块判断为调用数据仓库操作语句,反之,如果当前业务信息不满足调度策略规定的条件,则调度模块判断为不调用数据仓库操作语句。例如,数据接入平台接收的数据包括多个方面的数据, 数据分多次导入到分布式平台里面,相应地,调度模块从消息接口模块获取多次数据传输完成消息,调度系统根据多次数据传输完成消息判断是否调用数据仓库操作语句,根据调度策略,当只接收到其中部分数据传输完成消息时,不调用数据仓库操作语句,只有当上述多个方面的数据全部完整导入到分布式平台之后,接收到全部的数据传输完成消息,调度模块才判断为开始调用数据仓库操作语句,以进行数据计算。步骤205 调度模块根据获取的当前业务信息和预设的调度策略获取调用顺序。在本步骤中,由于数据计算包括很多步骤,有的步骤之间相互不存在逻辑联系,而有的步骤之间必须要按照一定的顺序执行,因此,按照一定的调用顺序调用数据仓库操作语句执行计算。该调用顺序是预先设置在调度模块中的。在调度模块中可以预设多个调用顺序,调度模块可以根据获取的当前业务信息和预设的调度策略选择相应的调用顺序。步骤206 调度模块根据调用顺序向数据仓库平台调用数据仓库操作语句。步骤207 数据仓库平台从关系数据库中读取数据仓库操作语句对应的配置信肩、ο在本步骤中,数据仓库平台是一个结构化查询语言(SQL)解析引擎,它用于将SQL 语句转译成分布数据抽取/分布数据处理,然后在分布式平台中执行,以达到快速开发的目的。数据仓库平台中存储的表是分布式平台的目录,具体地,数据仓库平台默认表存放路径位于当前工作目录的数据仓库目录内,以表名做为文件夹分开,如果当前工作存在分区表,则分区值是子文件夹,可以直接在其它的分布数据抽取/分布数据处理里直接应用这部分数据。数据仓库平台可以和关系数据库进行关联。将数据仓库操作语句需要操作的文件或者目录映射成表名信息存储在关系数据库中,并且将文件中的字段也映射成要操作的表的字段信息存储在关系数据库中,上述映射获得的表名信息和字段信息作为该数据仓库操作语句的配置信息。当数据仓库接收到调用数据仓库操作语句进行计算的命令时,会解析接收到的命令,并且从关系数据库中读取所调用的数据仓库操作语句相关的配置信息, 根据该配置信息转译成分布数据抽取/分布数据处理程序进行统计计算。步骤208 数据仓库平台根据调用顺序触发数据仓库操作语句对分布式平台存储的数据进行运算,生成结果数据并存储到分布式平台。步骤209 调度模块控制分布式平台将结果数据导入关系数据库。在本步骤中,具体地,调用模块采用导入算法从分布式平台里面读取数据仓库计算生成的结果数据,该结果数据可以以结果文件的形式存储,然后调用模块根据业务需求将上述结果数据导入到关系数据库中的多个数据表中。步骤210 调度模块控制缓存模块根据预设的展现策略从关系数据库中抽取常用的结果数据。在本步骤中,展现策略预先设置在调度模块中,该展现策略用于指示展现平台的常用数据,调度模块根据该展现策略,将关系数据库中存储的结果数据中属于展现平台的常用数据的结果数据抽取到缓存模块中。具体地,缓存模块可以采用内存缓存(memcache) 技术,是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的散列(Hash)表来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。缓存模块是一种分布式的,也就是可以允许不同主机上的多个用户同时访问,从而不仅解决了共享内存只能是单机的弊端,而且还减小了数据库检索的压力,并且提高了访问获取数据的速度。步骤211 数据展现平台从缓存模块中读取并展现常用的结果数据。在本步骤中,数据展现平台对于自身常用的数据,通过从缓存模块中读取结果数据来获得,并在获得后展现常用的结果数据。对于数据展现平台不常用的数据,因为无法从缓存模块中读取到,所以继续执行下述步骤212。步骤212 数据展现平台从关系数据库中读取并展现结果数据。在本步骤中,数据展现平台不常用的数据,例如,需要动态变换以及查询的数据等,数据展现平台通过从关系数据库中读取结果数据来获得,并在获得后展现常用的结果数据。图3是本发明实施例三的海量数据处理系统的结构示意图。如图3所示,该海量数据处理系统至少包括调度模块31、数据仓库平台32、关系数据库33和分布式平台34。 在此基础上,还可以包括数据接入平台35、消息接口模块36、缓存模块37和数据展现平台 38。上述消息接口模块36与调度模块31可以都位于应用系统中。其中各个组成部分执行的处理方式以及流程可以参见本发明实施例一和本发明实施例二的记载。其中,调度模块31根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句,当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序,根据调用顺序向数据仓库平台32调用数据仓库操作语句。数据仓库平台32从关系数据库33中读取数据仓库操作语句对应的配置信息,根据调用顺序触发数据仓库操作语句对分布式平台34存储的数据进行运算,生成结果数据并存储到分布式平台;34。关系数据库33存储数据仓库操作语句对应的配置信息。分布式平台34存储上述数据和上述结果数据。在上述技术方案的基础上,在上述系统中包括数据接入平台35和消息接口模块 36的情况下,数据接入平台35向分布式平台34传输至少一次数据,当每次传输完成时,向消息接口模块36发送数据传输完成消息。消息接口模块36接收数据传输完成消息。调度模块31从消息接口模块36获取至少一次数据传输完成消息,作为当前业务信息。具体地, 数据接入平台35具体可以采用谷歌的一种消息传输方案,例如protoBuffer通讯方式向消息接口模块36发送数据传输完成消息。其中,数据接入平台35用于外围系统的数据接入,支持实时接口接入。数据接入平台35接收的数据按照规定的格式生成文本文件,例如txt 格式的文件。并且,数据接入平台35定时将上述文本文件传输到分布式平台34的HDFS文件系统里面。在上述技术方案的基础上,在上述系统中包括缓存模块37的情况下,调度模块31 还控制分布式平台;34将结果数据导入关系数据库33,控制缓存模块37根据预设的展现策略从关系数据库33中抽取常用的结果数据。缓存模块37缓存常用的结果数据。数据展现平台38将本数据处理系统最终整理的结果数据展现到界面。数据展现平台38的数据来源包括以下两种第一,从缓存模块37中获取;第二,从关系数据库中获取。具体地,数据展现平台38从缓存模块37中读取并展现常用的结果数据。并且,数据展现平台38还从关系数据库33中读取并展现结果数据。根据以上具体实施方式
可见,在海量数据处理系统中加入调度模块,该模块根据当前业务信息和预设的调度策略确定调用数据仓库操作语句以及调用顺序,在调度模块的控制下完成数据处理过程,从而避免了现有的海量数据处理系统中通过控制台逐次下发命令,因为通过调度模块进行控制,可以根据所需要实现的业务的逻辑,灵活配置相应的调度策略和调用顺序,从而增强了海量数据处理的灵活性。并且,通过缓存模块存储常用的结果数据,数据展现模块优先从缓存模块中读取结果数据并展现,只有当缓存模块中未存储所需的结果数据时,数据展现平台才会从数据库中读取,从而通过增加缓存模块减小了大量访问给数据展现平台造成的压力。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种海量数据处理方法,其特征在于,包括调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句,当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序; 调度模块根据所述调用顺序向数据仓库平台调用数据仓库操作语句; 数据仓库平台从关系数据库中读取所述数据仓库对应的配置信息; 数据仓库平台根据所述调用顺序触发所述数据仓库操作语句对分布式平台存储的数据进行运算,生成结果数据并存储到所述分布式平台。
2.根据权利要求1所述的海量数据处理方法,其特征在于,所述生成结果文件并存储到所述分布式平台之后,还包括调度模块控制所述分布式平台将所述结果数据导入所述关系数据库;调度模块控制缓存模块根据预设的展现策略从所述关系数据库中抽取常用的结果数据;数据展现平台从所述缓存模块中读取并展现所述常用的结果数据。
3.根据权利要求2所述的海量数据处理方法,其特征在于,所述数据展现平台从所述缓存模块中读取并展现所述常用的结果文件之后,还包括数据展现平台从所述关系数据库中读取并展现所述结果数据。
4.根据权利要求1至3中任意一项所述的海量数据处理方法,其特征在于,所述调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句之前,还包括数据接入平台向分布式平台传输至少一次数据;当每次传输完成时,数据接入平台向消息接口模块发送数据传输完成消息; 所述调度模块从所述消息接口模块获取至少一次所述数据传输完成消息,作为所述当前业务信息。
5.根据权利要求4所述的海量数据处理方法,其特征在于,所述数据接入平台向消息接口模块发送数据传输完成消息包括所述数据接入平台采用谷歌消息传输方案ProtoBuffer通讯方式向消息接口模块发送所述数据传输完成消息。
6.一种海量数据处理系统,其特征在于,包括调度模块,用于根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句,当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序,根据所述调用顺序向数据仓库平台调用数据仓库操作语句;所述数据仓库平台,用于从关系数据库中读取所述数据仓库对应的配置信息,根据所述调用顺序触发所述数据仓库操作语句对分布式平台存储的数据进行运算,生成结果数据并存储到所述分布式平台;所述关系数据库,用于存储所述数据仓库操作语句对应的配置信息; 分布式平台,用于存储所述数据和所述结果数据。
7.根据权利要求6所述的海量数据处理系统,其特征在于,所述调度模块还用于控制所述分布式平台将所述结果数据导入所述关系数据库,控制缓存模块根据预设的展现策略从所述关系数据库中抽取常用的结果数据;所述系统还包括所述缓存模块用于缓存所述常用的结果数据;数据展现平台,用于从所述缓存模块中读取并展现所述常用的结果数据。
8.根据权利要求7所述的海量数据处理系统,其特征在于,所述数据展现平台还用于从所述关系数据库中读取并展现所述结果数据。
9.根据权利要求6或8中任意一项所述的海量数据处理系统,其特征在于,所述系统还包括数据接入平台,用于向分布式平台传输至少一次数据,当每次传输完成时,向消息接口模块发送数据传输完成消息;所述消息接口模块,用于接收所述数据传输完成消息;所述调度模块,还用于从所述消息接口模块获取至少一次所述数据传输完成消息,作为所述当前业务信息。
10.根据权利要求9所述的海量数据处理系统,其特征在于,所述数据接入平台具体用于采用谷歌消息传输方案ProtoBuffer通讯方式向消息接口模块发送所述数据传输完成消息。
全文摘要
本发明公开了一种海量数据处理方法,调度模块根据获取的当前业务信息和预设的调度策略判断是否调用数据仓库操作语句(HQL),当判断为是时,根据获取的当前业务信息和预设的调度策略获取调用顺序,调度模块根据调用顺序向数据仓库平台调用HQL,数据仓库平台从关系数据库中读取数据仓库对应的配置信息,数据仓库平台根据调用顺序触发HQL对分布式平台存储的数据进行运算,生成结果数据并存储到分布式平台。本发明还公开了一种海量数据处理系统。采用本发明公开的海量数据处理方法和系统,能够增强海量数据处理的灵活性。
文档编号G06F17/30GK102214236SQ20111018229
公开日2011年10月12日 申请日期2011年6月30日 优先权日2011年6月30日
发明者祝博立 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1