一种面向大数据的ETL方法和装置
技术领域
本发明涉及ETL技术领域,尤其涉及一种面向大数据的ETL方法和装置。
背景技术
近几年来,互联网高速发展,社交网络逐渐走向成熟,云计算、物联网应用更加丰富,软件和硬件技术不断创新,这些变化使得政府和企业获得比以往任何时期都要多的数据,并且拥有了分析这些海量数据的计算能力和方法。目前,大数据已经成为一种像货币和黄金一样具有很大价值的经济资产,通过分析挖掘这些数据包含的潜在信息,可以推动企业,社会的发展。这些信息蕴含着巨大的商业价值,而对数据挖掘有意义的数据仅占其中的一小部分,因此为避免浪费不必要的时间,需要通过各种技术手段,把数据转换为信息、知识,而ETL(抽取-转换-装载)则是一种重要的技术手段。
ETL,是Extraction-Transformation-Loading的缩写,即数据抽取(Extract)、转换(Transform)、装载(Load)的过程,它是构建数据仓库的重要环节。ETL是将不同业务系统的数据抽取出来,并将不同数据源的数据进行清洗转换整合后加载到数据仓库中的过程,目的是将分散,标准不一致的数据整合起来,成为联机分析处理,数据挖掘的基础。
大数据环境下出现了很多数据处理分析的开源项目,以Hive为代表的基于SQL语言的大数据查询工具;从Google的Dremel系统延伸出的实时查询项目(impala);像PIG,Jaql的类脚本ETL处理工具;架构在Hadoop上的Java Api库(mapreduce算法包)。但这些开源项目的使用都是需要一定的编程基础的而且没有方便的UI界面,对数据分析人员还是不方便使用的。
虽然传统ETL工具,如kettle,talend在bigdata领域做了一定的扩展,提供了图形化的拖拽界面,但是学习使用成本高,并且部门组件在大数据环境下执行效率不理想。并且目前业界使用的ETL开源工具,没有可视化的图形界面或者图形界面使用不方便对非技术人员学习使用成本较高。而现有像Sqoop的大数据数据抽取工具,执行脚本冗长,需要操作人员具有一定的使用基础,对操作人员要求较高。另外,对于传统ETL工具,虽然kettle,talend在bigdata领域做了一定的扩展,提供了图形化的拖拽界面,但是学习使用成本高,并且部门组件在大数据环境下执行效率不理想。
发明内容
为解决上述问题,本发明提出了一种面向大数据的ETL方法和装置。
一方面,本发明实施例提供了一种面向大数据的ETL方法,包括:
获取同步作业的参数配置模板;
根据参数配置模板,对同步作业进行作业参数配置;
根据作业参数配置,通过ETL方法对待同步数据进行同步与清洗。
可选的,所述参数至少包括:参数名、输入路径、输出路径、数据字段范围、数据类型上述中的一种或多种。
可选的,所述进行作业参数配置具体为:通过一个或多个能写入参数的配置模板,对待同步数据进行参数配置。
可选的,所述待同步数据包括:FTP服务器、大数据平台、传统数据库中的一个或多个。
可选的,所述对数据进行同步包括:对FTP服务器与大数据平台之间进行数据同步,传统数据库与大数据平台之间进行数据同步,大数据平台内部之间的数据进行同步。
可选的,所述对数据进行同步之前还包括:对同步的数据匹配和过滤,并对匹配和过滤后的数据处理和合并。
在另一个方面,本发明实施例提供了一种面向大数据的ETL装置,包括:
配置文件获取模块,用于获取同步作业的参数配置模板;
参数配置模块,用于根据参数配置模板,对同步作业进行作业参数配置;
数据同步模块,用于根据作业参数配置,通过ETL方法对待同步数据进
行同步。
可选的,所述对待同步的数据进行参数配置至少包括:配置数据的输入路径、输出路径、数据字段范围、数据类型中的一种或多种。
可选的,所述对数据进行同步包括:对FTP服务器与大数据平台之间进行数据同步,传统数据库与大数据平台之间进行数据同步,大数据平台内部之间的数据进行同步。
可选的,该装置还包括:
清洗与转换模块,用于在数据同步之前对同步的数据匹配和过滤,并对匹配和过滤后的数据处理和合并。
有益效果如下:
可以实现多种数据源间数据的导入导出功能;可以通过可视化界面的简单配置,实现基于hdfs数据的多种数据转换操作,并将这些操作封装到一个MapReduce作业中完成;该工具提供多种ETL操作的作业模板,用户只需要在作业提交后输入指定参数即可。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明实施例中一种面向大数据的ETL方法的流程示意图;
图2示出了本发明实施例中参数配置界面示意图;
图3示出了本发明实施例中数据清洗流程配置界面示意图;
图4示出了本发明实施例中输入路径配置界面示意图;
图5示出了本发明实施例中输出路径配置界面示意图;
图6示出了本发明实施例中多种数据源之间的数据同步示意图;
图7示出了本发明清洗转换链路示意图;
图8示出了本发明实施例一种面向大数据的ETL装置的结构示意图;
图9示出了本发明另一实施例一种面向大数据的ETL装置的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:
对于传统ETL工具,虽然kettle,talend在bigdata领域做了一定的扩展,提供了图形化的拖拽界面,但是学习使用成本高,并且部门组件在大数据环境下执行效率不理想。另一方面,目前业界使用的ETL开源工具,没有可视化的图形界面或者图形界面使用不方便对非技术人员学习使用成本较高。而现有像Sqoop的大数据抽取工具,执行脚本冗长,需要操作人员具有一定的使用基础,对操作人员要求较高。
基于此,本发明实施例提出了一种面向大数据的ETL方法和装置,下面进行说明。
图1出了本申请实施例中一种面向大数据的ETL方法的流程示意图,如图所示,所述ETL可视方法可以包括如下步骤:
步骤101、获取同步作业的参数配置模板;
步骤102、根据参数配置模板,对同步作业进行作业参数配置;
步骤103、根据作业参数配置,通过ETL方法对待同步数据进行同步与清洗。
具体实施中,通常根据待同步数据的同步需求确定一个同步作业,并且为同步作业确定参数配置模板,由参数配置模板对同步作业进行作业参数配置,对于一类的同步数据同步需求通常可以用一个同步作业实现同步。此处同步即ETL中的Extract(抽取),Load(加载),清洗为ETL中的Transform(转换)。
待同步的数据可以是各种数据库中的数据,例如可以是数据库hdfs,hive,hbase中的数据。进行数据同步时,首先对数据进行参数配置,具体的,采用图形化用户界面hue提供的参数模板进行配置。
通过参数模板参数配置时,参数至少包括数据的输入路径、输出路径、数据字段范围、数据类型中的一种或多种。ETL系统可以将所有待同步数据的提交和管理通过Hue平台实现,Hue平台提供了一个workflow,当用户提交配置需求时,会弹出参数的配置界面,当参数配置完成后,将数据提交到hadoop集群中并由oozie进行管理。如图2所示,参数配置时提供了一个可以直接输入配置参数名称的可视化图形界面,例如可以对用户名称,本地文件路径,时间以及用户密码等进行具体的设置,增强了可视化程度,提高了用户体验。
对于复杂的工作任务,ETL处理方法可以在一个工作流workflow下添加一个或多个子工作流sub workflow进行参数设置。也即在具体实施过程中,参数配置界面下可以进一步包括一个或多个子参数配置界面,通过Coordinator设置定时执行的作业任务。如图3-5所示,分别为数据清洗流程配置,输入路径配置,输出路径配置界面,上述配置过程能够针对具体的任务环境进行配置,提供专门的参数模板,便于检查错误。
数据同步时,对多种数据源的同步包括:对FTP服务器与大数据平台之间的数据同步、传统数据库与大数据平台之间的数据同步、大数据平台内部的数据同步中的一个或多个。如图6所示为多种数据源之间的数据同步示意图。图中FTP服务器、本地数据与HDFS之间进行数据同步,传统数据库(MySql、Oracle等)与大数据平台(Hdfs,Hive,Hbase)之间数据同步,大数据平台内部数据源(Hdfs,Hive,Hbase)之间的双向同步。
传统数据库与大数据平台(Hdfs,Hive,Hbase)数据同步使用的是Sqoop,传统数据库间通过导入工具(mysqldump,ora2pg,dblink)同步。同步时,通过Hue工具,对每一类的数据同步设计了模板,用户执行的时候只需要输入提示界面指定的参数即可。大数据平台内部数据源(Hdfs,Hive,Hbase)间的数据同步,利用各个组件的api构建高效的作业,用户同样在执行时使用相应的模板,根据提示界面输入指定的参数。
具体实施例中,对数据同步之前还包括对数据的清洗与转换。
数据转换是按照预先设计好的规则将抽取的数据进行转换,使本来异构的数据格式得到统一。数据转换往往将不同数据源抽取到的不完整数据、错误数据、重复数据进行清洗转换,使得之后进行统计分析,数据挖掘的数据拥有相同的数据标准。
本实施例中各种数据源之间的数据转换时,一方面要保证功能的完整性,另一方面要保证转换操作的性能。对于大数据量的数据转换,通常可以采用基于MapReduce框架处理作业。如下图7所示,本实施例采用了链式MapReduce框架,程序封装了各个清洗组件的功能,通过解析参数将多个清洗操作拼接在一个MapReduce中。例如,可以对要清洗转换的数据采用框架TextInputETLMapper和框架TextInputETLReducer进行清洗转换,具体的清洗转换条件可以是对是否包含某一个字符串,某一个字段进行过滤,或者在某一个数值范围内进行过滤,也可以是用某一个字符或单词对另一个字符或单词的替换。数据经过第一个框架的清洗转换之后,还可以再经过第二框架TextInputETLReducer进一步处理,对数据进一步的筛选合并等操作。例如,TextInputETLReducer对满足相同key哈希值(TextInputETLMapper输出key,value对,key的hash值相同的数据会进入到同一个TextInputETLMapper)的数据进行统计合并。
有益效果:
可以实现多种数据源间数据的导入导出功能;可以通过可视化界面的简单配置,实现基于hdfs数据的多种数据转换操作,并将这些操作封装到一个MapReduce作业中完成;该工具提供多种ETL操作的作业模板,用户只需要在作业提交后输入指定参数即可。
基于同一发明构思,参见图8所示的实施例,本实施例提供了一种面向大数据的ETL装置,由于这些装置解决问题的原理与一种面向大数据的ETL方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。
参见图8,该装置,包括:
配置文件获取模块801,用于获取同步作业的参数配置模板;
参数配置模块802,用于根据参数配置模板,对同步作业进行作业参数配置;
数据同步模块803,用于根据作业参数配置,通过ETL方法对待同步数据进行同步。
可选的,对待同步的数据进行参数配置至少包括配置数据的输入路径、输出路径、数据字段范围、数据类型中的一种或多种。
可选的,所述对数据进行同步包括对FTP服务器与大数据平台之间进行数据同步,传统数据库与大数据平台之间进行数据同步,大数据平台内部之间的数据进行同步。
参加图9,该装置包括配置文件获取模块901,参数配置模块902,清洗与转换模块903,数据同步模块904,其中清洗转换模块903用于在数据同步之前对同步的数据匹配和过滤,并对匹配和过滤后的数据处理和合并。
有益效果:
可以实现多种数据源间数据的导入导出功能;可以通过可视化界面的简单配置,实现基于hdfs数据的多种数据转换操作,并将这些操作封装到一个MapReduee作业中完成;该工具提供多种ETL操作的作业模板,用户只需要在作业提交后输入指定参数即可。
上述实施例中,均可以采用现有的功能元器件模块来实施。例如,处理模块可以采用现有的数据处理元器件,至少,现有定位技术中采用的定位服务器上便具备实现该功能元器件;至于接收模块,则是任意一个具备信号传输功能的设备都具备的元器件;同时,处理模块进行的A、n参数计算、强度调整等采用的都是现有的技术手段,本领域技术人员经过相应的设计开发即可实现。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。