2017-02-07 50 views
0

我有两个不同的数据库位于两个不同的服务器上。在两个不同的服务器上记录两个不同的表之间的条目记录

一个是SQL Server,另一个是Netezza。

我希望检查SQL Server上的条目是否与我的Netezza上的条目相同。我希望通过记录来做这个记录。

我希望输出告诉我哪些条目存在于SQL Server中,但不存在于Netezza中。

我正在尝试使用Informatica PowerCenter创建映射,但我很难过。

+0

每个表中有多少行数据? – iamdave

+0

在你的问题中似乎有两个单独的问... ask1)在SQL服务器上找到Netezza上不存在的记录... ask2)在SQL服务器上找到与Netezza具有相同ID的记录,但其余字段是不相同...请你能建议哪些要求符合你的要求 –

+0

如果Netezza中没有任何相同的东西,我希望返回一个NULL。 –

回答

1

使用连接符转换来连接这些表。选择Netezza表为主,SQL服务器表为细节,并选择连接类型为详细外部连接。

现在在joiner的输出中,您将从SQL Server获取所有行,并且只匹配Netezza表中的行。如果记录不在Netezza中,则Netezza字段将为NULL。之后您可以在表达式转换中仅检查一个Netezza关键字段,以确定记录是否存在于Netezza中。

+0

好的答案。如果数据量很大,则可能需要增加连接器中的内存,甚至需要对数据进行排序(在排序器trans或数据库中 - 取决于),并配置连接器以利用排序后的属性。 –

+0

如果唯一的原因是在Joiner Transformation上使用'Sorted input'属性,请不要添加Sorter。你需要非常小心,因为Joiner期望在这种情况下分开两个管道。为两者添加一个分拣器可以创建更多的缓存,而不仅仅是将它留给Joiner来缓存主管道。这可能仅在例如详细信息源可以被读取排序(利用现有的数据库索引),您只需要对主管道进行排序。 – Maciejg

+0

如何为不同服务器设置连接?还要记住,有很多表格,这不能用于单个案例。 –

相关问题