緩時變維度轉換會協調數據倉儲維度表中記錄的更新和插入。 例如,您可以使用此轉換來設定轉換輸出,將 AdventureWorks OLTP 資料庫中的 Production.Products 數據表的數據插入或更新到 AdventureWorksDW2012 資料庫的 DimProduct 表中。
這很重要
緩時變維度精靈僅支援 SQL Server 的連線。
「緩時變維度」轉換提供下列功能來管理緩時變維度:
比對內送數據列與查閱表格中的數據列,以識別新的和現有的數據列。
識別未允許變更的情況下包含變更的傳入資料列。
識別需要更新的推斷成員記錄。
識別內送數據列,其中包含需要插入新記錄和更新過期記錄的歷程記錄變更。
偵測內送數據列,其中包含需要更新現有記錄的變更,包括過期的記錄。
「緩時變維度」轉換支援四種類型的變更:變更屬性、歷程記錄屬性、固定屬性和推斷成員。
屬性的變更會覆寫現有的紀錄。 這種變更相當於類型 1 變更。 緩時變維度轉換會將這些數據列導向名為 「變更屬性更新輸出」的輸出。
歷程記錄屬性變更會建立新的記錄,而不是更新現有的記錄。 現有記錄中允許的唯一變更是數據行的更新,指出記錄是目前或已過期。 這種變更相當於類型 2 變更。 緩時變維度轉換將這些數據列導向兩個不同的輸出:歷程記錄屬性插入輸出和 新輸出。
固定屬性變更表示數據行值不得變更。 「緩慢改變的維度轉換」會偵測變更,並且可以將有變更的數據列導向到名為 固定屬性輸出 的輸出。
推斷成員表示該行是維度表中的推斷成員記錄。 當事實數據表參考尚未載入的維度成員時,就會有推斷的成員。 在預期相關的維度數據時,會建立最小推斷成員記錄,這會在後續載入維度數據時提供。 緩時變維度轉換會將這些數據列導向至名為 推斷成員更新的輸出。 載入推斷成員的數據時,您可以更新現有的記錄,而不是建立新的記錄。
備註
緩時變維度轉換不支援類型 3 變更,這需要變更維度數據表。 藉由識別具有固定屬性更新類型的數據行,您可以擷取類型 3 變更候選的數據值。
在運行時間,「緩時變維度」轉換會先嘗試比對連入數據列與查閱表格中的記錄。 如果找不到相符的項目,則輸入的資料列是新記錄;因此,「緩時變維度」轉換不會執行其他工作,並將資料列導向至 New Output。
如果找到匹配項目,「緩變維度」轉換會偵測列是否包含變更。 如果數據列包含變更,則緩時變維度轉換會識別每個數據行的更新類型,並將數據列導向 變更屬性更新輸出、 固定屬性輸出、 歷程記錄屬性插入輸出或 推斷的成員更新輸出。 如果數據列未變更,[緩時變維度] 轉換會將數據列導向至 [未變更的輸出]。
緩變維度轉換輸出
緩時變維度轉換有一個輸入,最多有六個輸出。 輸出將資料列導向至對應於資料列更新和插入需求的資料流子集。 此轉換不支援錯誤輸出。
下表描述轉換輸出及其後續數據流的需求。 需求描述 「緩時變維度精靈」所建立的數據流。
| 輸出 | 說明 | 數據流需求 |
|---|---|---|
| 變更屬性更新輸出 | 查找表中的記錄已更新。 此輸出用於變更屬性數據列。 | OLE DB 命令轉換會使用UPDATE語句來更新記錄。 |
| 固定屬性輸出 | 數據列中不能變更的值不符合查閱表格中的值。 此輸出用於固定屬性數據列。 | 不會建立預設數據流。 如果轉換設定為在遇到固定屬性數據行變更之後繼續,您應該建立可擷取這些數據列的數據流。 |
| 歷史屬性插入輸出 | 查閱表格至少包含一個相符的數據列。 標示為「目前」的數據列現在必須標示為「已過期」。 此輸出用於歷史屬性列。 | 衍生欄位轉換會針對過期的數據行和目前行指標建立新欄位。 OLE DB 命令轉換會更新現在必須標示為「已過期」的記錄。 具有新列數值的行會被導向至 [新增輸出],在該處插入該行並標示為「目前」。 |
| 推斷的成員更新輸出 | 插入推斷維度成員的數據列。 此輸出用於推斷的成員數據列。 | OLE DB 命令轉換會使用 SQL UPDATE 語句來更新記錄。 |
| 新增輸出 | 查閱表格不包含相符的數據列。 該列已新增至維度表。 此輸出用於新的數據列,以及歷程記錄屬性數據列的變更。 | 衍生的數據行轉換會設定目前的數據列指標,而 OLE DB 目的地會插入數據列。 |
| 未變更的輸出 | 查找表中的值符合行值。 此輸出用於未變更的數據列。 | 未建立預設數據流,因為緩時變維度轉換不會執行任何工作。 如果您想要擷取這些資料列,您應該為此輸出建立數據流。 |
商務金鑰
「緩速變維度」轉換至少需要一個業務鍵欄位。
逐步變換維度轉換不支援空值業務金鑰。 如果數據包含業務鍵列為空的行,則這些數據行應該從數據流中移除。 您可以使用條件式分割轉換來篩選業務索引鍵欄位中包含空值的資料列。 如需詳細資訊,請參閱 Conditional Split Transformation。
優化緩時變維度轉換的效能
如需如何改善緩時變維度轉換效能的建議,請參閱 數據流效能功能。
針對緩慢變更的維度轉換進行故障排除
您可以記錄「緩時變維度」轉換對外部資料提供者所做的呼叫。 您可以使用這項記錄功能,對「緩慢變化維度」轉換所連接的外部數據源的連線、命令和查詢進行疑難排解。 若要記錄「緩時變維度」轉換對外部數據提供者所做的呼叫,請啟用封裝記錄,然後在封裝層級選取 [診斷 ] 事件。 如需詳細資訊,請參閱 封裝執行疑難解答工具。
設定緩時變維度轉換
您可以透過 SSIS 設計師或以程式設計方式設定屬性。
如需有關可以在 [進階編輯器] 對話方塊中或以程式設計方式設定之屬性的詳細資訊,請按下列其中一個主題:
如需如何設定屬性的詳細資訊,請參閱 設定數據流元件的屬性。
設定緩時變維度轉換輸出
協調維度數據表中記錄的更新和插入可能是一項複雜的工作,尤其是在使用 Type 1 和 Type 2 變更時。 SSIS 設計工具提供兩種方式來設定緩時變維度的支援:
[ 進階編輯器] 對話框,您可以在其中選取連接、設定通用和自定義元件屬性、選擇輸入數據行,以及在六個輸出上設定數據行屬性。 若要完成設定緩時變維度支援的工作,您必須手動為緩時變維度轉換所使用的輸出建立數據流。 如需詳細資訊,請參閱 數據流。
[載入維度精靈] 會引導您完成設定緩時變維度轉換的步驟,並建置轉換輸出的數據流。 若要變更緩時變更維度的組態,請重新執行 [載入維度精靈]。 如需詳細資訊,請參閱 使用緩時變維度精靈設定輸出。
相關工作
相關內容
- 部落格文章: 優化緩時變維度精靈,blogs.msdn.com。