我正在构建一个SSIS package
,需要从其中转移软件包
将odata source
中的一些表插入sql server
中。
到目前为止,我已经从我从sql server
读取的表中对odata Source
进行了“插入”查询。因为表的数量是10+,所以我可以通过一种方法“选择”查询来更快地在SSIS
中传输这些表?
答案 0 :(得分:1)
SSIS没有内置操作可基于数据集在目的地上创建表,SELECT ... INTO
就是这样。
也不容易做到这一点,SSIS主要基于静态元数据ETL,即在具有一致结构和数据类型的不同源和目标之间执行操作。您可以使用自定义脚本来实现所需的功能,但这完全在SSIS之外。
如果您已经知道要插入的数据,请首先创建目标表(使用CREATE TABLE
),然后使用SSIS映射相应的列。如果目标表是动态的,那么您将很难使用常规的SSIS操作来匹配每个表的元数据,因为这是在设计时设置的。
如果问题不是表的列数据类型,而是操作的速度(SELECT ... INTO
的日志记录最少),则最快的选择是在操作上使用批量插入操作使用SQL Server时的目标组件。它比常规插入要快,但通常比直接从SQL执行SELECT ... INTO
要慢。