樞紐轉換
「樞紐」轉換可藉由樞紐資料行值上的輸入資料,將正規化的資料集轉換為較不正規但更精簡的版本。 例如,列出客戶名稱、產品及購買數量的正規化 Orders 資料集,對於購買多個產品的客戶一般都具有多個資料列,且該客戶的每個資料列都顯示不同產品的訂單詳細資料。 藉由樞紐產品資料行上的資料集,「樞紐」轉換可以為每位客戶輸出含單一資料列的資料集。 該單一資料列會列出客戶購買的所有產品,產品名稱顯示為資料行名稱,而數量則顯示為產品資料行中的值。 因為不是每位客戶都會購買所有產品,所以許多資料行可能包含 Null 值。
當樞紐資料集時,輸入資料行會在樞紐處理中執行不同的角色。 資料行的參與方式如下:
資料行未經變更便傳送至輸出。 因為許多輸入資料列只產生一個輸出資料列,所以轉換僅複製資料行的第一個輸入值。
資料行用作識別一組記錄的索引鍵或索引鍵的一部分。
資料行定義樞紐。 此資料行中的值與已樞紐之資料集中的資料行關聯。
資料行包含樞紐建立之資料行中的值。
這個轉換有一個輸入、一個規則輸出及一個錯誤輸出。
排序和複製資料列
若要有效地樞紐資料 (即在輸出資料集中建立盡可能少的記錄),輸入資料必須根據樞紐資料行進行排序。 如果資料未排序,「樞紐」轉換可能會為集索引鍵 (定義集成員資格的資料行) 中的每個值產生多筆記錄。 例如,如果資料集在 Name 資料行上進行樞紐但名稱未排序,則輸出資料集中的每位客戶可能會一個以上的資料列,因為 Name 中的值在每次變更時都會進行樞紐。
輸入資料可能會包含重複資料列,因而造成「樞紐」轉換失敗。" 「重複資料列」表示集索引鍵資料行及樞紐資料行中有相同值的資料列。 若要避免失敗,您可以設定轉換,而將錯誤資料列重新導向至錯誤輸出,也可以預先彙總值,以確定沒有重複資料列。
樞紐對話方塊中的選項
您可以在 [樞紐] 對話方塊中設定選項,以設定樞紐作業。 若要開啟 [樞紐] 對話方塊,請將樞紐轉換加入至 SQL Server Data Tools (SSDT) 中的封裝,然後以滑鼠右鍵按一下元件,再按一下 [編輯]。
下列清單描述 [樞紐] 對話方塊中的選項。
樞紐索引鍵
指定要用於跨資料表頂端列 (標頭資料列) 之值的資料行。設定索引鍵
指定要用於資料表左側資料行之值的資料行。 輸入日期必須儲存在此資料行上。樞紐值
指定要用於跨資料表值 (非標頭資料列或左側資料行中的值) 的資料行。忽略不相符的樞紐索引鍵值,並在 DataFlow 執行後回報
選取此選項可將樞紐轉換設定為忽略包含 [樞紐索引鍵] 資料行中未辨識之值的資料列,並在執行封裝時,將所有樞紐索引鍵值輸出至記錄訊息。您也可以將 PassThroughUnmatchedPivotKeys 自訂屬性設定為 True,以便將轉換設定為輸出值。
根據值產生樞紐輸出資料行
在此方塊中輸入樞紐索引鍵值,讓樞紐轉換針對每個值建立輸出資料行。 您可以在執行封裝之前輸入值,或執行下列操作。選取 [忽略不相符的樞紐索引鍵值,並在 DataFlow 執行後回報] 選項,然後在 [樞紐] 對話方塊中按一下 [確定],以儲存樞紐轉換的變更。
執行封裝。
當封裝成功時,按一下 [進度] 索引標籤,然後從包含樞紐索引鍵值的樞紐轉換中尋找資訊記錄訊息。
以滑鼠右鍵按一下訊息,然後按一下 [複製訊息文字]。
按一下 [偵錯] 功能表上的 [停止偵錯] 以切換到設計模式。
以滑鼠右鍵按一下樞紐轉換,然後按一下 [編輯]。
取消核取 [忽略不相符的樞紐索引鍵值,並在 DataFlow 執行後回報] 選項,然後使用下列格式,將樞紐索引鍵值貼到 [根據值產生樞紐輸出資料行] 方塊中。
[value1],[value2],[value3]
立即產生資料行
按一下以便針對 [根據值產生樞紐輸出資料行] 方塊中列出的每個樞紐索引鍵值,建立輸出資料行。輸出資料行會出現在 [現有的樞紐輸出資料行] 方塊中。
現有的樞紐輸出資料行
列出樞紐索引鍵值的輸出資料行
下表顯示資料在年資料行上樞紐之前的資料集。
年 |
產品名稱 |
總計 |
---|---|---|
2004 |
HL Mountain Tire |
1504884.15 |
2003 |
Road Tire Tube |
35920.50 |
2004 |
Water Bottle – 30 oz. |
2805.00 |
2002 |
Touring Tire |
62364.225 |
下表顯示資料在 Year 資料行上進行樞紐之後的資料集。
2002 |
2003 |
2004 |
|
---|---|---|---|
HL Mountain Tire |
141164.10 |
446297.775 |
1504884.15 |
Road Tire Tube |
3592.05 |
35920.50 |
89801.25 |
Water Bottle – 30 oz. |
NULL |
NULL |
2805.00 |
Touring Tire |
62364.225 |
375051.60 |
1041810.00 |
若要在年資料行上樞紐資料 (如上所示),則會在 [樞紐] 對話方塊中設定下列選項。
年在 [樞紐索引鍵] 清單方塊中呈選取狀態。
產品名稱在**[設定索引鍵]** 清單方塊中呈選取狀態。
總計在 [樞紐值] 清單方塊中呈選取狀態。
在 [根據值產生樞紐輸出資料行] 方塊中會輸入下列值。
[2002],[2003],[2004]
設定樞紐轉換
您可以透過「SSIS 設計師」或以程式設計方式設定屬性。
如需有關 [進階編輯器] 對話方塊中可設定屬性的詳細資訊,請按一下下列其中一個主題:
相關內容
如需如何設定此元件屬性的詳細資訊,請參閱<設定資料流程元件的屬性>。
相關內容
|