本发明属于计算机技术领域具體涉及一种大数据环境下基于Spoon的通用数据库抽取方法。
在信息化的时代每天都会产生海量的数据,例如电子商务网站的购物信息、火车票购买平台的交易信息、实时聊天工具的聊天信息、工业生产现场采集的相关信息等等为了方便管理与查阅,这些数据都会存入相应的數据库中企业、工厂、研究所等机构在处理自身拥有的海量、高增长率和多样化的信息资产时,发现已经无法使用传统的数据库管理软件进行高效的管理必须采用新的处理模式,从海量的数据中提取出有价值的信息
由此,大数据技术应运而生大数据技术的战略意义茬于对于包含有用信息的海量数据进行数据挖掘,提取出有价值的信息大数据需要特殊的技术,例如大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统
大数据环境下,海量数据存储在不同的数据库中不哃的数据库在数据结构方面往往存在较大的差别,如何快捷高效地从不同的数据库中提取出相关数据同时实现不同数据库间数据结构的轉换对于数据挖掘的实现非常关键。
为了解决上述问题本发明提供了一种大数据环境下基于Spoon的通用数据库抽取方法,其特征在于该方法包括如下步骤:
1)通过Spoon建模工具制作执行流程图;
2)执行流程图相关参数配置;
3)Spoon工具中执行测试;
4)生成可执行的模板文件;
8)设计Java调鼡的入口方法
进一步地,所述步骤2)中所述相关参数包括表输入数据库连接信息、表输出数据库连接信息、表输出数据库表、表输出字段映射配置和大数据量的分页及循环设置
进一步地,所述步骤3)中所述测试包括transformation验证和影响分析
进一步地,所述步骤4)中按Velocity模板技术嘚规则在XML中进行动态设置参数
进一步地,所述步骤5)的具体搭建要求为在Windows环境下安装JRE(Java Runtime Environment),版本要求为1.5及其以上,在类Unix环境下通过输叺的命令使得shell脚本处于可执行状态。
进一步地所述步骤6)的具体包括如下步骤:
d)通过Template的meger方法,将模板文件中设定的变量通过参数信息集合进行替换;
e)返回替换变量后可在Spoon执行的文件(XML)
进一步地,所述步骤b)中VelocityEngine每次都会创建一个新的velocity实例这样就使得每个velocity引擎都会擁有各自的实例,互不干扰
图1是数据库抽取方法的具体流程图。
为了对本发明的技术特征、目的和效果有更加清楚的理解现对照附图說明本发明的具体实施方式。
一种大数据环境下基于Spoon的通用数据库抽取方法所述的通用数据库是常见的关系数据库,如oracle,mysql,sqlserver,db2,postgresql,hbase等方法包括以丅步骤:
1)通过Spoon建模工具制作执行流程图
纯java编写,可以在Window、Linux、Unix等多种操作系统上运行数据抽取高效稳定。kettle 大数据提供了图形用户界面Spoon尣许用户在界面上方便快捷地制作执行流程图,形成transformation脚本文件transformation脚本文件用来完成针对数据的基础转换。kettle 大数据包含的工具Pan是一个数据转換引擎可以进行数据的读取、运算和写入,允许批量运行由Spoon设计的ETTL转换
(例如使用一个时间调度器)Pan是一个后台执行的程序,没有图形界媔
2)执行流程图相关参数配置
transformation中包含四个相互关联的概念,分别为Value、Row、Input Stream、Hop和Note其中Value属于Row的一部分,可以包含任何类型的数据例如字符串、浮点数、整数、日期、布尔值等。多个同时处理的Value作为统一的输入组成Row。一个操作步骤中包含的多个Row组成Input
StreamHop指的是两个状态间数据鋶的图形化表示,一个Hop总是代表一个状态的输出和另一个状态的输入Note指的是可以添加在转换过程上的描述性文字。
transformation操作需要将输出数据庫中的数据抽取出来经过相应的转换,将转换后的数据放入输入数据库考虑到关系数据库通过描述性的表格实现信息的存储,为了顺利完成transformation操作需要在transformation的Value中配置如下参数:
a)表输入数据库连接信息;
b)表输出数据库连接信息;
d)表输出字段映射配置;
e)大数据量的分頁及循环设置。
3)Spoon工具中执行测试
在图形界面通过点击相应图标进行transformation验证和影响分析transformation验证将会对每个状态进行检验,确保以设计好的顺序进行整个转换过程影响分析将会预测转换操作对于数据库可能带来的影响。
4)生成可执行的模板文件
生成过程包括以下几个步骤:
a)導出执行测试通过的配置文件(XML);
c)将设置完的XML文件另存为模板技术可执行的VM文件
在Windows环境下,需要安装JRE(Java Runtime Environment),版本要求为1.5及其以上在類Unix环境下(例如Solaris操作系统、Linux操作系统、MacOS操作系统),用户必须使得shell脚本处于可执行状态具体操作为输入如下命令:
该方法的参数为需要替换VM文件中的动态参数信息集合(JavaBean)、第3步中生成的可在Velocity中执行的模板文件所在的目录和文件名。利用Velocity技术替换VM文件参数为Spoon执行的XML文件將生成的XML文件存放在到临时目录中,具体的设计过程如下:
a)定义Velocity框架需要的Properties类在Properties类中可以进行模板编码、foreach配置、set配置、include配置、parse配置、模板加载器配置、宏配置、资源管理器配置、解析器池配置、可插入introspector配置等多种参数的配置,在此处根据实际需要放入需要替换的文件蕗径等信息;
b)定义VelocityEngine类,并使用已设置的Properties属性进行初始化在org.apache.velocity.app包下,会有Velocity和VelocityEngine这两个类里面的方法基本相同,两者的区别在于Velocity类是一个初始化单例的velocity实例的类会让多个类共享一个实例,让他们能够访问到同样的数据而VelocityEngine每次都会创建一个新的velocity实例,这样就使得每个velocity引擎都會拥有各自的实例互不干扰。为了实现velocity引擎的隔离运行此处采用VelocityEngine类,并利用Properties属性进行初始化;
d)通过Template的meger方法将模板文件中设定的变量通过参数信息集合进行替换;
e)返回替换变量后可在Spoon执行的文件(XML)。
该方法的参数为第5步骤中生成的临时文件的路径通过spoon提供的API调鼡。
8)设计Java调用的入口方法
配置步骤6中方法需要的参数信息完成数据接入操作。
以上所揭露的仅为本发明较佳实施例而已不能以此来限定本发明之权利范围,依本发明权利要求所作的等同变化仍属本发明所涵盖的范围。