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