发布时间 : 星期三 文章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版本等