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

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

)

2) r_jobentry:设计界面上的一个实体对应一个entry,通过job的id关联

DROP TABLE IF EXISTS `r_jobentry`; CREATE TABLE `r_jobentry` (

`ID_JOBENTRY` bigint(20) NOT NULL, `ID_JOB` int(11) DEFAULT NULL,

`ID_JOBENTRY_TYPE` int(11) DEFAULT NULL, `NAME` varchar(255) DEFAULT NULL, `DESCRIPTION` mediumtext, PRIMARY KEY (`ID_JOBENTRY`) )

3) r_jobentry_attribute :job的详细信息表,包括job执行规则,执行过程中的参数来

源,日志记录等

DROP TABLE IF EXISTS `r_jobentry_attribute`; CREATE TABLE `r_jobentry_attribute` (

`ID_JOBENTRY_ATTRIBUTE` bigint(20) NOT NULL, `ID_JOB` int(11) DEFAULT NULL,

`ID_JOBENTRY` int(11) DEFAULT NULL, `NR` int(11) DEFAULT NULL,

`CODE` varchar(255) DEFAULT NULL, `VALUE_NUM` double DEFAULT NULL, `VALUE_STR` mediumtext,

PRIMARY KEY (`ID_JOBENTRY_ATTRIBUTE`) ) 4) r_step:保存转换的步骤id,名字等

r_step建表语句:

DROP TABLE IF EXISTS `r_step`; CREATE TABLE `r_step` (

`ID_STEP` bigint(20) NOT NULL,

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

`ID_STEP_TYPE` int(11) DEFAULT NULL, `DISTRIBUTE` char(1) DEFAULT NULL, `COPIES` int(11) DEFAULT NULL,

`GUI_LOCATION_X` int(11) DEFAULT NULL, `GUI_LOCATION_Y` int(11) DEFAULT NULL, `GUI_DRAW` char(1) DEFAULT NULL, PRIMARY KEY (`ID_STEP`) )

5) r_step_attribute:转换步骤的详细信息,字段重命名,字段映射等。通过外键

id_transformation与r_step的id_transformation关联 DROP TABLE IF EXISTS `r_step_attribute`; CREATE TABLE `r_step_attribute` (

`ID_STEP_ATTRIBUTE` bigint(20) NOT NULL, `ID_TRANSFORMATION` int(11) DEFAULT NULL, `ID_STEP` int(11) DEFAULT NULL, `NR` int(11) DEFAULT NULL,

`CODE` varchar(255) DEFAULT NULL, --操作编码譬如:truncate,也可以是字段映射等信息

`VALUE_NUM` bigint(20) DEFAULT NULL, --操作值 `VALUE_STR` mediumtext, --操作值,譬如truncate对应的是Y或者N PRIMARY KEY (`ID_STEP_ATTRIBUTE`),

UNIQUE KEY `IDX_STEP_ATTRIBUTE_LOOKUP` (`ID_STEP`,`CODE`,`NR`) ) 说明:

如果有一个字段firtstname映射到name则在r_step_attribute中增加两条记录。

6. Kettle组成部分

Chef:是一个图形用户界面,使用SWT开发,用来设计一个作业,转换,SQL,FTP,邮件,检查表存在,检查文件存在,执行SHELL脚本

Kitchen:作业执行引擎,用来进行转换,校验,FTP上传。可以执行xml格式定义的任务以及保存在数据库上的。

kitchen.bat /file:D:\\Jobs\%updateWarehouse.kjb /level:Basic kitchen.sh -file=/PRD/updateWarehouse.kjb -level=Minimal kitchen.bat /rep:\ /job:\ /dir:/Dimensions /user:matt

/pass:somepassword123 /level:Basic

kitchen.bat /file:

F:\\java\\pdi-ce-3.2.0-stable\\data-integration\\samples\\transformations\\files\\demo-table2table.ktr /level:Basic /log:test123.log

Spoon:Spoon 是Kettle的另一个图形用户界面,用来设计数据转换过程 Pan:Pan是一个 数据转换引擎,负责从不同的数据源读写和转换数据。

pan.sh -file=\

Transformation步骤 1. 输入类型:

1.1 Csv file input

读取csv文件,设置csv文件路径,可以设置csv文件的相对路径或者绝对路径,字段分隔符,文件读取的缓存大小等

1.2 Excel Input

读取excel文件,和csv文件读取类似,增加了表单,表头,出错(是否忽略错误,严格的类型判断等)的处理

1.3 Property Input

读取属性.properties文件

1.4 Table input

从数据库读数据,动态绑定参数的SQL语句,参数替换可以从上一个步骤从获取。 例如SELECT * FROM customer WHERE birthdate<’${current_date}’

这里的${current_date}在执行过程中会作为动态参数被替换掉。这个值是前一个转换步骤设置的。

注:但是测试过程中发现如果上一个步骤设置的变量,在table input里面获取不到,变量设置必须作为一个单独的转换先执行一次,然后才能获取到这个变量。

1.5 Text file input

主要是txt文件内容等,和csv差不多。

1.6 Generate Rows

生成一些固定字段的记录,主要用来模拟一些数据进行测试。

1.7 Get File Names

读取给定目录或者文件全路径的文件名

1.8 Get System Info

包括命令行输入的参数,操作系统时间,ip地址,一些特殊属性,kettle版本等