美文网首页
学习笔记系列----2、kettle实现时间维度

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

作者: 夏无忧阳 | 来源:发表于2017-05-16 17: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


    数据库中结果如下:


    相关文章

      网友评论

          本文标题:学习笔记系列----2、kettle实现时间维度

          本文链接:https://www.haomeiwen.com/subject/nvclxxtx.html