做ETL开发,首先离不开的就是一个标准的日期维表,初学kettle,今天就试着用它生成日期维。
其实如果只是为了一个维表,可以用很简单的办法就生成,最基本的想法就是:生成记录 > 添加序列 > 计算器 > 选择字段 > 表输出。
但我想做的是从某一个固定日期开始生成至昨天的数据,顺便用一下kettle的参数传递功能,下面是具体实现:
一、保存为文件DimPeriod_set。

DimPeriod_set.ktr
1、startDate:设置初始固定日期(2020/03/01 00:00:00)
2、获取系统信息:拿到昨天日期
3、计算器:计算开始日期到昨天共相隔多少天
4、字段选择
5、设置变量

详细步骤设置
二、保存为文件DimPeriod_get。

DimPeriod_get.ktr
1、生成随机数:这个操作实属无奈,暂时没找到更好的方式,只是为了生成一列与相隔总天数一样的数据,若生成数据量较大会影响性能,请注意。
2、增加序列:把前面生成的那列数据标号
3、将字段设置为常量:在这里把开始日期以参数的方式替换掉生成的随机数
4、字段选择
5、计算器
6、7、选择需要的字段后输出

1-4详细步骤设置

关键的计算器
最后两步比较简单的设置就不上图了。
三、新建作业,将两个转换按顺序放到作业中运行即可。

job设置
四、最终生成的数据预览如下图,需要其他字段的可以在计算器加添加再输出。

最终结果预览
以上生成日期维及参数使用只是随便摸索出来的,有更好方法的欢迎讨论。
都看到这里了不点个赞再走么@_@