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

学习笔记之时间维度

整体


学习笔记系列----2、kettle实现时间维度_第1张图片
转换整体

分解


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


    学习笔记系列----2、kettle实现时间维度_第2张图片
    数据行
  2. 生成序列
    通过自增序列,形成一些列连续整数:023小时、059分钟、0~59秒。以24小时为例:

    学习笔记系列----2、kettle实现时间维度_第3张图片
    生成自增序列

    预览小时序列如下:
    学习笔记系列----2、kettle实现时间维度_第4张图片
    24小时

  3. Calculate hours12
    用js获取12小时制,并生计算生成对应的12小时制的符号AM/PM


    学习笔记系列----2、kettle实现时间维度_第5张图片
    Calculate hours12

    预览效果如下:


    学习笔记系列----2、kettle实现时间维度_第6张图片
    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小时制中的一秒。

学习笔记系列----2、kettle实现时间维度_第7张图片
笛卡尔乘积

预览如下:
学习笔记系列----2、kettle实现时间维度_第8张图片

  1. Caclulate Time
    通过一个js生成需要的时间格式,另外生成dim_time维度的智能主键。


    学习笔记系列----2、kettle实现时间维度_第9张图片

    效果如图:


    学习笔记系列----2、kettle实现时间维度_第10张图片
  2. 排序记录
    按time_key进行排序


    学习笔记系列----2、kettle实现时间维度_第11张图片
  3. 输出到表dim_time


    学习笔记系列----2、kettle实现时间维度_第12张图片

数据库中结果如下:


学习笔记系列----2、kettle实现时间维度_第13张图片

你可能感兴趣的:(学习笔记系列----2、kettle实现时间维度)