2

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

4

2 回答 2

2

在 PDI/Kettle 中,我发现根据另一个不同数据类型的字段的值来设置一个字段的值很棘手。A JavaScriptor Formulastep 会做到这一点,但在这种情况下,我想我会使用 aStream Lookup因为您的查找值很少且固定。

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

于 2013-09-17T20:22:35.637 回答
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];
于 2013-09-18T09:36:09.677 回答