使用 Informatica 连接位于不同数据库中的多个表
Posted
技术标签:
【中文标题】使用 Informatica 连接位于不同数据库中的多个表【英文标题】:Join multiple tables located in different databases using Informatica 【发布时间】:2014-01-07 16:55:17 【问题描述】:我正在尝试加入 6 个表,其中 5 个表位于 Netezza 数据库中,最后一个表存在于 SQL Server 数据库中。我需要加入这六个表并提取所有必填字段并将它们加载到位于 Netezza 上的目标表中。我尝试在 SQL 覆盖中编写 SQL 以加入所有表,但它抛出了一个错误。有人可以帮我解决这个问题吗?谢谢。
【问题讨论】:
【参考方案1】:您需要使用Joiner transformation
。
首先连接位于同一数据库中的 5 个表。将这个连接 5 个表的 SQL 放在一个源限定符中。这将连接并从一个数据库中提取数据。接下来创建另一个源限定符以从第 6 个表中提取数据。
最后使用 Joiner Transformation 连接来自这两个源限定符的数据,您就完成了。
【讨论】:
我无法加入 5 个表,因为没有公用键。其他数据库中存在的表具有键。 在这种情况下,您需要将这 6 个表分别提取到您的暂存区并在那里执行连接 源中有 6 个表,并且您希望输出中有一个表。问题是,您不能将 6 个表连接到一个source qualifier
中,因为它们属于不同的数据库。事实上,您甚至不能将同一数据库中的 5 个表连接在一起,因为连接需要通过第 6 个表进行。我建议您使用一个 Informatica 映射(具有 6 个管道)将所有这 6 个表单独提取到一个数据库(例如暂存区)中,然后创建另一个映射,将这 6 个暂存表连接到一个 SQ 中,并将它们加载到目标。
或者使用5个joiner让集成服务执行所有的join。
也许(取决于表大小)一个两阶段的方法:first session
将 SQL Server 表加载到 Netezza,然后 second session
使用单源限定符和 SQL 覆盖在 Netezza 上执行完全连接一边阅读结果。以上是关于使用 Informatica 连接位于不同数据库中的多个表的主要内容,如果未能解决你的问题,请参考以下文章
Informatica MDM 学习 之 Configuration界面