1

我正在尝试构建一个映射,它将数据从一个数据库加载到另一个数据库,并使用自destination中的最新行以来创建的source中的所有行更新目标

Source中的查询是这样的:

SELECT
    *
FROM table
WHERE table.creation_date > [[destination max creation_date]]

根据我在 Informatica Cloud 社区的文档和讨论中看到的内容,最好的方法是使用Parameter。但从我所见,加载参数的唯一方法是:

  • 将其硬编码到映射中
  • 从 XML 文件加载参数

有没有办法从其他任何地方加载参数?除了文件之外的任何东西都会很棒。

在此先感谢,并为笨拙的写作感到抱歉。

4

2 回答 2

2

我在多个 IICS 映射中设置了这个逻辑。

您需要遵循的步骤:

在映射中

  1. 创建一个 Input-Output 参数,即 v_last_load_date
  2. 在表达式中创建一个变量字段并将其用作表达式SetMaxVariable($$v_last_load_date, creation_date)

  3. 在 Source - Query Options 添加一个过滤器来设置 creation_date > $$v_last_load_date

您可以在 In-Out Parameters 下的 Task(假设您创建了一个任务)中看到最新的值。

如果您需要更改值以用于重新加载等目的,则需要编辑任务更改该值。

于 2019-02-01T22:05:35.093 回答
1

一种选择是使用 LastRunTime 变量。有关详细信息,请参阅https://kb.informatica.com/howto/6/Pages/18/488723.aspx

为参数使用文件更可靠。我会使用文件目标和后处理脚本来更新每次运行的值,并使用预处理脚本来确保在运行之前正确设置它。可能不是您正在寻找的答案,但我的经验是额外的努力是值得的,以尽量减少以后的生产维护。

于 2019-01-31T18:28:41.683 回答