Pentaho全新(以及新手SO海报所以请注意!)
我想使用Kettle / PDI转换来自RDBMS的数据(例如):
Question1 Question2 Question3 Question4 1/1/13 123.00 Test 1 Test 1.1 1/2/13 124.00 Test 2 Test 1.2 1/3/13 125.00 Test 3 Test 1.3 1/4/13 126.00 Test 4 Test 1.4 1/5/13 127.00 Test 5 Test 1.5
到此:
QuestionName AnswerDate AnswerNumber AnswerString Question1 1/1/13 Question1 1/2/13 Question1 1/3/13 Question1 1/4/13 Question1 1/5/13 Question2 123.00 Question2 124.00 Question2 125.00 Question2 126.00 Question2 127.00 Question3 Test 1 Question3 Test 2 Question3 Test 3 Question3 Test 4 Question3 Test 5 Question4 Test 1.1 Question4 Test 1.2 Question4 Test 1.3 Question4 Test 1.4 Question4 Test 1.5
如上所述,应该有一个“Answer< FieldDataType>”原始表中每个可用数据类型的列。这可能与PDI有关吗?如果是这样,有人可以给我一些指示吗?我已经尝试使用Row Normaliser步骤来旋转表并分配新字段,但我可能做得不对(或者有一个错误[PDI 4.4])。
答案 0 :(得分:0)
我通过使用脚本步骤编写输出行来完成此操作,该输出行包含输入行中每列的列和值。从那里开始,我进入Regex Evaluation步骤并使用多个捕获组将值类型映射到流中的其他列。我和Row Normaliser搞砸了一段时间,但却无法完全按照我的意愿去做。使用脚本步骤的性能损失可以忽略不计。
答案 1 :(得分:0)
使用javascript步骤:
trans_Status = SKIP_TRANSFORMATION;
var row1 = createRowCopy(4);
var row2 = createRowCopy(4);
var row3 = createRowCopy(4);
var row4 = createRowCopy(4);
row1[0] = 'Question1';
row2[1] = 'Question2';
row3[2] = 'Question3';
row4[3] = 'Question4';
row1[1] = Question1;
row2[2] = Question2;
row3[3] = Question3;
row4[3] = Question4;
putRow(row1);
putRow(row2);
putRow(row3);
putRow(row4);
不要忘记添加字段;
答案 2 :(得分:0)
行规范化器对指定去规范化的顺序非常敏感。
我有一个稀疏矩阵输入并发现了以下规则:
因此,如果在给出的例子中指定了
Fieldname Type new field
Question1 date AnswerDate
Question2 number AnswerNumber
Question3 string AnswerString
Question4 string AnswerString
将比
更好用 Fieldname Type new field
Question1 date AnswerDate
Question3 string AnswerString
Question2 number AnswerNumber
Question4 string AnswerString