我有一点挑战。我必须整合来自三个不同数据库(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中的记录数量而大幅增加处理时间。
非常感谢您的协助。感谢。
答案 0 :(得分:0)
如果你会减少记录数,你会传递一些带有巨大IN字符串的SQL:SELECT Sales。* FROM Teradata.Sales WHERE ClientID IN()你需要从其他东西预先生成一个静态SQL字符串在对抗Teradata之前。如果它很大,你可能会遇到SQL长度问题。
你有一个从Oracle中检索唯一客户端ID的SQL语句吗?
SELECT DISTINCT ClientID FROM SCHEMA.SALES