ETL开源工具kettle学习笔记
一 Kettle配置与部署
参考1:http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html
1.下载kettle安装包
Kettle可以在http://kettle.pentaho.org/网站下载。
下载kettle压缩包,解压缩到任意本地路径。
2.安装和配置jdk
3.运行kettle
在windows中执行spoon.bat,在类unix系统中执行spoon.sh。
二 kettle文档教程
官方教程
https://help.pentaho.com/Documentation/7.0/0J0/0C0(最新版)
https://help.pentaho.com/Documentation/6.0/0J0/0C0(第6版)
csdn博客(翻译)
参考2:http://blog.csdn.net/column/details/easykettle.html
三 kettle的HelloWorld示例
http://blog.csdn.net/neweastsun/article/details/38729887
环境准备
开始设计一个转换之前,我们先创建一个文件夹Tutorial,我们将保存所有的文件到该文件夹中,然后创建一个csv文件,内容就是前面人员信息,你可以复制到文本文件中,然后命名为list.csv。
设计转换
有三个子任务组成:
ü 创建一个转换
ü 设计转换中的步骤和连接
ü 配置步骤和连接
创建转换
1) 点击文件菜单中新建,或者通过快捷键Ctrl+N,选择转换.
2) 在“主对象树”视图中点右击转换1,然后点击设置,或者在设计界面中右击,然后点击转换设置,或者使用Ctrl+T快捷方式。
3) 在设置窗口中可以设置转换的相关属性;我们这里写名称和描述,然后保存。
4) 保存该转换到Tutorial文件夹中,命名为hello,最终创建了hello.ktr文件。
步骤和连接

pan命令
pan是在终端执行转换的工具。在window是pan.bat,其他平台是pan.sh,在安装目录可以找到。如果你直接运行pan,不加任何选项,可以看到pan打印所有的选项。
简单命令如下:
pan /file <Job_path>/Hello.ktl/norep
/norep 选项是让spoon不要去连接资源库;
/file是转换文件的名称;
<job_path>是我们教程文件夹,如:c:/tutorial 或/home/tutorial
其他选项在运行时是缺省值;
你输入命令并确定后,转换同样被执行。这时,日志被打印到终端界面中,也可以设置日志打印到文件中。日志的格式有点变化,但内容和图形界面一致。
四 转换的主对象树Main Tree介绍

Main Tree菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。
DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。
Steps:一个transformation中应用到的环节列表
Hops:一个transformation中应用到的节点连接列表
五 转换的核心对象树Core Objects介绍
Core Objects菜单列出的是transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
Input:输入环节
Output:输出环节
Lookup:查询环节
Transform:转化环节
Joins:连接环节
Scripting:脚本环节

六 转换常用环节
|
类别 |
环节名称 |
功能说明 |
|
Input |
文本文件输入 |
从本地文本文件输入数据 |
|
表输入 |
从数据库表中输入数据 |
|
|
获取系统信息 |
读取系统信息输入数据 |
|
|
Output |
文本文件输出 |
将处理结果输出到文本文件 |
|
表输出 |
将处理结果输出到数据库表 |
|
|
插入/更新 |
根据处理结果对数据库表机型插入更新,如果数据库中不存在相关记录则插入,否则为更新。会根据查询条件中字段进行判断 |
|
|
更新 |
根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止 |
|
|
删除 |
根据处理结果对数据库记录进行删除,若需要删除的数据在数据库表中无记录,则会报错停止 |
|
|
Lookup |
数据库查询 |
根据设定的查询条件,对目标表进行查询,返回需要的结果字段 |
|
流查询 |
将目标表读取到内存,通过查询条件对内存中数据集进行查询 |
|
|
调用DB存储过程 |
调用数据库存储过程 |
|
|
Transform |
字段选择 |
选择需要的字段,过滤掉不要的字段,也可做数据库字段对应 |
|
过滤记录 |
根据条件对记录进行分类 |
|
|
排序记录 |
将数据根据某以条件,进行排序 |
|
|
空操作 |
无操作 |
|
|
增加常量 |
增加需要的常量字段 |
|
|
Scripting |
Modified Java Script Value |
扩展功能,编写JavaScript脚本,对数据进行相应处理 |
|
Mapping |
映射(子转换) |
数据映射 |
|
Job |
Sat Variables |
设置环境变量 |
|
Get Variables |
获取环境变量 |
七 作业主对象树Main Tree介绍

Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看。
DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。
Job entries:一个Job中引用的环节列表
八 作业核心对象树Core Objects介绍
Job entries菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
每一个环节可以通过鼠标拖动来将环节添加到主窗口中。
并可通过shift+鼠标拖动,实现环节之间的连接。

九 作业常用环节
|
类别 |
环节名称 |
功能说明 |
|
Job entries |
START |
开始 |
|
DUMMY |
结束 |
|
|
Transformation |
引用Transformation流程 |
|
|
Job |
引用Job流程 |
|
|
Shell |
调用Shell脚本 |
|
|
SQL |
执行sql语句 |
|
|
FTP |
通过FTP下载 |
|
|
Table exists |
检查目标表是否存在,返回布尔值 |
|
|
File exists |
检查文件是否存在,返回布尔值 |
|
|
Javascript |
执行JavaScript脚本 |
|
|
Create file |
创建文件 |
|
|
Delete file |
删除文件 |
|
|
Wait for file |
等待文件,文件出现后继续下一个环节 |
|
|
File Compare |
文件比较,返回布尔值 |
|
|
Wait for |
等待时间,设定一段时间,kettle流程处于等待状态 |
|
|
Zip file |
压缩文件为ZIP包 |
ETL开源工具kettle学习笔记的更多相关文章
- Kettle学习笔记(一)— 环境部署及运行
目录 Kettle学习笔记(一)-环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle简介 Ket ...
- Kettle学习笔记(二)— 基本操作
目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 打开Kettle 打开 ...
- GNU工具链学习笔记
GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和 ...
- Kettle学习笔记(四)— 总结
目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle中设置编码 ...
- kettle学习笔记(一)——入门与安装
一.概述 1.kettle是什么 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定.中文名称叫水壶,该项目的主程序 ...
- Windows驱动开发工具 WDK 学习笔记(1)
目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统Windows(必须的).总之,就是在一个带了操作系统的高性能开发板上的驱动程序开发. 性质:纯属业余爱好 1 ...
- 前端自动化构建工具 gulp 学习笔记 一、
一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...
- Kettle学习笔记(一)
Kettle简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,s数据抽取高效稳定.Kettle 中文名称叫水壶,该项目的主程序员MATT ...
- Kettle 学习笔记
一直用SSIS做ETL,越来越感觉这玩意不是亲生的.因此萌生换ETL工具的想法,不过Kettle社区版没什么调度系统,貌似错误处理也不是很方便,且先了解吧. 本文简略的记录了整个软件的使用流程. 开始 ...
随机推荐
- SSH项目搭建(一)
本章不讲项目,讲一下SSH的下载 一.Struts2 1.通过百度进入官网 2.点击Download>>>>Full Releases>>>>你想要的版 ...
- TCP、UDP详解
OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务. TCP 中常说的握手指的是:连接的定义和连接的建立 ...
- How to Change the Size of a Box-Plot Label in MATLAB
Type "load carsmall" to load a sample data set included with MATLAB. Type "boxplot(Ho ...
- 博客迁移至“零一积流|it-refer.com”
虽然在博客园写了没几篇文章,考虑到个人发展,自己还是建立一个独立的站点:零一积流. 以后直接在自己网站上写东西了,此处只用做文章收藏.
- Encode Adjacent Letters
Encode a string by counting the consecutive letter. (i.e., "aaaabbxxxyyz" might become &qu ...
- 【解题报告】13级个人结业赛(二) ——动(dou)态(bu)规(hui)划(zuo)专场
额.果然是动(dou)态(bu)规(hui)划(zuo)专场... A: 翻倍序列 dp[i][j]表示第i个位置是j的情况的个数那么dp[i][j]=∑dp[i-1][k] (j%k==0)初始 ...
- HihoCoder1164 随机斐波那契(概率DP)
描述 大家对斐波那契数列想必都很熟悉: a0 = 1, a1 = 1, ai = ai-1 + ai-2,(i > 1). 现在考虑如下生成的斐波那契数列: a0 = 1, ai = aj + ...
- SVN 如何更新整个目录
SVN 有时会遇到更新整个目录的情况, 比如依赖的某个库有了新版本, 需要更新. 这个时候的处理可能需要注意一些问题.(直接跳到最后看结论) 举个例子: 根文件是 test, 里面用 external ...
- nginx-unit docker 运行以及php &&golang 简单使用
备注: nginx unit nginx 开源的新的nginx 开发平台,但是说白了,个人感觉一般,而且官方文档也不是很好, api 接口目前暂时文档比较....,以前写过虚拟机&& ...
- Oracle数据库安装图文操作步骤1
Oracle数据库安装图文操作步骤 一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官 ...