首页 > 解决方案 > SSIS:执行 SQL 任务与数据流任务

问题描述

我是 SSIS 的新手。当所有数据库都在 SQL Server 上时,是否可以在没有数据流任务(以及因此数据流选项卡)的情况下使用 ETL 流程的“执行 SQL 任务”执行所有操作?

也就是说,可以使用“控制流选项卡”中的“执行 SQL 任务”完成所有操作(ETL)吗?

当我可以使用“执行 SQL 任务”完成所有操作时,我不明白为什么要使用“数据流任务”以及“数据流选项卡”。

标签: sql-servertsqlssisetl

解决方案


与大多数问题一样,这里的答案很明确,“视情况而定”。

如果您的所有数据都在 SQL Server 中,并且所有数据库都在同一台服务器上(并且在可预见的未来很可能会保持这种状态),那么不,您根本不需要使用数据流任务。但是,正如评论中所指出的,如果是这样的话,你也根本不需要 SSIS。在一台服务器上,您可以使用存储过程完成所有事情,并通过 SQL 代理作业进行编排。

另一方面,如果您要从多个服务器访问数据,比如源系统和仓库系统,或者生产服务器和报告环境,或者从不同的平面文件导入数据,那么 SSIS 提供了一个相当简单的移动路径从服务器 A 到服务器 B 的数据。无需担心链接服务器,并且通常比链接服务器具有更好的性能。即使设置了一个中等高级的 SSIS 包,您也可以添加参数,以便灵活地将数据库从一台服务器移动到另一台服务器,而无需更改代码。

一个成熟的 SSIS 框架(或任何 ETL 工具集,实际上)可以使您的 ETL 代码与您的服务器和数据库架构的绑定不那么紧密,并且对其中任何一个的更改都更易于执行,而不会对另一个产生负面影响。


推荐阅读