加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

kettle基本知识点和用法

(2013-07-14 00:00:00)
标签:

使用方法

实例

kettle

it

分类: 文档

个人微信订阅号:http://s13/mw690/003n7xtBzy704VPro281c&690

百度云盘地址:    http://pan.baidu.com/s/1qWz8nvA 

Ø Kettle说明

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

2、 Kettle有两种保存方式:一种是资源库方式(数据库一种是文件形式(XML)

3、 Kettle有两种类型TransformationJobTransformation完成针对数据的基础转换,Job则完成整个工作流的控制。

 

Ø Kettle参数

参数是ETL工具使用必须了解的一个问题之一,目前Kettle传参数有两种方式:

1、 Arguments 

Arg传参方式是原来3.2以下版本使用的传参方式,是通过command line来传参数,然后使用Get System Info组件接收传入的参数,一共可以传十个参数,目前此种传参数方法已经很少使用了。

kettle基本知识点和用法

(1)

2、 Parameters

Param参数只需要知道参数名称然后再通过参数名称付值就行了,参数区分大小写。

Kitchen.bat[sh]  file=test.kjb PARAM:STARTDATE=VALUE

 

3、 使用方法

对于参数的使用有两种方法:[%%VAR%%${VAR}] 

由于这两种参数的使用方法不同是需要看ETL程序部署的环境了,%%VAR%%使用的环境是Windows,而${VAR}使用的环境是Linux,但考虑程序移植问题一般都使用${VAR}方式,因为${VAR}方式在Windows系统环境下能够识别。

4、 动态参数设置

动态参数可以在JobTrans中设置,如果是在Trans中设置则需要下一步骤才能使用,如果在当前Trans中使用则会出错。

kettle基本知识点和用法

(2)

5、 全局参数设置

全局参数设置是在kettle.properties文件中配置,配置方式是键=值方式。

文件路径是在C:\Documents and Settings\[UserName]\.kettle\

脚本获取参数语法:parent_job.getVariable("param_name");

6、 参数优先级

参数的优先级也是一个需要关心的一个问题,特别是当全局参数也有值,又动态设置了参数时,或者是Job中定义参数时,这时我们需要知道这个参数的优先级了,下面是参数优先级的一个排序。

Job本身参数à动态参数à全局参数

需要注意的是当Job本身设置了参数,并且也有全局参数,如果Job本身参数为空而全局参数不为空时,那么输出的参数则是为空的。

 

Ø Kettle目录脚本说明

当大家把Kettle解压后会发现许多的脚本文档有batsh文件,下面对于这些脚本的说明与使用进行一一介绍让大家知道这些脚本是干什么用的。

脚本名称

脚本说明

脚本使用

Spoon.bat      

启动Kettle方法之一,也可以使用Kettle.exe启动

双击脚本运行,由于大家可能在执行Job或者Trans时会出此内存溢出时可以通过修改此脚本的JVM大小

Pan.bat

此脚本是用来运行test.ktr文件的,也就是Trans文件

可以通过编写bat文件来调用此脚本运行Trans文件,具体使用方法请参考Pan使用方法

Kitchen.bat

此脚本是用来运行test.kjb文件的,也就是Job文件

可以通过编写bat文件来调用此脚本运行Job文件,具体使用方法请参考Kitchen使用方法

Carte.bat

此脚本是使用集群Kettle,当数据量到达了一定的级别时就需要考虑集群这一功能来分担服务器压力、性能等方面。

Carte使用方法

Encr.bat

此脚本是用来加密连接数据库密码与集群时使用的密码

Encr使用方法

run_kettle_cluster_example.bat

此脚本是集群Kettle的一个例子

 

注:以上说的是bat脚本文件而sh脚本文件没有说明,因为sh的使用方法与bat的使用方法基本上是一致的所以这里就不再详细说明了。

 

1、 Pan使用方法

我们可以使用CMD来查看Pan可以接收哪些参数如下图:

kettle基本知识点和用法

(3)

Pan实例:

Pan.bat /file=test.ktr /logfile=test.txt /param=STARTDATE=2011-04-19

 

2、 Kitchen使用方法

我们可以使用CMD来查看Pan可以接收哪些参数如下图:

kettle基本知识点和用法

(4)

Kitchen实例:

Kitchen.bat /file=test.ktr /logfile=test.txt /param=STARTDATE=2011-04-19

 

3、 Carte使用方法

kettle基本知识点和用法

(5)

从图上可以出Carte的具体使用方法了。

Carte实例:

Carte.bat 127.0.0.1 8080

由于集群中有一个main群集,所以需要先启动main集群然后再启动其它的子集群。

 

4、 Encr使用方法

kettle基本知识点和用法

(6)

图中说明有使用encr加密有两种用途一种是连接数据库的密码一种是集群时的密码

Encr实例:

Encr.bat kettle test

Encr.bat carte test

kettle基本知识点和用法

(7)

 

Ø Kettle组件说明

由于Kettle的组件实在是太多了,这里我就不详细说明了,大家可以访问下面网址进行了解学习。

http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps

或者参考Kettle用户手册.pdf

 

Ø Kettle优化

说到优化我相信大家都喜欢问这个问题同时也是最关心的一个问题,在这提供最主要的几种优化方案

1、根据数据量的大小设置commit size

2、根据数据量的大小设置数据抓取结果集大小

kettle基本知识点和用法

(8)

3、尽量把JVM设置大一点

4、启用数据库连接池

kettle基本知识点和用法

(9)

5SQL本身的优化

6、需要注意的一些细节,比如在使用插入更新、更新、删除等组件时,当表中有联合主键时就需要注意建立索引的顺序了,如果顺序不正确会导致不走索引。

 

Ø Kettle并发

对于ETL工具而言并发是一个不可缺少的一部分,因为并将带来的是效率。

kettle基本知识点和用法

(10)

并发方法:

当你想要在哪一步进行并发时就右击JobTransLaunch next parallel勾上就可以了。

kettle基本知识点和用法

(11)

对于并发值得关注的是数据库的连接,在使用并发功能时需要启用数据库连接池功能,详情请参考Kettle连接池配置

Ø 手动指定.Kettle目录

添加环境变量KETTLE_HOME=[指定.kettle目录],由于测试环境是xp需要指定后重启电脑才能生效。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有