SQL Server/SSIS 강좌

피봇 해제 변환 – 피봇된 데이터를 테이블 형태로 변환

SungWookKang 2015. 7. 16. 10:11
반응형

피봇 해제 변환 – 피봇된 데이터를 테이블 형태로 변환

 

안녕하세요 강성욱 입니다. (www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

이번 시간에는 [피봇 해제 변환]에 대해서 알아 보도록 하겠습니다.

 

[피봇 해제 변환]은 피봇 변환과는 반대로 피봇 형태를 일반 테이블 형태로 출력하는 변환 작업 입니다.

 

[피봇 변환] 관련 링크

http://blog.naver.com/jevida/140160394207

 

 

[SSMS]를 실행하여 오늘 실습에 사용할 데이터를 생성 합니다.

지난 [피봇 변환]에서 성별에 대하여 피봇한 내용을 다시 테이블 형태로 출력하도록 합니다.

BEGIN TRY

    drop table SW_UnPIVOT

END TRY BEGIN CATCH END CATCH

GO

 

CREATE TABLE SW_UnPIVOT(

ID NVARCHAR(10),

AGE INT,

M INT,

F INT)

GO

 

INSERT INTO SW_UnPIVOT VALUES ('A', 35, 100, NULL)

INSERT INTO SW_UnPIVOT VALUES ('B', 25, 100, 200)

GO

 

 

[BIDS]를 실행 하여 [Integration Services 프로젝트]를 생성 합니다.

 

[제어 흐름] 탭에서 [데이터 흐름 태스크]를 드래그 앤 드롭으로 추가 합니다.

[피벗 해제 변환] 이름을 지정하여 태스크를 생성 합니다.

 

[데이터 흐름] 탭에서 그림과 같이 [원본 데이터(OLE DB 원본)]와 [대상 데이터(OLE DB 대상)]을 끌어다 놓습니다. 그 사이 [피벗 해제]작업을 추가하여 데이터 흐름선을 연결 합니다.

 

[원본 데이터]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

그림과 같이 편집 창이 나타나면 [OLE DB 연결 관리자]에서 원본 DB의 연결 관리자를 선택하고 해당 테이블을 선택하여 [미리보기]를 이용하여 정상적으로 데이터가 읽어오는지 확인 합니다.

( 본 실습에서는 위에서 생성한 예제 데이터를 이용 합니다.)

 

[피벗 해제]작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

아래 그림과 같이 [피벗 해제 변환 편집기] 창이 나타 납니다.

사용 가능한 입력열을 선택하고 이때 피벗에 사용할 열과 해제 열을 선택 합니다.

 

  • 대상 열(1) - 값으로 출력될 열의 이름을 지정 합니다.
  • 피벗키 값(2) – 피벗에서 열 속성의 열 이름을 지정 합니다.
  • 피벗 키 값 이름(3) – 피벗키 값(2)의 값들을 나타낼 열의 이름을 지정 합니다.

 

 

[대상 데이터] 작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

[OLE DB 연결 관리자]에서 대상 DB의 연결 관리자를 선택 합니다. 그리고 [새로 만들기] 버튼을 클릭하여 대상 테이블을 새로 만들어 봅니다. (이미 대상 테이블이 존재하는 경우 [테이블 이름 또는 뷰 이름]에서 대상 테이블을 선택 합니다.)

[새로 만들기]를 클릭하면 피봇해제 된 형태의 테이블 컬럼이 생성 됩니다.

 

[매핑] 탭으로 이동하여 대상이 적절히 매핑 되었는지 확인 합니다.

 

편집이 완료 되었으면 패지키를 실행 합니다.

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

 

패키지 작업이 완료 되었으면 SSMS를 실행하여 정상적으로 피봇 해제가 완료 되었는지 확인 합니다.

 

데이터를 확인하면 기존 성별 컬럼이 행으로 바뀌고 Cash컬럼이 생성되어 값이 입력된 것을 확인 할 수 있습니다.

 

이 작업은 피봇된 형태의 데이터를 언피봇하여 데이터를 정렬할 때 매우 유용하게 사용 될 듯 합니다. 통계 작업에서 피봇을 많이 사용하지만 집계된 데이터를 다시 언피봇 해야할 때 사용 하여 봅니다.

반응형