学习笔记系列----2、kettle实现时间维度
2017-05-16 本文已影响0人
夏无忧阳
学习笔记之时间维度
整体
转换整体
分解
-
生成小时、分钟、秒的初始化数据行
Generate Hours生成24行数据,用来表示一天中的24小时
Generate Minutes生成60行数据,用来表示一天中的24小时
Generate Seconds生成60行数据,用来表示一天中的24小时
数据行 -
生成序列
生成自增序列
通过自增序列,形成一些列连续整数:023小时、059分钟、0~59秒。以24小时为例:
预览小时序列如下:
24小时 -
Calculate hours12
用js获取12小时制,并生计算生成对应的12小时制的符号AM/PM
Calculate hours12
预览效果如下:
12小时制 -
Cartesian Product
这是一个“关联记录(笛卡尔输出)”步骤,用来连接两个输入流,生成笛卡尔乘积输出流,也就是两个输入流数据行的各种组合方式(m*n),每一个输出行包含所有输入行的字段。
例如:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
在这里,需要生成所有的组合。一共生成246060=84600行,每一行代表24小时制中的一秒。
预览如下:
-
Caclulate Time
通过一个js生成需要的时间格式,另外生成dim_time维度的智能主键。
效果如图:
-
排序记录
按time_key进行排序
-
输出到表dim_time
数据库中结果如下: