2017-08-01 53 views
0

要求将输入记录从源标记为目标,如I,U,D,I插入,D删除,u更新。源和目标是各种RDBMS系统。标记插入使用informatica更新和删除目标中的源记录

来源 - 甲骨文 目标 - Greenplum的

在SCD TYPE1使用查找我们能够达到我和U标志。由于查找是基于主键的equi连接,因此标记删除的记录是一项挑战。不能使用左或最外连接

你的投入是非常可观的

回答

0

我不知道我是否正确,但是假设你是基于没有来自源中的数据删除记录了解的要求。

可能有一些方法。你应该有一个关键的来源和目标,以确定相同的记录。

如果上述假设是正确的遵循了这一过程:

  1. 首先使用输入数据来更新/插入记录。
  2. 使用目标加载计划并运行另一个映射,将目标数据库作为源并对传入数据执行减号操作。
  3. 删除附加的已识别记录。

如果我对上述问题的理解错误,请更正。

0

正如Thilak提到的,源和目标是两个不同的RDBMS,我们无法逆向减去。

你必须在两步处理阶段处理你在oracle中的临时表中从源端收到的所有东西,然后在加载增量比较时根据临时表来决定基于完全外连接的I/U/D。

假设您始终从源接收全部负载。如果源未发送完整数据,您将无法跟踪删除。

希望它有帮助!

+0

你的意思是,我们需要设计2个映射,舞台表加载一个映射。第二个映射使用阶段作为来源并进行比较。 –

+0

是的。既然你正在处理两种不同的RDBMS,这是一个更好的方法。您的资源再次应该始终发送满载。 –

1

除了已经提到的解决方案之外,为了提高性能,您可以在加载之前将所有内容标记为已删除,然后相应地标记插入/更新。这样你可以避免比较。

+0

提供一些ETL逻辑 –

+0

由于您“能够实现I和U标志”,因此我想您会询问有关删除操作的信息。更新YourTable set statusFlag = -1 - 你需要什么? – Maciejg

0

Powerexchange是另一种可从oracle重做日志中读取以实时确定源数据库记录更改的informatica产品。这些记录可以在DTL__CAPXACTION字段中标记为I U或D.然后Powerexchange通过应用程序多组来源限定符连接到powercenter映射。

如果他们之后是该解决方案更内嵌别人取得了我与马切伊去的假设 - 漂亮,整齐,易

相关问题