ETL开源工具,Kettle使用方法

ETL开源工具,Kettle使用方法
ETL开源工具,Kettle使用方法

ETL开源工具,Kettle使用方法

简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle可以在https://www.360docs.net/doc/d918960867.html,/网站下载到。

注:ETL,是英文Extract-Transform-Load 的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。ETL 一词较常用在数据仓库,但其对象并不限于数据仓库。

下载和安装

首先,需要下载开源免费的pdi-ce软件压缩包,当前最新版本为5.20.0。

下载网址:https://www.360docs.net/doc/d918960867.html,/projects/pentaho/files/Data%20Integration/然后,解压下载的软件压缩包:pdi-ce-5.2.0.0-209.zip,解压后会在当前目录下上传一个目录,名为data-integration。

由于Kettle是使用Java开发的,所以系统环境需要安装并且配置好JDK。

?Kettle可以在https://www.360docs.net/doc/d918960867.html,/网站下载

? 下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。运行Kettle

进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat 或Kettle.exe文件。Linux用户需要运行spoon.sh文件,进入到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)

3)HBase(0.94.19)。

Pentaho Shim(社区版)目前支持的Hadoop版本:

参考:

https://www.360docs.net/doc/d918960867.html,/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distr o+and+Version

注:从上表中看出它不支持hadoop 1.2.x版本。

解决办法是使用HDP13的插件(基于hadoop-1.0.3/hbase-0.94.6)替代,步骤如下:

1)从https://https://www.360docs.net/doc/d918960867.html,/50-hdp12下载hdp13的shim插件。

2)解压到plugins/pentaho-big-data-plugin/hadoop-configurations目录下,目录名为hdp13。

3)进入plugins/pentaho-big-data-plugin目录,修改plugin.properties文件中的active.hadoop.configuration属性为,缺省值为hadoop-20,如下:active.hadoop.configuration=hdp13

3)替换掉hdp13/lib目录下与Hbase和hadoop有关的Jar包,拷贝一份hbase-site.xml到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。

参考文档:

https://www.360docs.net/doc/d918960867.html,/Documentation/5.2/0L0/0Y0/0F0/040/000/000/030

1. 从下面网址下载weblogs_hbase.txt.zip压缩文件作为文本文件数据源导入:

https://www.360docs.net/doc/d918960867.html,/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} 应该返回数据的行数。

相关主题
相关文档
最新文档