Pat*_*erg 2 sql-server etl ssis
给定的是一个 ETL 过程,它可以使用传统的 SQL 正常工作。
利用 ALTER TABLE 权限并执行分区切换、索引创建、分区截断和统计更新,该过程得到了很好的优化。
此外,还可以使用适合该工作的调度程序。
将 SSIS 引入项目会获得什么好处?我还会因为 SSIS 在较低层连接到数据库而不需要 ALTER TABLE 权限吗?
如果另外考虑到项目很小,仅涉及一个非常大的事实表并创建仅通过 SQL(无分析服务)访问的数据仓库,这是否会影响问题的答案?
在我看来,SSIS 的主要优势是1)能够跨服务器执行其他未链接的操作(例如通过链接服务器)和2)并行执行操作的能力(例如多个执行 SQL 任务同时运行) .
如果您使用的是传统 SQL,那么您可能不需要 1),但您可能需要 2)。您的 ETL 必须连续运行,一个接一个。如果您查看整个 ETL 过程,是否有任何任务可以并行运行从而可能节省您的时间?
SSIS 还具有其他一些功能,例如脚本组件和脚本任务允许您访问复杂的 .net 脚本,而无需在 SQL Server 中使用 CLR。模糊分组任务允许您对相似的术语进行分组以进行比较,比 Soundex 好得多!还有第三方加载项,例如 CozyRoc,它具有大大改进的 Excel 连接器和分区任务。
关于权限,在 SQL 代理下运行的 SSIS 作业通常在 SQL 代理帐户的上下文下运行,但您可以使用代理更改此设置。
关于您的项目规模,使用 SSIS 将使您能够在未来扩展,例如,如果您突然必须处理 10 个事实而不是 1 个,您可以并行执行此操作,而您当前的流程则必须执行一个在另一个之后,可能在同一时间。也许您的调度程序处理一些并行性,但我无法想象它会具有 SSIS 为您提供的控制级别(例如条件流、重定向错误输出)。
HTH