2009-06-16 69 views
1

什么是设计SSIS包装的最佳方式?作为项目的一部分,我正在加载多个维度和事实。是否会更好:SSIS包装设计

  1. 有1包和1数据流与1数据流中的所有数据提取和加载逻辑?
  2. 拥有1个包和多个数据流,每个数据流承担1维逻辑?
  3. 每个尺寸有一个包装,然后是一个可以调用它们的主包装?

做了一些研究之后,2和3似乎是更可行的选择。那里的任何专家想分享他们的经验和/或提出替代方案?

回答

2

微软Project Real是很多很多最佳实践一个很好的例子:

  • 包装设计和配置的三维建模
  • 包日志记录
  • 分区

这是基于SQL 20 05但非常适用于2008年。它支持您的选项#3。

+0

这是我们最终使用的设计选项,文档是最佳实践的一个很好的例子。 – CTKeane 2009-06-23 20:28:13

2

您也可以考虑让SQL Server代理作业调用多个包。

+0

+1这种方式给了你更多的灵活性(特别是当涉及到错误/错误时) – dkarzon 2009-06-23 05:03:34

0

我认为答案并不是很清楚......同样,DWH通常没有“最佳”设计,我认为没有一个“最佳”的包装方法。

它完全取决于尺寸的数量和相关尺寸的数量以及您的临时区域中的数据结构。

我非常喜欢Project Real(上面提到的)方法,尤其是认为软件包日志记录功能相当出色。我想我已经在某处读过Denali(SQL 2011)将会内置SSIS日志记录/跟踪功能,但不清楚细节。

从调用的角度来看,我会去找一个SQL代理作业,调用一个主包,然后调用所有的子包并管理它们之间的错误处理/逻辑/电子邮件等,利用日志/错误表来跟踪并管理包流。 SSIS允许更复杂的SQL代理集(例如,如果所有任务A和B和C已完成而不是任务D,则调用此子包)

此外,我将为每个Snowflaked维度通常来自分段数据,一个源表将生成许多雪花尺寸(例如DimProduct,DimProductCategory,DimProductSubCategory)。将数据一次读入数据流任务(DFT)并写出到多个表是有意义的。我会使用每个维度的一个容器来分离逻辑。