设计SSIS包的最佳方法是什么?我正在加载多个维度和事实作为项目的一部分。会不会更好:
做了一些研究后,2和3似乎是更可行的选择。那里有想分享经验和/或提出替代方案的专家吗?
答案 0 :(得分:2)
您还可以考虑使用SQL Server代理作业调用多个包。
答案 1 :(得分:2)
答案 2 :(得分:1)
我经常会选择选项3.这是Kimball Microsoft Data Warehouse Toolkit一书中使用的方法,值得一读。
答案 3 :(得分:0)
我认为答案并不是那么明确......就像DWH经常没有“最佳”设计一样,我认为没有一种“最佳”的包装方法。
这完全取决于维度的数量,相关维度的数量以及暂存区域中的数据结构。
我非常喜欢Project Real(上面提到的)方法,特别是认为包日志记录做得很好。我想我已经读过Denali(SQL 2011)内置的SSIS日志记录/跟踪,但不确定细节。
从调用的角度来看,我会选择一个SQL代理作业,它调用一个主程序包,然后调用所有子程序包并管理它们之间的错误处理/逻辑/电子邮件等,利用日志/错误表来跟踪和管理包流。 SSIS允许SQL代理更复杂的逻辑集(例如,如果所有任务A和B和C都完成而不是任务D,则调用此子包)
此外,我会为每个Snowflaked维度寻找一个包,因为通常从登台数据中,一个源表将生成许多雪花维度(例如DimProduct,DimProductCategory,DimProductSubCategory)。将数据读入数据流任务(DFT)并写入多个表是有意义的。我会为每个维度使用一个容器来分离逻辑。