从 DB2 数据库的两个表中提取数据并加载到临时表中
Posted
技术标签:
【中文标题】从 DB2 数据库的两个表中提取数据并加载到临时表中【英文标题】:Extract data from two tables of DB2 database and load into a temporary table 【发布时间】:2012-02-19 07:10:26 【问题描述】:我正在创建一个 informatica 工作流,它可以从 DB2 数据库的两个表中提取数据并加载到一个临时表中。假设两个源表名称是 Account (Parent) 和 Activities (Child)。他们有 1:M 的关系。意味着一个帐户可以有许多活动(Account.PK = Activities.FK)。活动表有两列 - 第一个“类型”,其值可以是“已支付”、“将支付”或“未支付”。第二列是“Created_Date”日期时间数据类型,无论何时创建新的活动记录、日期和时间会在这个领域得到印记。现在,在临时表中加载数据的条件是 - “对于帐户记录,它将第一次检查活动表中今天的付费活动(类型 = 付费)。如果它找到多个付费活动,那么它将选择最新创建的“意味着,它应该为一个帐户选择今天的最新付费活动(Sysdate),如果它不存在,那么它只会选择今天最新的支付活动。请帮助我了解如何在 Informatica 工作流程中实现此逻辑以及我应该使用哪些转换以及如何使用?非常感谢。请帮忙。
【问题讨论】:
【参考方案1】:在 SQL 上执行此操作的最佳方法是在 ETL 上实现业务逻辑,这并不好。但是,如果您坚持,它可以通过多种方式创建。例如:
使用 SQL 覆盖 您可以为带有覆盖 SQL(以及列)的活动表创建 3 个查找转换,并为条件创建一个表达式转换。
-
查找多个“付费”活动帐户
查找以查找每个帐户的最后“付费”活动
查找以查找每个帐户的最后一次“支付”活动
根据 1-3 个查找结果返回正确活动键的表达式
如果没有 SQL 覆盖,您需要使用过滤器、聚合器、连接器转换重新创建类似的逻辑。
【讨论】:
以上是关于从 DB2 数据库的两个表中提取数据并加载到临时表中的主要内容,如果未能解决你的问题,请参考以下文章