概览
Kettle也叫PDI(全称是Pentaho Data Integeration),是一款开源的ETL工具,项目开始于2003年,2006年加入了开源的 BI 组织 Pentaho, 正式命名为PDI。:/
术语
1. Transformation
转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。然后最终输出到某一个地方,文件或者数据库等。
2. Job
作业,可以调度设计好的转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等,
3. Hop连接转换步骤或者连接Job(实际上就是执行顺序)的连线
Transformation hop:主要表示数据的流向。从输入,过滤等转换操作,到输出。
null官方更新地址Job hop:可设置执行条件:
1, 无条件执行
2, 当上一个Job执行结果为true时执行
3, 当上一个Job执行结果为false时执行
Kettle,etl设计及运行
1. Kettle整体结构图
Kettle整体结构图
2. 转换设计样例图
绿线条为hop,流水线
转换设计样例
3. 运行方式
使用 java web start 方式运行的配置方法
命令行方式
1) Windows下执行kitchen.bat,多个参数之间以“/”分隔,Key和value以”:”分隔
例如:
kitchen.bat /file:F:\samples\demo-table2table.ktr /level:Basic /log:test123.log
/file:指定转换文件的路径
/level:执行日志执行级别
/log: 执行日志文件路径
2) Linux下执行kitchen.sh,多个参数之间以“-”分隔,Key和value以”=”分隔
kitchen.sh -file=/home/updateWarehouse.kjb -level=Minimal
如果设计的转换,Job是保存在数据库中,则命令如下:
Kitchen.bat /rep:资源库名称 /user:admin /pass:admin /job:job名
4. Xml保存转换,job流程
设计用户定义的作业可以保存在(xml格式)中或某一个特定的数据库中
转换的设计文件以.ktr结尾(xml文格式),保存所有配置好的数据库连接,文件相对路径,字段映射关系等信息。
Job的设计文件以.kjb结尾,下面是一个调用已经设计好的转换的job文件的一部分:
<entry>
<name>demo test</name>
<description>Transformation</description>
<type>TRANS</type>
<filename>${Internal.Job.Filename.Directory}/demo-table2table.ktr</filename>
<transname>load customer data job</transname>
<directory>${Internal.Job.Filename.Directory}</directory>
<arg_from_previous>N</arg_from_previous>
<exec_per_row>N</exec_per_row>
<clear_rows>N</clear_rows>
<clear_files>N</clear_files>
<set_logfile>N</set_logfile>
<logfile/>
<logext/>
………
</entry >
5. 数据库保存转换,job流程
列出几个重要的表
1) r_job:保存job的id,name,status,执行时间,创建时间,修改时间等信息
建表语句:
DROP TABLE IF EXISTS `r_job`;
CREATE TABLE `r_job` (
`ID_JOB` bigint(20) NOT NULL,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论