kettle入门(六) 之kettle抽取变量表名表

背景:


ods平台的一个很简单的数据抽取需求:


上游系统有一个月表,每个月出上个月数据并放在新建的月表里。例如:20150401出3月份表和数据 TB_B_FT_BROADBAND_201503,

20150501出4月份表和数据 TB_B_FT_BROADBAND_201504。而ods需要每月初等他们数据出来后再抽取过来。

需求很简单,用kettle最常见的表输入和输出抽取即可,但是表输入的select 语句里面的表名需要使用变量。


解决:


使用job kjb如下 完成此需求,如下图,步骤如下:

1  start

2 设置表明使用的变量:时间变量(tabledate.ktr)

3 抽取(即表输入》表输出)(TB_B_FT_BROADBAND.ktr)


kettle入门(六) 之kettle抽取变量表名表_第1张图片


设置时间变量的转换如下,tabledate.ktr:


kettle入门(六) 之kettle抽取变量表名表_第2张图片


时间变量设置参考:http://blog.csdn.net/xiaohai798/article/details/41867835


 TB_B_FT_BROADBAND.ktr


抽取 TB_B_FT_BROADBAND.ktr 如下:

kettle入门(六) 之kettle抽取变量表名表_第3张图片


注意点如上 :

1 from 后面的表名 ${} 里面的即是前面设置的变量

2 Replace variables in script? 方框 打上勾。变量即起上作用。


附:


select 语句

select   
LATN_ID, 
MONTH_ID, 
PRD_INST_ID, 
SERV_NBR, 
PRD_ID, 
CRM_PRD_ID, 
PRD_INST_STAS_ID, 
PRD_INST_NAME, 
PRD_INST_DESC, 
INSTALL_DATE, 
....
from eda.TB_B_FT_BROADBAND_${FILTEDATE}

关于这个需求的整体背景及其后续解决参考:

oracle开发系列(二)存储过程 execute immediate 'create table' 报 insufficient privileges错误解决及用户权限的理解

你可能感兴趣的:(etl,ETL工具kettle入门)