0

我在表 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 中调用以实现此输出。但是,由于我有大量数据,因此加载需要很长时间。

请建议我其他简单和最佳的加载方式。

4

3 回答 3

1

使用路由器将行拆分为不同的组attribute,然后使用一组连接器合并具有相同assetid值的行。

于 2012-05-03T11:44:38.363 回答
0

使用聚合器转换将记录压缩为每个资产标识一条记录。然后为每个属性创建一个端口,该端口返回属性匹配的 MAX(value)。请注意,此方法假定您提前知道所有可能的属性。

于 2012-05-05T23:04:13.830 回答
0

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

您可以从标题为“PowerCenter 映射:将行转换为列”的 Informatica Marketplace 应用程序中下载演示这两种技术的示例映射。

于 2012-09-21T13:42:22.283 回答