学习笔记系列----2、kettle实现时间维度

2017-05-16  本文已影响0人  夏无忧阳

学习笔记之时间维度

整体


转换整体

分解


  1. 生成小时、分钟、秒的初始化数据行
    Generate Hours生成24行数据,用来表示一天中的24小时
    Generate Minutes生成60行数据,用来表示一天中的24小时
    Generate Seconds生成60行数据,用来表示一天中的24小时


    数据行
  2. 生成序列
    通过自增序列,形成一些列连续整数:023小时、059分钟、0~59秒。以24小时为例:

    生成自增序列
    预览小时序列如下:
    24小时
  3. Calculate hours12
    用js获取12小时制,并生计算生成对应的12小时制的符号AM/PM


    Calculate hours12

    预览效果如下:


    12小时制
  4. 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小时制中的一秒。

笛卡尔乘积
预览如下:
  1. Caclulate Time
    通过一个js生成需要的时间格式,另外生成dim_time维度的智能主键。



    效果如图:


  2. 排序记录
    按time_key进行排序


  3. 输出到表dim_time


数据库中结果如下:


上一篇下一篇

猜你喜欢

热点阅读