数据统计分析方法及装置制造方法

文档序号:6505881阅读:261来源:国知局
数据统计分析方法及装置制造方法
【专利摘要】本发明公开了一种数据统计分析方法及装置,所述方法包括:解析所接收的任务参数,按照预设规则组装数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作;根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在所述数据库所建立的对应的表中。通过本发明的技术方案,解决了相关技术中无法获知任务的操作记录和执行任务后的统计分析结果的问题。
【专利说明】数据统计分析方法及装置

【技术领域】
[0001]本发明涉及数据库技术,尤其涉及一种数据统计分析方法及装置。

【背景技术】
[0002]Hive是基于Apache分布式框架Hadoop的数据仓库工具,用于存储和处理海量结构化数据,Hive将数据存储于Hadoop分布式文件系统(HDFS, Hadoop Distributed FileSystem),采用类似数据库的数据存储和处理机制,并采用HQL (Hive Query Language)对这些数据进行自动化管理和处理。
[0003]分布式的、面向列的数据库HBase可以使用本地文件系统或HDFS存储数据,但为了提高数据可靠性和系统的健壮性,发挥HBase处理大数据量的优势时需要使用HDFS作为存储数据的文件系统。
[0004]Hive将海量结构化数据映射到一张数据库表中,而实际上这些数据分布式地存储在HDFS中,Hive对数据分析人员下达的命令语句进行解析和转换,最终生成一系列基于Hadoop的映射/规约(Map/Reduce)模型的任务(Job),由Hadoop执行这些任务完成对数据的统计分析。
[0005]目前,数据分析人员直接操作Hive时需要有较高的专业操作技能,不利于该技术的推广,并且,Hive的一些功能例如用户定义函数(UDF, User Defined Funct1n)需要频繁加载,操作繁琐且效率低下;对于频繁执行或者定期执行的对HBase的数据文件进行统计分析的任务,通常编写脚本通过任务管理工具Cron来调度执行,实际应用中任务数量较多,且管理人员无从得知脚本具体的功能,因此无法得知相应任务的操作记录,任务失败时也就无法进行恢复操作。
[0006]综上所述,由于相关技术中无法获知脚本的具体功能,因此无法获知任务的操作记录以及任务的统计分析结果。


【发明内容】

[0007]有鉴于此,本发明的主要目的在于提供一种数据统计分析方法及装置,以解决相关技术中无法获知任务的操作记录以及任务的统计分析结果的问题。
[0008]为达到上述目的,本发明的技术方案是这样实现的:
[0009]本发明提供了一种数据统计分析方法,该方法支持数据仓库工具对基于分布式框架的数据库中的数据进行统计分析,所述数据库中的数据与对所述数据库中的数据进行统计分析的任务预关联,该方法包括:
[0010]解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作;
[0011]根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在所述数据库所建立的对应的表中。
[0012]优选地,解析所接收的任务参数之前,该方法还包括:
[0013]将所接收的任务参数存储至缓冲存储器;
[0014]持久化所接收的任务参数至所述数据库;
[0015]在所述缓冲存储器存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器。
[0016]优选地,所述任务参数包括:任务身份标识(ID, IDentity)、任务对应的命令语句;
[0017]相应地,所述解析所接收的任务参数之前,该方法还包括:
[0018]确定所述存储缓冲器中未存储所述任务ID,且所述命令语句有效。
[0019]优选地,所述解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作,包括:
[0020]解析所述任务参数中的命令语句,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段。
[0021]优选地,所述任务参数还包括:任务状态标识、任务执行日期、任务执行时间和任务关联的编程模型;
[0022]相应地,所述根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在所述数据库所建立的对应的表中,包括:
[0023]根据所述命令语句和所述任务关联的编程模型生成任务,在确定所生成的任务对应的状态标识为开启时,在所述任务执行日期的所述任务执行时间指定的时间到来时,调度所述分布式框架而执行所生成的任务,并将执行所述任务的记录和执行所述任务后确定的统计分析的结果,存储至所述数据库中所述查询字段对应的字段。
[0024]本发明还提供了一种数据统计分析装置,该装置支持数据仓库工具对基于分布式框架的数据库中的数据进行统计分析,所述数据库中的数据与对所述数据库中的数据进行统计分析的任务预关联,该装置包括:接收模块、解析建表模块、任务生成模块和调度执行模块;其中,
[0025]所述接收模块,用于接收任务参数;
[0026]所述解析建表模块,用于解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作;
[0027]所述任务生成模块,用于根据所述任务参数生成所述任务参数对应的任务;
[0028]所述调度执行模块,用于根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果,存储至在所述数据库所建立的对应的表中。
[0029]优选地,该装置还包括缓冲存储器和发送模块;其中,
[0030]所述接收模块,还用于将接收的任务参数存储至所述缓冲存储器;持久化所接收的任务参数至所述数据库;
[0031]所述发送模块,用于在所述缓冲存储器存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器。
[0032]优选地,所述任务参数包括:任务ID、任务对应的命令语句;
[0033]该装置还包括:确定模块,用于确定所述存储缓冲器中未存储所述任务ID,且所述命令语句有效时,触发所述解析建表模块。
[0034]优选地,所述解析建表模块,还用于解析所述任务参数中的命令语句,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段。
[0035]优选地,所述任务参数还包括:任务状态标识、任务执行日期、任务执行时间和任务关联的编程模型;
[0036]所述任务生成模块,还用于根据所述命令语句和所述任务关联的编程模型生成任务;
[0037]所述确定模块,还用于确定所生成的任务对应的状态标识为开启时,在所述任务执行日期的所述任务执行时间指定的时间到来时触发所述调度执行模块;
[0038]所述调度执行模块,还用于调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果,存储至在所述数据库所建立的对应的表中。
[0039]本发明所提供的技术方案中,根据任务参数在数据库中建立与任务对应的表,并根据所述任务参数调度分布式框架执行根据任务参数生成的任务,而任务执行后统计分析的结果存储在所建立的表中,解决了无法获知任务操作记录及任务统计分析结果的问题;
[0040]进一步地,在所述缓冲存储器存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器,保证了任务执行的健壮性和稳定性;
[0041]进一步地,确定所述存储缓冲器中未存储所述任务ID,且所述命令语句有效,如此,在任务ID重复或任务对应的命令语句无效时,方便了数据分析人员及时排查错误,提高了数据统计分析效率;
[0042]进一步地,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段,方便了数据分析人员查询执行失败的任务,以及时恢复任务;
[0043]进一步地,通过任务对应的状态标识、任务执行日期和任务执行时间来调度分布式框架执行所生成的任务,实现了高效地对任务进行管理。

【专利附图】

【附图说明】
[0044]图1为本发明实施例的数据统计分析方法的实现流程示意图;
[0045]图2为本发明实施例的数据统计分析装置的组成结构示意图;
[0046]图3为本发明实施例的预定义任务的实现流程示意图;
[0047]图4为本发明实施例的调度执行任务的实现流程示意图。

【具体实施方式】
[0048]本发明的基本思想是:通过预设类型的任务参数,例如任务ID、任务对应的命令语句,任务状态标识等区分任务,并根据任务参数在数据库中建立与任务ID对应的表,并在表中建立与任务对应命令语句的查询字段对应的字段,通过该字段存储任务的操作记录和统计分析结果。
[0049]下面结合附图及具体实施例对本发明做进一步详细的说明。
[0050]本发明实施例记载了一种数据统计分析方法,该方法支持数据仓库工具对基于分布式框架的数据库中的数据进行统计分析,所述数据库中的数据与对所述数据库中的数据进行统计分析的任务预关联,图1为本发明实施例的数据统计分析方法的实现流程示意图,如图1所示,主要包括以下步骤:
[0051]步骤101:解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作;
[0052]步骤102:根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在所述数据库所建立的对应的表中。
[0053]优选地,解析所接收的任务参数之前,还包括:
[0054]将所接收的任务参数存储至缓冲存储器;
[0055]持久化所接收的任务参数至所述数据库;
[0056]在所述缓冲存储器存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器。
[0057]优选地,所述任务参数包括:任务ID、任务对应的命令语句;
[0058]相应地,所述解析所接收的任务参数之前,该方法还包括:
[0059]确定所述存储缓冲器中未存储所述任务ID,且所述命令语句有效。
[0060]优选地,所述解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作,包括:
[0061]解析所述任务参数中的命令语句,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段。
[0062]优选地,所述任务参数还包括:任务状态标识、任务执行日期、任务执行时间和任务关联的编程模型;
[0063]相应地,所述根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度所述分布式框架执行所述任务,将执行所述任务后的统计分析的结果存储至在所述数据库建立的表中,包括:
[0064]根据所述命令语句和所述任务关联的编程模型生成任务,在确定所生成的任务对应的状态标识为开启时,在所述任务执行日期的所述任务执行时间指定的时间到来时,调度所述分布式框架而执行所生成的任务,并将执行所述任务的记录和执行所述任务后确定的统计分析的结果,存储至所述数据库中所述查询字段对应的字段。
[0065]其中,所述数据仓库工具可以采用Hive,所述分布式框架可以采用开源分布式框架Hadoop,相应地,所述数据库为对应Hadoop的数据库HBase,所述任务关联的编程模型为映射/规约(Map/Reduce)模型。
[0066]其中,所述任务对应的命令语句可以采用HQL语句,也可以根据实际的应用场景定义所使用的语句。
[0067]需要说明的是,本发明实施例中所述的任务参数不仅限于以上所述,例如,任务参数还可以包括:任务名称、任务描述(任务的功能或用途)。
[0068]本发明实施例还记载了一种数据统计分析装置,该装置支持数据仓库工具对基于分布式框架的数据库中的数据进行统计分析,所述数据库中的数据与对所述数据库中的数据进行统计分析的任务预关联,图2为本发明实施例的数据统计分析装置的组成结构示意图,如图2所示,该装置包括:接收模块21、解析建表模块22、任务生成模块23和调度执行模块24 ;其中,
[0069]所述接收模块21,用于接收任务参数;
[0070]所述解析建表模块22,用于解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作;
[0071]所述任务生成模块23,用于根据所述任务参数生成所述任务参数对应的任务;
[0072]所述调度执行模块24,用于根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果,存储至在所述数据库所建立的对应的表中。
[0073]所述接收模块21,可以通过显示器显示对应任务的界面,来提示操作人员输入任务对应的参数信息,并通过输入设备接收对应的任务参数。
[0074]优选地,该装置还包括缓冲存储器25和发送模块26 ;其中,
[0075]所述接收模块21,还用于将接收的任务参数存储至所述缓冲存储器25 ;持久化所接收的任务参数至所述数据库;
[0076]所述发送模块26,用于在所述缓冲存储器25存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器25。
[0077]优选地,所述任务参数包括:任务ID、任务对应的命令语句;
[0078]该装置还包括:确定模块27,用于确定所述存储缓冲器25中未存储所述任务ID,且所述命令语句有效时,触发所述解析建表模块22。
[0079]优选地,所述解析建表模块22,还用于解析所述任务参数中的命令语句,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段。
[0080]优选地,所述任务参数还包括:任务状态标识、任务执行日期、任务执行时间和任务关联的编程模型;
[0081]所述任务生成模块23,还用于根据所述命令语句和所述任务关联的编程模型生成任务;
[0082]所述确定模块27,还用于确定所生成的任务对应的状态标识为开启时,在所述任务执行日期的所述任务执行时间指定的时间到来时触发所述调度执行模块24 ;
[0083]所述调度执行模块24,还用于调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果,存储至在所述数据库所建立的对应的表中。
[0084]其中,所述数据仓库工具可以采用Hive,所述分布式框架可以采用开源分布式框架Hadoop,相应地,所述数据库为对应Hadoop的数据库HBase,所述任务关联的编程模型为Map/Reduce 模型。
[0085]其中,所述任务对应的命令语句可以采用HQL语句,也可以根据实际的应用场景定义所使用的语句。
[0086]需要说明的是,本发明实施例中所述的任务参数不仅限于以上所述,例如,任务参数还可以包括:任务名称、任务描述(任务的功能或用途)。
[0087]下面以预定义任务,即解析接收的任务参数,并进行相应的初始化为例,对本发明实施例记载的数据统计分析方法及装置作进一步详细说明,图3为本发明实施例的预定义任务的实现流程示意图,如图3所示,主要包括以下步骤:
[0088]步骤301:接收任务参数;
[0089]任务参数包括:任务ID、任务对应的HQL语句;任务参数还可以包括:任务状态标识、任务执行日期、任务执行时间和任务关联的Map/Reduce模型。
[0090]步骤302:检验任务参数;
[0091]步骤303:判断任务参数检验是否通过,如果通过则执行步骤305 ;否则,执行步骤304 ;
[0092]存储缓冲器中未存储所述任务ID,且所述命令语句有效时,则任务参数检验通过。
[0093]步骤304:返回检验失败消息;
[0094]步骤305:存储任务参数至缓冲存储器;
[0095]步骤306:持久化任务信息至HBase ;
[0096]步骤307:初始化运行环境;
[0097]解析任务参数中的HQL语句,从HQL语句的解析结果中提取查询字段,在HBase中建立与任务ID对应的表,在对应的表中建立与查询字段对应的字段。
[0098]步骤308:返回初始化成功消息。
[0099]下面以调度执行任务,即调度分布式框架Hadoop执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在HBase所建立的对应的表中为例,对本发明实施例记载的数据统计分析方法即装置作进一步详细说明,图4为本发明实施例的调度执行任务的实现流程示意图,如图4所示,主要包括以下步骤:
[0100]步骤401:根据任务参数为任务分配资源;
[0101]本发明实施例中为任务分配的资源可以采用线程的形式。
[0102]步骤402:查找任务对应的HQL语句;
[0103]步骤403:读取任务关联的数据文件;
[0104]任务关联的数据文件位于HBase中。
[0105]步骤404:调用Map/Reduce模型执行生成的任务,对数据文件进行统计分析;
[0106]步骤405:解析统计分析后的数据文件,将解析后的数据文件存储至HBase ;
[0107]步骤406:操作记录和执行任务后的统计分析的结果存储至HBase。
[0108]操作记录,即任务执行日志,通过任务跟踪(Jobtrace)对象获取。
[0109]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【权利要求】
1.一种数据统计分析方法,其特征在于,该方法支持数据仓库工具对基于分布式框架的数据库中的数据进行统计分析,所述数据库中的数据与对所述数据库中的数据进行统计分析的任务预关联,该方法包括: 解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作; 根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在所述数据库所建立的对应的表中。
2.根据权利要求1所述的方法,其特征在于,解析所接收的任务参数之前,该方法还包括: 将所接收的任务参数存储至缓冲存储器; 持久化所接收的任务参数至所述数据库; 在所述缓冲存储器存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器。
3.根据权利要2所述的方法,其特征在于,所述任务参数包括:任务身份标识ID、任务对应的命令语句; 相应地,所述解析所接收的任务参数之前,该方法还包括: 确定所述存储缓冲器中未存储所述任务ID,且所述命令语句有效。
4.根据权利要3所述的方法,其特征在于,所述解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作,包括: 解析所述任务参数中的命令语句,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段。
5.根据权利要求4所述的方法,其特征在于,所述任务参数还包括:任务状态标识、任务执行日期、任务执行时间和任务关联的编程模型; 相应地,所述根据所述任务参数生成所述任务参数对应的任务,并根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果存储至在所述数据库所建立的对应的表中,包括: 根据所述命令语句和所述任务关联的编程模型生成任务,在确定所生成的任务对应的状态标识为开启时,在所述任务执行日期的所述任务执行时间指定的时间到来时,调度所述分布式框架而执行所生成的任务,并将执行所述任务的记录和执行所述任务后确定的统计分析的结果,存储至所述数据库中所述查询字段对应的字段。
6.一种数据统计分析装置,其特征在于,该装置支持数据仓库工具对基于分布式框架的数据库中的数据进行统计分析,所述数据库中的数据与对所述数据库中的数据进行统计分析的任务预关联,该装置包括:接收模块、解析建表模块、任务生成模块和调度执行模块;其中, 所述接收模块,用于接收任务参数; 所述解析建表模块,用于解析所接收的任务参数,按照预设规则组装所述数据库的建表语句,并根据所述建表语句在所述数据库中执行建表操作; 所述任务生成模块,用于根据所述任务参数生成所述任务参数对应的任务; 所述调度执行模块,用于根据所述任务参数调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果,存储至在所述数据库所建立的对应的表中。
7.根据权利要求6所述的装置,其特征在于,该装置还包括缓冲存储器和发送模块;其中, 所述接收模块,还用于将接收的任务参数存储至所述缓冲存储器;持久化所接收的任务参数至所述数据库; 所述发送模块,用于在所述缓冲存储器存储的任务参数丢失时,将所述数据库中的任务参数发送至所述缓冲存储器。
8.根据权利要求7所述的装置,其特征在于,所述任务参数包括:任务ID、任务对应的命令语句; 该装置还包括:确定模块,用于确定所述存储缓冲器中未存储所述任务ID,且所述命令语句有效时,触发所述解析建表模块。
9.根据权利要求8所述的装置,其特征在于, 所述解析建表模块,还用于解析所述任务参数中的命令语句,从所述命令语句的解析结果中提取查询字段,在所述数据库中建立与所述任务ID对应的表,在所述对应的表中建立与所述查询字段对应的字段。
10.根据权利要求9所述的装置,其特征在于,所述任务参数还包括:任务状态标识、任务执行日期、任务执行时间和任务关联的编程模型; 所述任务生成模块,还用于根据所述命令语句和所述任务关联的编程模型生成任务;所述确定模块,还用于确定所生成的任务对应的状态标识为开启时,在所述任务执行日期的所述任务执行时间指定的时间到来时触发所述调度执行模块; 所述调度执行模块,还用于调度所述分布式框架执行所生成的任务,将执行所生成的任务后确定的统计分析的结果,存储至在所述数据库所建立的对应的表中。
【文档编号】G06F17/30GK104298671SQ201310298192
【公开日】2015年1月21日 申请日期:2013年7月16日 优先权日:2013年7月16日
【发明者】梅迎春 申请人:深圳中兴网信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1