KETTLE使用自己总结的Kettle使用方法和成果说明
简介
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出.
    Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做.
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle可以在kettle。pentaho。org/网站下载到。
注:ETL,是英文 Extract—Transform—Load 的缩写,用来描述将数据从来源端经过萃取(extra
ct)、转置(transform)、加载(load)至目的端的过程.ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
下载和安装
首先,需要下载开源免费的pdi-ce软件压缩包,当前最新版本为5.20。0。
下载网址:sourceforge/projects/pentaho/files/Data%20Integration/
然后,解压下载的软件压缩包:pdi—ce—5。2.0.0—209.zip,解压后会在当前目录下上传一个目录,名为data—integration。
由于Kettle是使用Java开发的,所以系统环境需要安装并且配置好JDK。
žKettle可以在http:///网站下载
ž下载kettle压缩包,因kettle为绿软件,解压缩到任意本地路径即可。
运行Kettle
进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat或文件.Linux用户需要运行spoon。s件,进入到Shell提示行窗口,进入到解压目录中执行下面的命令:
# chmod +x spoon。sh
# nohup ./spoon。sh &  后台运行脚本
这样就可以打开配置Kettle脚本的UI界面。
Kettle的简单使用
首先,点击“文件-新建—转换"菜单创建一个转换。
我们可以看到转换的主对象数和核心对象区域,然后我们添加一个DB连接。
选择“注对象数”,双击“转换2”标签下的“DB连接”会弹出一个设置窗口。填入连接名称,选择连接类型,配置数据库设置,然后测试下配置是否正确.
由于Kettle没有将所有的数据库的Driver文件集成,所以如果想连接指定的数据库,需要自己下载JDBC驱动,放入到解压目录下的lib目录中。添加完JDBC驱动后,必须重启下Kettle才能加载驱动.
1)Oracle的JDBC驱动:ojdbc6.jar
2)MySQL的JDBC驱动:mysql—connector—java—5.1.32。jar
注:在转换之前需要创建转换所需的表,原始表和转换的目标表。
点击“核心对象”标签页中的“输入",选择“表输入"拖到“转换"区域.
双击“表输入"图标弹出表输入对话框,填入步骤名称,选择数据库连接,点击“获取SQL查询语句”,或者直接写入SQL语句,填写附件信息,点击“预览”按钮查看执行结果,没有错误,点击“确认”关闭对话框。
点击“核心对象”—“输出”,选择“Excel输出”拖入到转换区,双击Excel输出图标,弹出对话框,选择文件名和其它附加参数,点击确认。
点击输入表的图标,同时按下shift键,再点击输出文件,将两者连接起来。然后双击Excel输出进行配置。
最后一步就是执行kettle脚本,点击工具栏上的绿箭头即可。
点击“启动”开始转换,在转换过程中会出现转换的信息,如下图所示.
完成转换后,我们可以Excel输出目录中查看转换结果.
注:时间字段换到Excel为空,修改SELECT语句中使用TO_CHAR转换成字符串,例如:TO_CHAR(START_TIME, ’yyyy-mm—dd HH24:MM:SS') AS START_TIME
注:Excel中的记录不能超过65535条,否则会自动关闭文件,导致转换失败.
上面是一个简单的数据迁徙脚本,从数据库导出数据到EXCEL文件中。
Kettle处理HBase
本教程使用的软件版本信息如下:
1)Hadoop(1。2。1)
2)Pantaho Data Integration(5.2.0)
mysql下载完如何使用
3)HBase(0.94。19)。
Pentaho Shim(社区版)目前支持的Hadoop版本:
参考:
wiki.pentaho/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version
注:从上表中看出它不支持hadoop 1.2。x版本。
解决办法是使用HDP13的插件(基于hadoop—1。0.3/hbase—0.94.6)替代,步骤如下:
1)从https://pentaho.box/50—hdp12下载hdp13的shim插件。
2)解压到plugins/pentaho-big—data-plugin/hadoop—configurations目录下,目录名为hdp13。
3)进入plugins/pentaho—big-data—plugin目录,修改plugin。properties文件中的active。figuration属性为,缺省值为hadoop—20,如下:
active。hadoop。configuration=hdp13
3)替换掉hdp13/lib目录下与Hbase和hadoop有关的Jar包,拷贝一份l到hdp13目录下。
| hdp13/lib/pmr目录下替换后的Jar包:
    | hdp13/lib/client目录下替换后的Jar包:
* 在HBase中创建一个weblogs表,步骤如下:
    1)打开HBase shell,在命令行中输入:
hbase shell
    2)在Hbase中创建一个表,在hbase shell中输入:
create ’weblogs’, ’pageviews'
* 上面命令会创建一个带有一个列族pageviews的weblogs的表.
    3)执行quit退出HBase shell.
参考文档:
help。pentaho。com/Documentation/5。2/0L0/0Y0/0F0/040/000/000/030
1。 从下面网址下载。zip压缩文件作为文本文件数据源导入:
http://wiki。pentaho。com/download/attachments/23530622/weblogs_hbase。txt.zip
2。 从Spoon(Kettle)中,创建一个新的转换,选择“文件—新建-转换"。
点击“核心对象—输入”标签,然后把“文本文件输入"拖到画板中。
3。 双击文本文件输入,弹出文本文件输入对话框,点击“浏览…"按钮选择weblog_hbase。txt文件,点击“添加”按钮.
选择“内容”标签,清空分隔符点击“Insert TAB”按钮,选中“头部行数量"选择框,从格式的下拉菜单中选择Unix格式。
配置输入字段,从“字段”标签页中选择“获取字段”按钮,弹出可用的字段列表,询问采样的数量,输入100点击“OK"按钮.修改字段key的类型为String,长度为20。
点击“OK”按钮关闭对话框。
在“核心对象—Big Data”下,把HBase Output图标拖入到面板中。并且把文本文件输入与HBase Outpu连接起来(按住shift+拖曳)。
双击Hbase Output,在弹出对话框中输入Zookeeper的主机名和端口号。
1)Zookeeper host(s)字段中输入Zookeeper主机名,多个主机名使用逗号分隔。对于本地集使用localhost。
2)在Zookeeper port字段中,输入你的Zookeeper端口号,缺省值2181。
创建一个Hbase映射,在Create/Edit mappings标签页中告诉Pentaho在HBase中如何存
储数据。
1)点击Get table names按钮,在HBase table name的选择框中选择weblogs
2)Mapping name,输入pageviews
3)点击“Get imcoming fields”按钮
4)从Alias的key这行修改Key为Y,清除掉Column family和Column name字段,并且设置Type字段为String,点击Save mapping。
配置HBase out使用上面刚刚创建的映射。
1)进入到Configuration Connection标签页,点击Get table names。
2)点击Get table names,在Hbase table name的选择框中选择weblogs.
3)点击Get mappings for speficed table获取指定的表。
4)点击Mapping name,选择pageviews,点击“确认”按钮关闭窗口。
点击“文件—另存为”菜单保存转换,在选择目录中输入load_hbase.ktr作为文件名。
点击转换工具栏中的运行按钮运行转换,或者选择“动作-运行”菜单打开一个执行转换的窗口,点击“启动"按钮。
在Spoon接口的下面打开一个执行结果窗口,显示运行时转换的进度。在几十秒之后完成转换。
如果在转换过程中出现任何错误,将会红高亮显示,在日志标签页查看错误信息.
通过查询HBase验证数据
1)从命令行中,输入下面命令打开HBase shell:hbase shell
2)通过这个命令查询HBase:scan ’weblogs', {LIMIT =〉 10}
应该返回数据的行数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。