KETTLE基本知识培训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 程序异常退出情况
精品课件
46
KETTLE输出日志说明
• 转换日志输出说明
• I: 当前步骤生成的记录数(从表输入、文件读入) • O:当前步骤输出的记录数(输出到文件、表) • R:当前步骤从前一步聚读取的记录数 • W:当前步骤向后面步骤抛出的记录数 • U:当前步骤更新过的记录数 • E:当前步骤处理出错的记录数
精品课件
21
基于表对表的同步
精品课件
22
基于表对表的同步
精品课件
23
基于文件到表的同步
• 新建一个转换 • 流程:从文件读取记录插入到数据库中
精品课件
24
基于文件到表的同步
精品课件
25
基于文件到表的同步
精品课件
26
基于文件到表的同步
精品课件
27
基于表到文件的同步
• 新建一个转换 • 实现从表里读取记录生成文件
• ETL是数据抽取(Extract)、清洗(Cleaning)、转换 (Transform)、装载(Load)的过程。
精品课件
3
ETL实现方式
• 手工编码,编写脚本,Java,Python
• 商业ETL 工具软件
• Informatica • IBM DataStage • Microsoft SSIS • Oracle ODI
精品课件
42
KETTLE输出日志说明
• 日志输出是检查程序运行情况的重要手段,也 是程序维护必不可少的环节。
• KETTLE在日志输出方面也有很好的控制功能。
KETTLE日志输出共分七个等级:没有日志
(Nothing)、错误日志(Error)、最小日志
(Minimal)、基本日志(Basic)、详细日志
精品课件
12
• K(eTtrtalnes的forSmpaotoinon转设)计和换器作和用业来(作设Jo业计b)转。换
• 转换主要是针对数据的各种处理,一个转换里可以包含 多个步骤(Step)。
• 作业是比转换更高一级的处理流程,一个作业里包括多 个作业项(Job Entry),一个作业项代表了一项工作, 转换也是一个作业项。
if(name == null)
return “hello “ + str;
else
return “hello “ + name; //返回一个字符串
}
writeToLog(“m”, sayHello());//方法调用
精品课件
35
JAVASCRIPT的基本应用
异常处理 try…catch…
try{
for(var i=0; i<arr.length; i++){
if(arr[i] == 2){ Alert(“the value is ”+ arr[i]); }
}
精品课件
34
JAVASCRIPT的基本应用
方法定义
var str = “whj”; //全局变量
function sayHello(name){ //带一个参数的方法
• writeToLog(“m”, str); //打印字符串到日志输出
• var num = 1; //定义一个整型
• var arr = new Array(); //定义一个数组 无任何元素
• arr.push(“添加一个元素到数组未位”);
• var arr1= new Array(3, “FTP补采”); //定义一个数组
KETTLE 学习资料
• 1./、 /
• 2.
• 3.《Kettle Cook Book》
• 4.《Pentaho 3.2 Data Integration Beginner’s Guide》5.《Kettle Solution》
精品课件
36
JAVASCRIPT的基本应用
精品课件
37
作业调用作业、转换
• 文件->新建->作业 • 作业可以调用作业,这样方便流程控制。
精品课件
38
作业调用作业、转换
精品课件
39
作业调用作业、转换
• 作业也可以调用转换
精品课件
40
作业调用作业、转换
精品课件
41
KETTLE自带例子
• 菜单:文件->从URL打开文件->samples • 也可以直接到KETTLE工具下的samples目录打开
var value = 100/0;
}catch(e){
throw new ng.Exception(“除数不能为0:"+ e);
}
异常处理通常是防止未知错误产生所采取的处理措施。异常 处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一 类错误提供了一个很有效的方法,使编程效率大大提高。
KETTLE基本知识讲义
内容
• KETTLE介绍 • KETTLE的要求环境(JDK版本)、安装、基本操作。 • KETTLE的组件的类型基本说明(作业与转换) • 案例 • JAVASCRIPT的基本应用 • KETTLE输出日志说明 • 启动脚本说明。
精品课件
2
简介
• Kettle是一款国外开源的etl工具,纯java编写,可以 在Window、Linux、Unix上运行,绿色无需安装,数据 抽取高效稳定。
• Debug:调试目的,调试输出
• Rowlevel:打印出每一行记录的信息
精品课件
44
KETTLE输出日志说明
• 作业日志输出说明
• 作业运行状态有两种:true(成功)/false(失 败)。
• 注意:失败不代表运行异常、出错。有时只是 用来控制流程的一种决策、一种手段。
精品课件
45
KETTLE输出日志说明
• 2009年 Kettle 3.2 (一个使用时间较长的稳定版本)
• 2010年 Kettle 4.0 ,Kettle 4.1
• 2011年 Kettle 4.2
• 2012年 Kettle 4.3 ,Kettle 4.4 (License 变更为
Apache 2,支持大数据)
精品课件
6
• 2013年 Kettle 5.0
• 用户通过 Spoon 创建的转换、作业、数据库连接等可 以保存在资源库和 XML 文件中。
• 转换文件以 ktr 为扩展名,作业文件以 kjb 为扩展名
精•品资课件源库可以是各种常见的数据库。可以在 Spoon 中自 13 动创建资源库,资源库默认用户名和密码是
KETTLE的组件的类型基本说明(作业 与转换)
• kjb 作业XML的根节点是<job>
精品课件
9
KETTLE的组件的类型基本说明(作业 与转换)
• Kettle中有两种脚本文件,transformation(转换,后 缀为.ktr)和job(作业, 后缀为.kjb), transformation完成针对数据的基础转换,好比工厂里 的生产流水线,每个组件相当于一个员工;job则完成 整个工作流的控制,好比工厂里的管理。
集群运行。 • Encr.bat: 密码加密
精品课件
11
KETTLE的组件的类型基本说明(作业 与转换)
• 作业:分串行执行和并行执行,串行执行是先执行完其 中一条线再执行另一条线,并行是两条线同时执行,同 一条线上的两个步聚会先执行前面的再执行后面的,每 个步骤执行结果分两种:true(成功)/false(失败),根 据返回结果可以控制流程走向。
• 如果用记事本打开文件可发现转换和作业都是xml类型 文件。
精品课件
10
Kettle 的几个子程序
• Spoon.bat: 图形界面方式启动作业和转换设计器。 • Pan.bat: 命令行方式执行转换。 • Kitchen.bat: 命令行方式执行作业。 • Carte.bat: 启动web服务,用于 Kettle 的远程运行或
• Bug报告地址:/browse/PDI
• 官方论坛:
• /forumdisplay.php?f=135
• 中文论坛:
• 当前版本:Version 5.2
精品课件
28
基于表到文件的同步
精品课件
29
基于表到文件的到文件的同步
精品课件
31
JAVASCRIPT的基本应用
• JAVASCRIPT基本语法:
• var jsStr = “hello kello”; //定义一个字符串变量
• var javaStr = new ng.String(“java String ”); //ng.String实例
• 表对表同步是最基本的同步方式之一 • 实现步骤:
一、建立源库连接和目标库连接 二、使用表输入组件进行源表数据读取 三、对记录进行适配整理 四、使用表输出组件输出到目标表
精品课件
18
基于表对表的同步
• 新建一个转换:文件->新建->转换
精品课件
19
基于表对表的同步
精品课件
20
基于表对表的同步
• 元数据的通用概念: “描述性数据”或“数据的数据”
• ETL 的元数据: 描述 ETL 要执行的任务
• 在Kettle里元数据的存储方式:
• 资源库
• 资源库包括文件资源库、数据库资源库
• Kettle 4.0 以后资源库类型可以插件扩展
• XML 文件
• ktr 转换文件的XML的根节点必须是 <transformation>
• 6.Kettle 源代码
精品课件
7
KETTLE的安装运行
• KETTLE要求先安装JDK1.5版本或以上
• 下载地址: http://sourceforge.jp/projects/sfnet_pentaho/rel eases/
• 无需安装下载后直接运行spoon.bat即可
精品课件
8
Kettle 资源库–-元数据
精品课件
32
JAVASCRIPT的基本应用
If … else 语句 var bool = true;
if(bool){ //bool值为true Alert(“正确”);
}else{ //bool值为false Alert(“错误”);
}
精品课件
33
JAVASCRIPT的基本应用
for语句
var arr = new Array(1, “2”, “this is string”);
精品课件
5
• 原作者: Matt
• 2L0i0c6e年nseKe为ttlLeGP2LK.)e2,ttKleettle 历2.3史(Kettle 开源,
• 2007年 Kettle 2.4, Kettle 2.5(被Pentaho 公司收 购,更名为 PDI)
• 2008年 Kettle 3.0 ,Kettle 3.1
• 作业流程图说明
精品课件
14
KETTLE的组件的类型基本说明(作业 与转换)
• 转换:一开始所有步骤同时运行,记录会从最前端的步 骤向后传递,传递到相应步骤则该记录被该步骤作相应 处理,处理完成再把记录往后传递,记录传递分复制和 分发两种模式。
精品课件
15
KETTLE的组件的类型基本说明(作业 与转换)
精品课件
47
启动脚本说明
• KETTLE程序启动分两种,一种是作业、一种是转换。 • 作业调用启动脚本: kitchen.sh( kitchen.bat) • 转换调用启动脚本: pan.sh( pan.bat)
精品课件
48
(Detailed)、调试日志(Debug)、行级日志
(Rowlevel)。默认为基本日志。
精品课件
43
KETTLE输出日志说明
• Nothing:不显示任何输出
• Error:仅仅显示错误信息
• Minimal:使用最小的日志
• Basic:缺省的日志级别
• Detailed:给出日志输出的细节
• 复制:把一份数据复制成多份,后面步骤各占一份。 • 分发:把一份数据平均分配给后面步骤。
精品课件
16
KETTLE的组件的类型基本说明(作业 与转换)
• 在转换组件上右键->显示输入字段(显示输出字段) 可以查看前面步骤流过来的记录字段情况和该字段是后 面步骤传递的字段信息情况。
精品课件
17
基于表对表的同步
• 开源ETL 工具软件
• Kettle
• Talend
• 精品课件 CloverETL
4
• Ketl,Octopus …
• 源代码下载地K址e:ttle 基本情况
• svn:///svnkettleroot/Kettle/tr unk
• 官方文档: