代码之家  ›  专栏  ›  技术社区  ›  DEVANG PANDEY

Pentaho水壶将月份数值转换为月份名称

  •  2
  • DEVANG PANDEY  · 技术社区  · 11 年前

    我面临着一个与olap和水壶有关的问题。问题是我正在使用pentho DI(水壶)将数据从数据库导出到olap星形模式(事实和维度)。现在,当谈到时间戳时,我可以使用水壶中的计算器从aw时间戳中检索月、年和天。现在我需要的是将月份数值转换为相应的月份名称(比如用JAN替换1等等)。这是如何用水壶实现的。请给我推荐。

    2 回复  |  直到 11 年前
        1
  •  2
  •   Brian.D.Myers    11 年前

    在PDI/Kettle中,我发现根据不同数据类型的另一个字段的值设置一个字段值很难。A. JavaScript Formula 步骤就可以了,但在这种情况下,我想我会使用 Stream Lookup 因为您的查找值很少而且是固定的。

    使用 Data Grid 步骤,其中Integer列表示月份编号(1、2、3…),字符串列表示月份名称(JAN、FEB、MAR…)。将此步骤用作 流查找 。然后只需将月份名称检索到您的数据流中即可。这应该非常快,如果您使用的是典型的数据仓库卷,这是很好的。

        2
  •  1
  •   wohlgejm    11 年前

    正如Brian所说,您也可以使用Modified JavaScript步骤来执行转换。以下是如何使用它:

    var month_names=new Array();
    month_names[1]="Jan";
    month_names[2]="Feb";
    month_names[3]="Mar";
    month_names[4]="Apr";
    month_names[5]="May";
    month_names[6]="Jun";
    month_names[7]="Jul";
    month_names[8]="Aug";
    month_names[9]="Sep";
    month_names[10]="Oct";
    month_names[11]="Nov";
    month_names[12]="Dec";
    var month_short = month_names[month_num];