数据处理引擎的制作方法

文档序号:12465649阅读:240来源:国知局

本发明涉及大数据技术领域,尤其涉及一种数据处理引擎。



背景技术:

信息科技经过60多年的发展,已渗透到各行业的方方面面。政治、经济活动中很大一部分的活动都与数据的创造、采集、传输和使用相关,随着网络应用日益深化,大数据应用的影响日益扩大。根据机构测算,全世界数据总量以每两年翻一番的速度递增。换句话说,最近两年产生的数据总量相当于人类有史以来所有数据量的总和。在这个背景下,从公司战略到产业生态,从学术研究到生产实践,从城镇管理乃至国家治理,都将发生本质的变化。

大数据指的是大小超出常规的数据工具获取、存储、管理和分析能力的数据集,并不是说一定要超过特定TB值得数据集才能算是大数据。国际数据公司(IDC)从四个特征定义大数据,即海量的数据规模(Volume)、快速的数据流转和动态的数据体系(Velocity)、多样的数据类型(Variety)和巨大的数据价值(Value)。大数据几乎渗透到国民经济的所有部门,应用领域涉及信息服务、智慧城市、金融、制造业、国家安全和科学研究等。

如今开源大数据技术已经成熟,凭借其低成本和高扩展性的特点,推动了很多企业的数据汇聚、加工向大数据集群处理模式的转变。在大数据时代,数据资产化和价值化成为企业的核心竞争力,如何完成对爆发式增长的数据的处理成为企业实际的问题,目前,大数据平台下的数据处理分为批处理技术和实时处理技术,批处理工具包含Mapreduce、hive、spark以及衍生出来的impla、pig、和tez等技术,实时处理工具包括strom、和spark-staream以及相关配套的技术redis、kafka、和hbase等,如此多的工具就是为了满足在大数据环境下的数据处理。每个工具都有自己单独的任务提交与管理方式,并且往往主要针对特定应用场景,而现实中大数据处理一般都是混合型场景,因此进行大数据处理时往往会部署多种大数据处理工具,技术人员需要学习数据处理工具实在太多太杂,学习难度极高,大数据人才及其难得,对于企业人力成本也是不可承受之重,阻碍了大数据平台的普及,影响了行业发展。



技术实现要素:

本发明的目的在于提供一种数据处理引擎,能够以统一的配置根据用户需求智能选择数据处理工具,自动完成数据处理,简化用户操作,降低数据处理难度,提升数据处理效率。

为实现上述目的,本发明提供了一种数据处理引擎,包括:规则配置模块、与所述规则配置模块关联的规则库、与所述规则库关联的规则处理模块、与所述规则处理模块关联的规则编译模块、与所述规则编译模块关联的程序管理器、与所述程序管理器关联的执行模块、与所述执行模块关联的若干大数据平台;

所述执行模块中设有多种数据处理工具;

所述规则配置模块用于提供可视化界面供用户填写数据处理的规则配置参数或SQL语句,并根据预设的编译规则自动将用户填写的规则配置参数编译成配置程序或解析用户填写的SQL语句获取规则配置参数,再将规则配置参数编译成配置程序,并将配置程序写入规则库;

所述规则库用于保存配置程序;

所述规则处理模块用于从规则库加载配置程序,并根据预设的验证项验证配置程序的是否可执行,若配置程序可执行,则将配置程序发送到规则编译模块,若配置程序不可执行,则提示不可执行以及不可执行的原因;

所述规则编译模块接收配置程序,并根据配置程序选定数据处理工具,同时将配置程序编译成选定的数据处理工具能够识别的一个或多个执行程序,并发送到程序管理器;

所述程序管理器用于根据各个执行程序的关系确定各个执行程序的执行顺序,并依次发送到执行模块;

所述执行模块用于接收执行程序,并将执行程序提交到该数据处理工具对应的大数据平台进行数据处理;

所述大数据平台用于根据执行程序进行数据处理。

所述数据处理工具包括:Hive、MYSQL、ORACLE、MAPREDUCE、PIG、SPARK、以及实时流数据处理工具。

所述执行模块还用于与大数据平台进行交互,实时监控数据处理的执行进度。

所述执行模块还用于停止大数据平台中正在执行的数据处理任务。

当选定的数据处理工具为Hive时,所述规则编译模块将配置程序封装为Hive可识别的SQL语句;

当选定的数据处理工具为MYSQL时,所述规则编译模块将配置程序封装为MYSQL可识别的MYSQL-SQL脚本;

当选定的数据处理工具为ORACLE时,所述规则编译模块将配置程序封装为ORACLE可识别的ORACLE-SQL脚本;

当选定的数据处理工具为MAPREDUCE时,所述规则编译模块依据配置程序识别规则,用代码生成器生成相应的模板代码;

当选定的数据处理工具为PIG时,所述规则编译模块依据配置程序识别规则,用代码生成器生成相应的PIG脚本;

当选定的数据处理工具为SPARK时,所述规则编译模块将配置程序将规则封装为SPARK DATAFRAME代码以及SPARK-SQL脚本

当选定的数据处理工具为实时流数据处理工具时,所述规则编译模块依据配置程序识别规则,生成实时流数据处理工具相应的配置。

所述规则配置参数包括:数据来源、数据连接条件、数据过滤条件、聚合条件、数据清理条件、以及字段映射配置。

所述字段映射配置包括:字段来源模型、来源字段、映射规则、分区规则及字段属性。

所述验证项包括:对数据连接条件、数据过滤条件、聚合条件、字段映射配置、以及数据清理条件分别进行语法验证,判断其表达式中函数对应数据处理工具是否存在以及该表达式是否符合对应数据处理工具的语法。

所述控制中心解析用户填写的SQL语句获取规则配置参数的具体过程为:控制中心根据预设的判定规则判定SQL语句的复杂程度,若SQL语句为复杂语句则将其拆分为多个子程序,再解析各个子程序获取规则配置参数,若SQL语句为非复杂语句则直接解析该SQL语句获取规则配置参数。

本发明的有益效果:本发明提供一种数据处理引擎,包括:规则配置模块、与所述规则配置模块关联的规则库、与所述规则库关联的规则处理模块、与所述规则处理模块关联的规则编译模块、与所述规则编译模块关联的程序管理器、与所述程序管理器关联的执行模块、与所述执行模块关联的大数据平台,其根据大数据处理的特点在规则配置模块中设置可视化界面供用户填写配置参数,并根据预设的编译规则自动将用户填写的规则配置参数编译成配置程序或提供可视化界面解析用户填写的SQL语句获取规则配置参数,再将规则配置参数编译成配置程序,根据配置程序智能选择数据处理工具并编译该数据处理工具可识别的执行程序进行数据处理,能够以统一的配置根据用户需求智能选择数据处理工具,自动完成数据处理,简化用户操作,降低数据处理难度,提升数据处理效率。

附图说明

为了能更进一步了解本发明的特征以及技术内容,请参阅以下有关本发明的详细说明与附图,然而附图仅提供参考与说明用,并非用来对本发明加以限制。

附图中,

图1为本发明的数据处理引擎的结构图。

具体实施方式

为更进一步阐述本发明所采取的技术手段及其效果,以下结合本发明的优选实施例及其附图进行详细描述。

请参阅图1,本发明提供一种数据处理引擎,包括:规则配置模块1、与所述规则配置模块1关联的规则库2、与所述规则库2关联的规则处理模块3、与所述规则处理模块3关联的规则编译模块4、与所述规则编译模块4关联的程序管理器5、与所述程序管理器5关联的执行模块6、与所述执行模块6关联的若干大数据平台7。

具体地,所述执行模块6中设有多种数据处理工具,其中,所述数据处理工具包括:Hive、MYSQL、ORACLE、MAPREDUCE、PIG、SPARK、以及实时流数据处理工具,所述实时流数据处理工具可以为Storm和spark-staream。

具体地,所述规则配置模块1用于提供可视化界面供用户填写数据处理的规则配置参数或SQL(Structured Query Language,结构化查询语言)语句,并根据预设的编译规则自动将用户填写的规则配置参数编译成配置程序或解析用户填写的SQL语句获取规则配置参数,再将规则配置参数编译成配置程序,并将配置程序写入规则库2。

进一步地,所述控制中心1解析用户填写的SQL语句获取规则配置参数的具体过程为:控制中心1根据预设的判定规则判定SQL语句的复杂程度,若SQL语句为复杂语句则将其拆分为多个子程序,再解析各个子程序获取规则配置参数,若SQL语句为非复杂语句则直接解析该SQL语句获取规则配置参数。

所述规则配置参数包括:数据来源、数据连接条件、数据过滤条件、聚合条件、数据清理条件、以及字段映射配置。所述字段映射配置包括:字段来源模型、来源字段、映射规则、分区规则、及字段属性。

所述规则库2用于保存配置程序。

所述规则处理模块3用于从规则库2加载配置程序,并根据预设的验证项验证配置程序的是否可执行,若配置程序可执行,则将配置程序发送到规则编译模块4,若配置程序不可执行,则提示不可执行以及不可执行的原因。

具体地,所述验证项包括:对数据连接条件、数据过滤条件、聚合条件、字段映射配置、以及数据清理条件分别进行语法验证,判断其表达式中函数对应数据处理工具是否存在以及该表达式是否符合对应数据处理工具的语法。

具体地所述规则编译模块4接收配置程序,并根据配置程序选定数据处理工具,同时将配置程序编译成选定的数据处理工具能够识别的一个或多个执行程序,并发送到程序管理器5。

具体地,所述规则编译模块4根据配置程序中的各个配置参数选择数据处理工具,比如源数据为hdfs上的文件,目标数据为Hive表,则MAPREDUCE最合适;如果源数据和目标数据都为Hive表,则Hive最合适,如果要求批处理效率要求极高,用SPARK内存计算最合适,此外,所述规则编译模块4由用户手动指定一个数据处理工具。

进一步地,当选定的数据处理工具为Hive时,所述规则编译模块4将配置程序封装为Hive可识别的SQL语句;当选定的数据处理工具为MYSQL时,所述规则编译模块4将配置程序封装为MYSQL可识别的MYSQL-SQL脚本;当选定的数据处理工具为ORACLE时,所述规则编译模块4将配置程序封装为ORACLE可识别的ORACLE-SQL脚本;

当选定的数据处理工具为Hive、MYSQL、或Oracle时,执行程序的编译过程即SQL脚本封装过程包括:根据配置参数识别来源表关系、来源主模型、连接模型、连接模型的连接条件、过滤条件;拼装FROM-SQL片段,并且如果来源表是一个子程序时,递归解析子程序SQL,再进行拼装;根据配置参数识别总的过滤条件,封装SQL过滤条件;根据配置参数识别是否有汇总,若有则拼装group by子句;根据字段映射规则识别SELECT查询字段,拼装SELECT查询字段,使得字段别名和表别名的一一对应关系;根据配置参数识别是否是UNION,UOION ALL连接关系,如果是,递归拼装UNION子句;根据配置参数识别数据清理条件,根据数据清理条件的不同拼装程序执行前的数据清除语句;根据配置参数识别规则是否有主键剔重,根据执行引擎不同,进一步封装剔重语句;根据配置参数识别字段是否有四则运算规则,最外层再封装四则运算语句。

当选定的数据处理工具为MAPREDUCE时,所述规则编译模块4依据配置程序识别规则,用代码生成器生成相应的模板代码;

当选定的数据处理工具为实时流数据处理工具时,所述规则编译模块4依据配置程序识别规则,生成实时流数据处理工具相应的配置。

当选定的数据处理工具为MAPREDUCE、或实时流数据处理工具时,执行程序的编译过程具体为:数据加载:根据连接规则和表数据源规则,编译加载表数据到内存的代码,加载过程中如果数据有过滤规则,生成比对过滤的代码过滤数据;数据连接:识别连接条件,解析为字段连接关系,生成连接比对代码,将数据处理成宽表,字段值扩展;数据汇总:识别汇总字段,汇总方法,进行reduce代码生成,生成汇总数据;数据装载:将计算后的结果装载至目标表。

当选定的数据处理工具为SPARK时,所述规则编译模块4将配置程序将规则封装为SPARK DATAFRAME代码以及SPARK-SQL脚本。

当所述选定的数据处理工具为SPARK时,执行程序的编译过程具体为:数据加载:根据连接规则和表数据源规则,编译加载表数据到内存的SPARKDATAFRAME代码,并将表按照一定的命名规则定义为内存临时表;数据处理:按照SQL生成步骤编译SQL语句,利用SPARK-SQL执行SQL语句;数据装载:将计算后的结果装载至目标表。

当选定的数据处理工具为PIG时,所述规则编译模块4依据配置程序识别规则,用代码生成器生成相应的PIG脚本;

具体地,所述程序管理器5用于根据各个执行程序的关系确定各个执行程序的执行顺序,并依次发送到执行模块6。

进一步地,所述程序管理器5根据各个执行程序之间的依赖关系确定各个执行程序的执行顺序,例如一个执行程序依赖另一个执行程序的结果,则将另一个执行程序优选执行。

具体地,所述执行模块6用于接收执行程序,并将执行程序提交到该数据处理工具对应的大数据平台7进行数据处理。所述大数据平台7用于根据执行程序进行数据处理。

进一步地,所述执行模块6还用于与大数据平台7进行交互,实时监控数据处理的执行进度。所述执行模块6还用于停止大数据平台7中正在执行的数据处理任务,即封装Shell命令,杀死相应的大数据平台任务。

详细地,当选定的数据处理工具为Hive时,向Hive对应的大数据平台提交任务的过程为:连接到Hive SERVER,提交相应的SQL语句,等待任务的执行,如果任务执行报错,返回错误,否则返回成功;

当选定的数据处理工具为MYSQL时,向MYSQL对应的大数据平台提交任务的过程为:JDBC连接到大数据平台,提交相应的MYSQL-SQL脚本执行,等待任务的执行,如果任务执行报错,返回错误,否则返回成功;

当选定的数据处理工具为ORACLE时,向ORACLE对应的大数据平台提交任务的过程为:JDBC连接到大数据平台,提交相应的ORACLE-SQL脚本,等待任务的执行,如果任务执行报错,返回错误,否则返回成功;

当选定的数据处理工具为MAPREDUCE时,向MAPREDUCE对应的大数据平台提交任务的过程为:将生成的代码进行自动打包成JAR(Java Archive File,Java归档文件),放置在一个临时目录下,用hadoop jar命令向大数据平台提交任务,等待任务的执行,如果任务执行报错,返回错误,否则返回成功;

当选定的数据处理工具为PIG时,向PIG对应的大数据平台提交任务的过程为:将生成的脚本生成一个脚本文件放置在一个临时目录,用pig命令提交任务到hadoop执行,等待任务的执行,如果任务执行报错,返回错误,否则返回成功;

当选定的数据处理工具为实时流数据处理工具时,向实时流数据处理工具对应的大数据平台提交任务的过程为:将配置通过接口(API)的方式提交进行运行,等待API的执行,执行成功返回继续执行下一条数据,不成功则记录失败数量,失败原因,失败数据;

当选定的数据处理工具为SPARK时,向SPARK对应的大数据平台提交任务的过程为:将生成的代码进行自动打包成JAR,放置在一个临时目录下,生成的SQL脚本生成文件放置为另外一个目录下,用SPARK SUBMIT命令提交Java包和SQL资源文件,等待任务的执行,如果任务执行报错,报错返回,否则成功返回。

综上所述,本发明提供一种数据处理引擎,包括:规则配置模块、与所述规则配置模块关联的规则库、与所述规则库关联的规则处理模块、与所述规则处理模块关联的规则编译模块、与所述规则编译模块关联的程序管理器、与所述程序管理器关联的执行模块、与所述执行模块关联的大数据平台,其根据大数据处理的特点在规则配置模块中设置可视化界面供用户填写配置参数,并根据预设的编译规则自动将用户填写的规则配置参数编译成配置程序或提供可视化界面解析用户填写的SQL语句获取规则配置参数,再将规则配置参数编译成配置程序,根据配置程序智能选择数据处理工具并编译该数据处理工具可识别的执行程序进行数据处理,能够以统一的配置根据用户需求智能选择数据处理工具,自动完成数据处理,简化用户操作,降低数据处理难度,提升数据处理效率。

以上所述,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思作出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1