我不想在一个包中有200个数据流。打开并验证所需的时间会使您变老。
EzAPI很有趣,但是如果您是.NET 和 SSIS的新手,那么,天哪,您不要这样。我认为与实际完成工作相比,您将花费更多的时间来学习SSIS对象模型以及可能与COM进行处理。
由于我很懒,因此我将BIML插入为您没有列出的免费选项。来自SO的答案/programming/13809491/generating-several-like-ssis-packages-file-data-source-to-db/13809604#13809604
- 比姆是有趣的野兽。Varigence会很乐意向您出售Mist许可证,但这不是必需的。您所需要的只是BIDSHelper,然后浏览BimlScript,寻找适合您需求的食谱。一旦有了它,单击BIDSHelper中的上下文相关菜单按钮,然后飞快移动,它将生成软件包。
我认为这对您也可能是一种方法。您定义BIML来描述软件包的行为,然后生成它们。在这种情况下,您描述了要在哪里进行更改并且必须修复N个软件包,不,您可以修复问题的定义并重新生成软件包。
或者,如果您对框架足够熟悉,则可以使用EzAPI之类的东西来修复所有损坏的东西。哎呀,既然您将其标记为2005,那么如果您需要对现有软件包进行大规模修改,也可以尝试使用PacMan。
SSIS设计注意事项
一般来说,我试图使我的软件包专注于解决单个任务(加载销售数据)。如果那需要2个数据流,那就这样吧。我讨厌继承的是导入导出向导中的一个程序包,在一个程序包中有许多不相关的数据流。将它们分解成可以解决特定问题的东西。随着表面积的减少,未来的增强功能的风险降低。另一个好处是,DimProducts
当我的小仆处理加载SnowflakeFromHell
程序包时,我可以进行加载。
然后,使用主软件包来编排子工作流程。我知道您使用的是2005,但是SQL Server 2012的SSIS版本是猫的睡衣。我喜欢项目部署模型以及程序包之间的紧密集成。
TSQL vs SSIS(我的故事)
至于纯TSQL方法,在先前的工作中,他们使用了73个步骤的工作将所有Informix数据复制到SQL Server中。通常需要大约9个小时,但可能会延长到12个小时左右。在他们购买了新的SAN之后,它的运行时间减少了大约7个小时以上。相同的逻辑过程,用SSIS重写是在不到2个小时的时间内。减少时间的最大因素很容易就是我们使用SSIS获得的“免费”并行化。代理作业以串行方式运行所有这些任务。主程序包基本上将表划分为处理单元(“运行复制表1”,表2等的5组并行的串行化任务集),在这里我试图将存储桶划分为近似相等大小的工作单元。这样一来,可以迅速填充60多个查找参考表,然后当处理过程进入“
使用SSIS的其他好处是,我可以“自由”配置,登录并访问.NET库以获取方形数据,而我需要将这些数据粘贴到圆孔中。我认为由于野兽的图形特性,与单纯的TSQL方法相比,维护(取消维护)SSIS包会更容易。
与往常一样,您的里程可能会有所不同。