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社区版没什么调度系统,貌似错误处理也不是很方便,且先了解吧. 本文简略的记录了整个软件的使用流程. 开始 ...
随机推荐
- iOS开发之利用IJKPlayer+nginx+rtmp搭建直播的推流和拉流
最近项目中想实现直播的功能,所以研究了一段时间的直播功能,当然也是在别人的基础上不断的学习实现的,所以记录一下,希望对大家有所帮助. 直播拉流功能: 这里使用了开源的IJKPlayer第三框架,ijk ...
- 使用PullToRefreshListView时遇到Item点击事件失效问题 解决方法
最近在自己的项目中使用到了以下开源项目: https://github.com/nanchen2251/pullToRefreshDemo 相关介绍博客如下: http://www.cnblogs.c ...
- jquery.i18n.properties.js hacking
/****************************************************************************** * jquery.i18n.proper ...
- 自己整合的SSM框架 maven坐标大全
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Unicode字符转换成字符串
/*** * Unicode字符转换成字符串 * @param str * Unicode字符 * @return * String * * @author WXW */ public static ...
- eclipse显示/隐藏代码行号
Window→Preferences→General→Editors→TextEditors→勾选Show line numbers
- qt creator在Qt5中中文显示的问题
当我们用Qt Creater时,经常出会出现如下问题: 处理方法如下:用记事本打开你的源代码,然后点另存为,utf-8,编码覆盖,这时中文就没问题了但是会乱码.在字符串前加个宏QStringLiter ...
- python(十二):网络编程之ISO/OSI模型
互联网(Internet)是依据操作系统,在计算机硬件的基础上建立起的通讯机制.它依赖于TCP/IP协议栈. 一.ISO/OSI模型 1.ISO七层模型与OSI五层模型 它们将计算机抽象成了具有层级关 ...
- idea Java spring 入门 demo
根据这个 来实现 理解 https://www.cnblogs.com/xing901022/p/3963962.html 这里没有说如何导入包,现在我们用 idea 来实现 新建项目结构后 RUN ...
- pipeline的存储代码
在spider中最后一个函数返回item时会scrapy会调用pipeline里面的 process_item(self, item, spider):函数并传入item,spider等参数在这里可以 ...