从多个数据源导入SSIS

时间:2013-05-08 20:22:04

标签: sql oracle ssis teradata

我有一点挑战。我必须整合来自三个不同数据库(Oracle,SQL Server和Teradata)的一些数据。

如何根据Oracle的检索从TeraData和SQL Server检索数据?

例如,Oracle有销售信息,TeraData有客户信息,SQL Server有员工信息。

我从Oracle获取销售列表,其中包含客户端ID列表,并希望根据这些客户端ID限制TeraData拉取。

然后,客户端具有与SQL Server绑定的Employee标识符。

我可以单独连接到每个人,但是想限制每个人的拉力。

Oracle返回大约3,000行,而TeraData本身返回400,000行。 Oracle to TeraData是一对多关系(许多oracle记录到1 TeraData记录)。

我尝试过使用数据源合并选项,但它会单独运行每个数据源,然后将它们合并,最终会因TeraData中的记录数量而大幅增加处理时间。

非常感谢您的协助。感谢。

1 个答案:

答案 0 :(得分:0)

如果你会减少记录数,你会传递一些带有巨大IN字符串的SQL:SELECT Sales。* FROM Teradata.Sales WHERE ClientID IN()你需要从其他东西预先生成一个静态SQL字符串在对抗Teradata之前。如果它很大,你可能会遇到SQL长度问题。

你有一个从Oracle中检索唯一客户端ID的SQL语句吗?

SELECT DISTINCT ClientID FROM SCHEMA.SALES