如何在大量数据的信息中将多行转换为单行,需要最佳解决方案

时间:2012-05-02 15:17:42

标签: informatica-powercenter informatica

我在表A中有数据如下

Assetid attribute value
1546    Ins_date   05062011
1546    status     active
1546    X          10.4567
1546    Y          27.56
1546    size       17
675     X          4.778
675     Y          53.676
675     depth      5
675     st_date    06092010

我在表A中有如上所示的数据。此表有许多Assetids 1546,675,....等。属性可能因资产而异。

我想要输出如下:

assetid  ins_date  status  X        Y       Size  depth  st_date
1546     05062011  active  10.4567  27.56   17    null   null
675      null      null    4.778    53.676  null  5      06092010

我创建了存储过程,然后在Informatica中调用以实现此输出。但是,由于我有大量数据,因此加载时间很长。

请建议我加载它的其他简单方法。

3 个答案:

答案 0 :(得分:1)

使用路由器将行拆分为不同的组,具体取决于attribute,然后使用一组加入者将行合并到同一个{{ 1}}值。

答案 1 :(得分:0)

使用聚合器转换将记录压缩为每个assetid一个记录。然后,对于每个属性,创建一个返回属性匹配的MAX(值)的端口。请注意,此方法假定您提前了解所有可能的属性。

答案 2 :(得分:0)

如前面的答案所示,您可以使用聚合器。由于您的数据集很大,您可以使用表达式中使用变量端口的技术,前提是数据在到达表达式之前进行排序。

您可以下载演示Informatica Marketplace App titled "PowerCenter Mapping: Convert Rows Into Columns"中的两种技术的示例映射。