从两个DB2数据库表中提取数据并加载到临时表中

时间:2012-02-19 07:10:27

标签: informatica-powercenter informatica

我正在创建一个信息工作流工作流,它可以从两个DB2数据库表中提取数据并加载到临时表中。假设两个源表名称是Account(父)和Activities(Child)。他们有1:M的关系。表示帐户可以有许多活动(Account.PK = Activities.FK)。活动表有两列 - 第一个'类型',其值可以是'付费','将付费'或'未付费'。第二列是'Created_Date'datetime数据类型,每当您创建新的活动记录,日期和时间会得到这个领域的印记。现在,在临时表中加载数据的条件是 - “对于帐户记录,它将在活动表中首先检查今天的付费活动(类型=付费)。如果它找到多个付费活动,那么它将选择最新创建的其中一个(Created_Date列)。如果帐户没有付费活动记录,那么它将选择最新创建的“Will-Pay”活动。“意味着,它应该为今天(Sysdate)选择一个账户的最新付费活动,如果它不存在那么它将选择今天的最新Will-pay活动。请帮助我理解如何在Informatica工作流程中实现此逻辑以及我应该使用哪些转换以及如何使用?非常感谢。请帮助。

1 个答案:

答案 0 :(得分:0)

在SQL上实现它的最佳方法是在ETL上实现业务逻辑并不好。但如果你坚持认为它可以通过多种方式创建。例如:

使用SQL覆盖 您可以为活动表创建3个查找转换,并使用覆盖的SQL(以及列)和条件的一个表达式转换。

  1. 查找以查找多个“付费”活动帐户
  2. 查找每个帐户的最后“付费”活动
  3. 查找每个帐户的最后“支付”活动
  4. 表达式返回正确的活动键,基于1-3查找结果
  5. 如果没有SQL覆盖,则需要使用filter,aggregator,joiner转换重新创建类似的逻辑。