다음을 통해 공유


피벗 변환

적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime

피벗 변환은 입력 데이터를 열 값으로 피벗하여 정규화된 데이터 집합을 정규화되지는 않았지만 더 압축된 버전으로 만들어 줍니다. 예를 들어 고객 이름, 제품 및 구매 수량이 나열된 정규화된 Orders 데이터 집합에는 일반적으로 여러 제품을 구매한 고객에 대해 여러 행이 포함되어 있으며, 각 행에는 해당 고객의 각 제품 주문 정보가 표시되어 있습니다. 피벗 변환은 제품 열에서 데이터 집합을 피벗함으로써 고객당 단일 행으로 데이터 집합을 출력할 수 있습니다. 해당 단일 행에서는 고객이 구매한 모든 항목이 나열되고 있으며 제품 이름은 열 이름으로 나열이 되고 수량은 제품 열에 값으로 표시되게 됩니다. 모든 고객이 모든 제품을 구매하는 것은 아니기 때문에 여러 열에 Null 값이 포함될 수 있습니다.

데이터 세트가 피벗되면 입력 열은 피벗 프로세스에서 서로 다른 역할을 수행합니다. 열은 다음과 같은 방법으로 참여해 보실 수 있습니다:

  • 열이 변경되지 않은 상태로 출력에 전달됩니다. 많은 입력 행이 하나의 출력 행만 발생할 수 있기 때문에 변환은 열의 첫 번째 입력 값만 복사합니다.

  • 열은 레코드 집합을 식별하는 키 혹은 키의 일부 역할을 담당합니다.

  • 열이 피벗을 정의합니다. 이 열의 값은 피벗된 데이터 세트의 열과 연결됩니다.

  • 열에는 피벗이 만드는 열에 배치되는 값을 포함합니다.

이러한 변환에는 입력 1개, 정규 출력 1개, 오류 출력 1개가 있습니다.

행 정렬 및 중복

출력 데이터 세트에서 레코드를 가능한 적게 만들 수 있도록 데이터를 효율적으로 피벗하려면 입력 데이터가 피벗 열에서 정렬되어 있어야 합니다. 데이터가 정렬되지 않은 경우애는 피벗 변환은 집합 구성원 자격을 정의내리는 열인 집합 키의 각 값에 대해 여러 기록을 만들어 낼 수 있습니다. 예를 들면 데이터 세트가 이름 열에 피벗되지만 이름이 정렬되지 않은 경우에는 이름 값이 변경될 때마다 피벗이 발생하게 되기 때문에 출력 데이터 세트는 각 고객에 대해 둘 이상의 행을 가지고 있을 수 있습니다.

입력 데이터에 중복 행이 포함될 수 있기 때문에 피벗 변환이 실패할 수 있는 것입니다. "중복 행"은 설정된 키 열과 피벗 열에서 동일한 값을 가지고 있는 행을 의미합니다. 오류를 방지하기 위해 오류 행을 오류 출력으로 리디렉션하도록 변환을 구성하거나 값을 미리 집계하여 중복되는 행이 없는지를 확인해 보실 수 있습니다.

피벗 대화 상자의 옵션

피벗 대화 상자에서 옵션을 설정하고 피벗 작업을 만들어 보실 수 있습니다. 피벗 대화 상자를 열기 위해 구조적 쿼리 언어 서버 데이터 도구 (구조적 쿼리 언어 서버 통합 서비스)에서 피벗 변환을 패키지에 추가한 이후에 구성 요소를 마우스 오른쪽 단추로 클릭하고 편집을 클릭해 주세요.

다음 목록에서는 피벗 대화 상자의 옵션에 대해 설명해 드립니다.

피벗 키
테이블의 맨 위의 행(머리글 행)에 있는 값에 사용하기 위한 열을 지정해 주세요.

키 설정
테이블의 왼쪽 열에 있는 값에 사용할 열을 지정해 주세요. 입력 날짜는 이 열에서 정렬해 주셔야 합니다.

피벗 값
머리글 행과 왼쪽 열의 값 이외에 테이블값으로 사용할 열을 지정해 주세요.

일치하지 않는 피벗 키 값을 무시하고 DataFlow 실행 후 보고
패키지를 실행할 때 피벗 키 열에서 인식할 수 없는 값이 포함되어 있는 행을 무시하고 모든 피벗 키 값을 로그 메시지로 출력하기 위한 피벗 변환을 구성하려면 이 옵션을 선택해 주세요.

PassThroughUnmatchedPivotKeys 사용자 지정 속성을 True로 설정함으로써 값을 출력하기 위한 변환을 만들어 보실 수 있습니다.

값에서 피벗 출력 열 생성
피벗 변환을 활성화하기 위한 각 값에 대한 출력 열을 생성하기 위해 이 상자에 피벗 키 값을 입력해 주세요. 패키지를 실행하기 이전에 값을 입력하거나 다음을 실행해 보실 수 있습니다.

  1. 일치하지 않은 피벗 키 값을 무시하며 DataFlow 실행한 이후에 보고 옵션을 선택하고 나서 피벗 대화 상자에서 확인을 클릭하고 피벗 변환에 대한 변경 사항을 저장해 주세요.

  2. 패키지를 실행합니다.

  3. 패키지가 성공하면 진행률 탭을 클릭하고 피벗 변환에서 피벗 키 값이 포함된 정보 로그를 찾아 봅니다.

  4. 메시지를 마우스 오른쪽 단추로 클릭한 다음 메시지 텍스트 복사를 클릭합니다.

  5. 디버그 메뉴에서 디버깅 중지를 클릭하고 디자인 모드로 전환해 주세요.

  6. 피벗 변환을 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭합니다.

  7. 일치하지 않는 피벗 키값을 무시하며 DataFlow 실행한 이후에 보고 옵션을 선택 취소하고 나서 다음 형식을 사용하여 값에서 피벗 출력 열 만들기 상자에 피벗 키 값을 붙여넣어 주세요.

    [value1],[value2],[value3]

지금 열 만들기
값에서 피벗 출력 열 만들기 상자에 나열된 각 피벗 키 값에 대한 출력 열을 만들기 위해서 클릭해 주세요.

출력 열은 기존 피벗 출력 열 상자에 표시됩니다.

기존 피벗 출력 열
피벗 키 값에 대한 출력 열 나열

다음 표에서는 데이터가 연도열에서 피벗되기 이전의 데이터 집합을 보여줍니다.

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

다음 표에서는 데이터가 연도열에서 피벗된 이후의 데이터 집합을 보여줍니다.

제품 이름 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 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.

고급 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오:

이 구성 요소의 속성을 설정하는 방법에 대한 자세한 정보는데이터 흐름 구성 요소의 속성 설정을 참고해 주세요.

참고 항목

피벗 해제 변환
데이터 흐름
Integration Services 변환