我正在尝试使用 SSIS 从 Sql server 2008 到 Netezza (Nps6) 进行增量加载。
使用 Netezza 5.x 版本 OLEDB 驱动程序。我在用Table or View - Fast Load
选项与Maximum insert commit size = 0
.
在这里,我尝试将数千条记录插入到 Netezza 表中。该目标表包含数百万条记录。此数据流任务需要一个小时才能完成。当我查看 Netezza Administrator Active Queries 时,我发现像下面这样的查询就是问题所在,
SELECT * FROM Destination_Table;
下一步是外部表加载,如下所示,
insert into "destination_table"(col1, col2, col3)
select c0, c1, c2 from external '/dev/null' (c0, c1, c2) using (
remotesource odbc' delimiter ' ' escapechar '\' ctrlchars 'yes' crinstring 'yes' timeroundnanos 'yes' encoding 'internal' maxerrors 1
) ;
谁能帮助我理解为什么SELECT * FROM
加载需要目标表。或者 Netezza OLEDB 驱动程序如何与 SSIS 配合使用。
感谢你的帮助。
在不查看包中的详细信息的情况下,如果您没有选择Table or View -fast load
OLE DB 目标组件中数据访问模式的选项。快速加载选项将在内部使用 BULK INSERT 将数据上传到目标表。
使用Table or view
行为就像SELECT *
并拉动所有列。仅当您需要从源到目标的表或视图的所有列时,才应使用此访问模式。
您面临的问题是,默认情况下此选项可能不会出现,因为您使用的是 Netezza。
请参阅此处讨论的问题以及可能的解决方法:
http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/965b6d83-cf5e-405b-8784-7981e4386adc http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/965b6d83-cf5e-405b-8784-7981e4386adc
官方错误报告在这里提出:
https://connect.microsoft.com/SQLServer/feedback/details/569087 https://connect.microsoft.com/SQLServer/feedback/details/569087
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)