2009-06-16 63 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)並寫出到多個表是有意義的。我會使用每個維度的一個容器來分離邏輯。