当前位置: 首页 > >

Kettle的使用说明

发布时间:

KETTLE 使用说明
简介
Kettle 是一款国外开源的 ETL 工具,纯 java 编写,可以在 Window、Linux、 Unix 上运行,绿色无需安装,数据抽取高效稳定。 Kettle 中文名*兴 该项目的主程序员 MATT 希望把各种数据放到一个 壶里,然后以一种指定的格式流出。 Kettle 这个 ETL 工具集,它允许你管理来自不同数据库的数据,通过提供一 个图形化的用户环境来描述你想做什么,而不是你想怎么做。 Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数 据的基础转换,job 则完成整个工作流的控制。 Kettle 可以在 http://kettle.pentaho.org/网站下载到。 注:ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端 经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。ETL 一词较常用在数据仓库,但其对象并不限于数据仓库。

下载和安装
首先,需要下载开源免费的 pdi-ce 软件压缩包,当前最新版本为 5.20.0。 下载网址:http://sourceforge.net/projects/pentaho/files/Data%20Integration/ 然后,解压下载的软件压缩包:pdi-ce-5.2.0.0-209.zip,解压后会在当前目录 下上传一个目录,名为 data-integration。 由于 Kettle 是使用 Java 开发的,所以系统环境需要安装并且配置好 JDK。 ?Kettle 可以在 http://kettle.pentaho.org/网站下载 ? 下载 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 版本:

参考: http://wiki.pentaho.com/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://pentaho.box.com/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。 参考文档: http://help.pentaho.com/Documentation/5.2/0L0/0Y0/0F0/040/000/000/030 1. 从下面网址下载 weblogs_hbase.txt.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} 应该返回数据的行数。




友情链接: