피벗 변환은 입력 데이터를 열 값에 맞춰 피벗하여, 정규화된 데이터 집합을 덜 정규화되지만 더 간결한 버전으로 만듭니다. 예를 들어 구매한 고객 이름, 제품 및 수량을 나열하는 정규화된 주문 데이터 집합에는 일반적으로 여러 제품을 구매한 모든 고객에 대해 여러 행이 있으며, 해당 고객의 각 행에는 다른 제품에 대한 주문 세부 정보가 표시됩니다. 피벗 변환은 제품 열에서 데이터 집합을 피벗하여 고객당 단일 행으로 데이터 집합을 출력할 수 있습니다. 이 단일 행에는 고객이 구매한 모든 항목과 제품 이름이 열 이름으로 표시되고 제품 열에 값으로 표시되는 수량이 나열됩니다. 모든 고객이 모든 제품을 구매하는 것은 아니므로 많은 열에 null 값이 포함될 수 있습니다.
데이터 세트를 피벗할 때 입력 열은 피벗 프로세스에서 다른 역할을 수행합니다. 열은 다음과 같은 방법으로 참여할 수 있습니다.
열은 변경되지 않은 상태로 출력으로 전달됩니다. 많은 입력 행이 하나의 출력 행만 발생할 수 있으므로 변환은 열의 첫 번째 입력 값만 복사합니다.
열은 레코드 집합을 식별하는 키 또는 키의 일부로써 작동합니다.
열은 피벗을 정의합니다. 이 열의 값은 피벗된 데이터 세트의 열과 연결됩니다.
열에는 피벗이 생성한 열에 배치되는 값들이 포함되어 있습니다.
이 변환에는 하나의 입력, 하나의 일반 출력 및 하나의 오류 출력이 있습니다.
행 정렬 및 복제
데이터를 효율적으로 피벗하려면 즉, 출력 데이터 세트에서 가능한 적은 수의 레코드를 만들려면 입력 데이터를 피벗 열에 정렬해야 합니다. 데이터가 정렬되지 않은 경우 피벗 변환은 집합 멤버 자격을 정의하는 열인 집합 키의 각 값에 대해 여러 레코드를 생성할 수 있습니다. 예를 들어 데이터 세트가 이름 열에 피벗되지만 이름이 정렬되지 않은 경우 이름 값이 변경될 때마다 피벗이 발생하기 때문에 출력 데이터 세트는 각 고객에 대해 둘 이상의 행을 가질 수 있습니다.
입력 데이터에 중복 행이 포함될 수 있으므로 피벗 변환이 실패합니다. "행 중복"은 설정된 키 열과 피벗 열에 동일한 값을 갖는 행을 의미합니다. 오류를 방지하려면 오류 행을 오류 출력으로 리디렉션하도록 변환을 구성하거나 중복 행이 없도록 값을 미리 집계할 수 있습니다.
피벗 대화 상자의 옵션
피벗 대화 상자에서 옵션을 설정하여 피벗 작업을 구성합니다. 피벗 대화 상자를 열려면 SSDT(SQL Server Data Tools)의 패키지에 피벗 변환을 추가한 다음 구성 요소를 마우스 오른쪽 단추로 클릭하고 편집을 클릭합니다.
다음 목록에서는 피벗 대화 상자의 옵션에 대해 설명합니다.
피벗 키
테이블의 맨 위 행(머리글 행)에 있는 값에 사용할 열을 지정합니다.
키 설정
테이블의 왼쪽 열에 있는 값에 사용할 열을 지정합니다. 입력 날짜는 이 열에서 정렬해야 합니다.
피벗 값
머리글 행 및 왼쪽 열의 값이 아닌 테이블 값에 사용할 열을 지정합니다.
일치하지 않는 피벗 키 값을 무시하고 DataFlow 실행 후 보고합니다.
피벗 키 열에 인식할 수 없는 값이 포함된 행을 무시하고 패키지가 실행될 때 모든 피벗 키 값을 로그 메시지에 출력하도록 피벗 변환을 구성하려면 이 옵션을 선택합니다.
변환을 구성하여 사용자 지정 속성을 True로 설정함으로써 값을 출력할 수도 있습니다.
값에서 피벗 출력 열 생성
피벗 변환에서 각 값에 대한 출력 열을 만들 수 있도록 하려면 이 상자에 피벗 키 값을 입력합니다. 패키지를 실행하기 전에 값을 입력하거나 다음을 수행할 수 있습니다.
일치하지 않는 피벗 키 값 무시를 선택하고 DataFlow 실행 옵션 후에 보고한 다음 피벗 대화 상자에서 확인을 클릭하여 피벗 변환에 대한 변경 내용을 저장합니다.
패키지를 실행합니다.
패키지가 성공하면 진행률 탭을 클릭하고 피벗 키 값이 포함된 피벗 변환에서 정보 로그 메시지를 찾습니다.
메시지를 마우스 오른쪽 단추로 클릭하고 메시지 텍스트 복사를 클릭합니다.
디버그 메뉴에서 디버깅 중지를 클릭하여 디자인 모드로 전환합니다.
피벗 변환을 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭합니다.
일치하지 않는 피벗 키 값 무시 옵션의 선택을 취소하고 DataFlow 실행 후에 보고합니다. 그런 다음 다음 형식으로 값에서 피벗 출력 열 생성 상자에 피벗 키 값을 붙여넣습니다.
[value1],[value2],[value3]
지금 열 생성
각 피벗 키 값에 대해 값에서 피벗 출력 열 생성 상자에 나열된 출력 열을 만들려면 클릭하세요.
출력 열은 기존 피벗 출력 열 상자에 표시됩니다.
기존 피벗 출력 열
피벗 키 값의 출력 열을 나열합니다.
다음 표에서는 데이터가 Year 열에 피벗되기 전의 데이터 집합을 보여줍니다.
| 연도 | 제품 이름 | 총계 |
|---|---|---|
| 2004 | HL 마운틴 타이어 | 1504884,15 |
| 2003 | 도로 타이어 튜브 | 35920.50 |
| 2004 | 물병 - 30 온스. | 2805.00 |
| 2002 | 투어링 타이어 | 62364.225 |
다음 표는 데이터가 연도 열에 피벗된 후의 데이터 세트를 보여줍니다.
| 2002 | 2003 | 2004 | |
|---|---|---|---|
| HL 마운틴 타이어 | 141164.10 | 446,297.775 | 1504884.15 |
| 도로 타이어 튜브 | 3592.05 | 35920.50 | 89801.25 |
| 물병 - 30 온스. | NULL | 널 | 2805.00 |
| 투어링 타이어 | 62364.225 | 375051.60 | 1041810.00 |
위와 같이 Year 열의 데이터를 피벗하려면 피벗 대화 상자에 다음 옵션이 설정됩니다.
피벗 키 목록 상자에서 연도가 선택됩니다.
키 설정 목록 상자에서 제품 이름이 선택됩니다.
피벗 값 목록 상자에서 합계가 선택됩니다.
피벗 출력 열을 값에서 생성 상자에 다음 값이 입력됩니다.
[2002],[2003],[2004]
피벗 변환 구성
SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.
고급 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목 중 하나를 클릭합니다.
관련 내용
이 구성 요소의 속성을 설정하는 방법에 대한 자세한 내용은 데이터 흐름 구성 요소의 속성 설정을 참조하세요.