【问题标题】:Join multiple tables located in different databases using Informatica使用 Informatica 连接位于不同数据库中的多个表
【发布时间】:2014-01-07 16:55:17
【问题描述】:

我正在尝试加入 6 个表,其中 5 个表位于 Netezza 数据库中,最后一个表存在于 SQL Server 数据库中。我需要加入这六个表并提取所有必填字段并将它们加载到位于 Netezza 上的目标表中。我尝试在 SQL 覆盖中编写 SQL 以加入所有表,但它抛出了一个错误。有人可以帮我解决这个问题吗?谢谢。

【问题讨论】:

    标签: sql sql-server informatica informatica-powercenter netezza


    【解决方案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 上执行完全连接一边阅读结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 2018-02-09
    相关资源
    最近更新 更多