ETL工具kettle学习总结 联系客服

发布时间 : 星期三 文章ETL工具kettle学习总结更新完毕开始阅读6352122d915f804d2b16c193

概览

Kettle也叫PDI(全称是Pentaho Data Integeration),是一款开源的ETL工具,项目开始于2003年,2006年加入了开源的 BI 组织 Pentaho, 正式命名为PDI。官方网站:http://kettle.pentaho.org/

术语

1. Transformation

转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。然后最终输出到某一个地方,文件或者数据库等。

2. Job

作业,可以调度设计好的转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等,

3. Hop 连接转换步骤或者连接Job(实际上就是执行顺序)的连线

Transformation hop:主要表示数据的流向。从输入,过滤等转换操作,到输出。 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文件的一部分:

demo test

Transformation TRANS

${Internal.Job.Filename.Directory}/demo-table2table.ktr load customer data job

${Internal.Job.Filename.Directory} N N N N N ………

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,

`ID_DIRECTORY` int(11) DEFAULT NULL, `NAME` varchar(255) DEFAULT NULL, `DESCRIPTION` mediumtext,

`EXTENDED_DESCRIPTION` mediumtext, `JOB_VERSION` varchar(255) DEFAULT NULL, `JOB_STATUS` int(11) DEFAULT NULL,

`ID_DATABASE_LOG` int(11) DEFAULT NULL,

`TABLE_NAME_LOG` varchar(255) DEFAULT NULL, `CREATED_USER` varchar(255) DEFAULT NULL, `CREATED_DATE` datetime DEFAULT NULL,

`MODIFIED_USER` varchar(255) DEFAULT NULL, `MODIFIED_DATE` datetime DEFAULT NULL, `USE_BATCH_ID` char(1) DEFAULT NULL, `PASS_BATCH_ID` char(1) DEFAULT NULL, `USE_LOGFIELD` char(1) DEFAULT NULL, `SHARED_FILE` varchar(255) DEFAULT NULL, PRIMARY KEY (`ID_JOB`)