在 Pentaho Kettle 中应用 Pivot

Posted

技术标签:

【中文标题】在 Pentaho Kettle 中应用 Pivot【英文标题】:Applying Pivot in Pentaho Kettle 【发布时间】:2016-02-26 08:29:38 【问题描述】:

我正在使用 pentaho 水壶 5.2.0 版本。我正在尝试对我的源数据进行透视,这是我的源数据的结构

Billingid   sku_id    qty
  1           0        1
  1           0        12
  1           0        6
  1           0        1
  1           0        2
  1           57       2
  1          1430      1
  1          2730      1
  2          3883      2
  2          1456      1
  2          571       9
  2          9801      5
  2          1010      1

这就是我所期待的

billingid   0   57  1430  2730  3883  1456  571  9801  1010
   1                *******sum of qty******
   2

任何帮助将不胜感激..提前感谢

【问题讨论】:

你只是想计算数量吗? billingid? 没有@bolav,我正在尝试将数量与 billingid 与 sku_id 相加。我想要 qty 与列 billingid 和 sku_id 的总和 你能用这样的格式来做,你得到一个行,其中 billingid 和 sku_id 组合是唯一的,你得到 billingid、sku_id、sum_qty,还是你必须去规范化? (第一种选择更容易制作) 虽然您的第一个建议更容易,但如果我想使用非规范化器,那么我该如何继续?我需要在非规范化步骤的屏幕截图中进行哪些必要的更改? 【参考方案1】:

要使denormaliser 起作用,您首先必须对行进行排序和分组,以获得sum of qty。所以转换看起来像这样:

billingidsku_id 排序,然后按sumqty 排序,按billingidsku_id 分组:

然后在 deomaliser 中,您需要列出每个不同的 sku_id,以创建列 pr id。:

这将给出预期的输出:

【讨论】:

这太棒了!!!这真的让我很开心 :) 非常感谢。我现在唯一担心的是如果“sku_id”列中的记录数量增加,那么手动将所有值写入非规范化步骤的键值列中将是一项非常繁琐的任务。对此有何建议? @Deepesh:你可以使用ETL Metadata Injection。 我一定会尝试这一步。再次感谢:) @bolav

以上是关于在 Pentaho Kettle 中应用 Pivot的主要内容,如果未能解决你的问题,请参考以下文章

在 pentaho (kettle) 中合并属性

pentaho dpi-5.3(kettle)中的mongodb源代码在哪里?

Pentaho - 如何根据 Kettle 属性文件设置工作转换

如何在 Pentaho Data Integration (Kettle) 中合并两个文件

使用 StAX / Kettle (Pentaho) 读取 XML 文件

如何在 Pentaho 数据集成 (Kettle) 中的“用户定义的 Java 类”步骤中获取所有参数