樞紐轉換會將正規化數據集透過以某一列的值作為樞紐,轉換成較不正規化但更精簡的版本。 例如,列出所購買客戶名稱、產品和數量的標準化 Orders 數據集,對於購買多個產品的任何客戶,通常會有多個數據列,而該客戶的每個數據列都會顯示不同產品的訂單詳細數據。 藉由在產品欄位上進行樞紐分析,樞紐轉換可以輸出每個客戶各有一列數據的數據集。 該單一數據列會列出客戶的所有購買專案,其中產品名稱顯示為數據行名稱,而數量會顯示為產品數據行中的值。 因為並非每個客戶購買每個產品,因此許多數據行可能包含 Null 值。
當數據集樞紐化時,輸入數據行會在樞紐處理中執行不同的角色。 欄位可以以以下方式參與:
欄位會以原樣傳遞至輸出。 因為許多輸入數據列只能產生一個輸出數據列,所以轉換只會複製數據行的第一個輸入值。
欄位充當識別一組記錄的索引鍵或索引鍵的一部分。
列定義旋轉。 此數據行中的值與樞紐數據集中的數據行相關聯。
數據行包含放置在樞紐建立之數據行中的值。
此轉換有一個輸入、一個一般輸出和一個錯誤輸出。
排序和複製資料列
若要有效地進行樞紐分析,這意味著在輸出數據集中儘可能建立最少的記錄,必須先根據樞紐列對輸入數據進行排序。 如果未排序數據,Pivot 轉換可能會針對設定索引鍵中的每個值產生多個記錄,也就是定義集合成員資格的數據行。 例如,如果數據集在 Name 列上透視,但名稱未排序,則輸出數據集可能會有一個以上的行對應到每個顧客,因為每次 Name 中的值變更時都會發生透視。
輸入數據可能包含重複的數據列,這會導致樞紐轉換失敗。 「重複的數據列」表示在設定索引鍵數據行和樞紐數據行中具有相同值的數據列。 若要避免失敗,您可以設定轉換,將錯誤數據列重新導向至錯誤輸出,或者您可以預先匯總值,以確保沒有重複的數據列。
樞紐對話框中的選項
您可以在 [樞紐] 對話框中設定選項,以設定 樞紐 作業。 若要開啟 樞紐 對話框,請將樞紐轉換新增至 SQL Server Data Tools (SSDT)中的封裝,然後在該元件上按右鍵,並點選 編輯。
下列清單描述 [ 樞紐 ] 對話框中的選項。
樞紐鍵
指定要用於資料表頂端資料列 (標頭數據列) 值的數據行。
設定索引鍵
指定要用於資料表左欄的值的欄位。 須於此欄排序輸入日期。
樞紐值
指定要用於數據表的欄位,但不包括標頭列中的值和左側欄位中的值。
忽略不相符的樞紐索引鍵值,並在數據流執行之後報告它們
選取此選項可設定 Pivot 轉換,以忽略 樞紐索引鍵 數據列中包含無法辨識值的數據列,並在執行封裝時將所有樞紐索引鍵值輸出至記錄訊息。
您也可以將轉換設定為輸出值,方法是將PassThroughUnmatchedPivotKeys自訂屬性設定為True。
從值產生樞紐輸出數據行
在此方塊中輸入樞紐鍵值,讓樞紐轉換用於每個值的建立輸出欄位。 您可以在執行封裝之前輸入值,或執行下列動作。
選取 [忽略不相符的樞紐索引鍵值並在數據流執行後回報它們] 選項,然後在 樞紐 對話方塊中按一下 [確定] 以儲存到樞紐轉換的變更。
執行封裝。
當封裝成功時,點擊進度索引標籤,然後尋找樞紐轉換中包含樞紐索引鍵值的資訊記錄訊息。
以滑鼠右鍵按兩下訊息,然後按下 [ 複製訊息文字]。
單擊 [偵錯] 功能表上的 [停止偵錯] 以切換至設計模式。
以滑鼠右鍵按一下樞紐轉換,然後按一下編輯。
取消選取 忽略不相符的樞紐索引鍵值 選項,然後在數據流執行後回報這些值,接著使用下列格式,將樞紐索引鍵值貼到 從值生成樞紐輸出欄 方塊中。
[value1],[value2],[value3]
立即產生數據行
按一下以針對 從值產生樞紐輸出欄 方塊中列出的每個樞紐索引鍵值建立輸出欄。
輸出欄位會出現在 現有樞紐輸出欄位 方塊中。
現有的樞紐輸出數據行
列出樞紐索引鍵值的輸出數據行
下表顯示在透過 Year 欄位旋轉之前的數據集。
| 年 | 產品名稱 | 總數 |
|---|---|---|
| 2004 | HL Mountain Tire | 1504884.15 |
| 2003 | 路輪胎管 | 35920.50 |
| 2004 | 水瓶 - 30 盎司。 | 2805.00 |
| 2002 | 旅行輪胎 | 62364.225 |
下表顯示以 Year 欄為基礎的樞紐分析之後的數據集。
| 2002 | 2003 | 2004 | |
|---|---|---|---|
| HL Mountain Tire | 141164.10 | 446297.775 | 1504884.15 |
| 路輪胎管 | 3592.05 | 35920.50 | 89801.25 |
| 水瓶 - 30 盎司。 | 零 | 零 | 2805.00 |
| 旅行輪胎 | 62364.225 | 375051.60 | 1041810.00 |
若要在 Year 欄位上進行數據的樞紐分析,如上所示,可在 樞紐 對話框中設定以下選項。
在 [ 樞紐索引鍵 ] 列表框中選取年份。
[ 設定金鑰 ] 清單框中已選取 [產品名稱]。
在 [ 樞紐值] 列表框中選取總計。
下列值會在 [ 從值產生樞紐輸出數據行 ] 方塊中輸入。
[2002],[2003],[2004]
樞紐轉換的設定
您可以透過 SSIS 設計師或以程式設計方式設定屬性。
如需您可以在 [ 進階編輯器] 對話框中設定之屬性的詳細資訊,請按下列其中一個主題:
相關內容
如需如何設定此元件屬性的詳細資訊,請參閱 設定數據流元件的屬性。