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

时间:2013-09-17 05:03:23

标签: pentaho olap kettle

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

2 个答案:

答案 0 :(得分:2)

在PDI / Kettle中,我发现根据另一个不同数据类型的字段的值设置一个字段的值很棘手。 JavaScriptFormula步骤会执行此操作,但在这种情况下,我认为我使用的是Stream Lookup,因为您的查找值很少且已修复。

使用带有整数列的Data Grid步骤作为月份编号(1,2,3 ...)和带有月份名称的字符串列(JAN,FEB,MAR ...)。将此步骤用作“查找”步骤'在Stream Lookup中。然后只需将月份名称检索到数据流中。这应该非常快,如果您正在使用典型的数据仓库卷,那就很好。

答案 1 :(得分:1)

正如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];