피봇 해제 변환 – 피봇된 데이터를 테이블 형태로 변환
안녕하세요 강성욱 입니다. (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컬럼이 생성되어 값이 입력된 것을 확인 할 수 있습니다.
이 작업은 피봇된 형태의 데이터를 언피봇하여 데이터를 정렬할 때 매우 유용하게 사용 될 듯 합니다. 통계 작업에서 피봇을 많이 사용하지만 집계된 데이터를 다시 언피봇 해야할 때 사용 하여 봅니다.
'SQL Server > SSIS 강좌' 카테고리의 다른 글
스크립트 구성 요소 – [데이터 변환] 사용 (0) | 2015.07.16 |
---|---|
스크립트 구성 요소 – [데이터 원본] 사용 (6) | 2015.07.16 |
피봇 변환 – 데이터 행렬 변환 (0) | 2015.07.16 |
조회 변환 – 참조 테이블을 이용하여 변환하기 (0) | 2015.07.16 |
유사 항목 그룹화 – 입력 데이터 중 유사한 항목을 그룹핑하자 (2) | 2015.07.16 |