SQL Server/SSIS 강좌

파생 열 - 다양한 함수를 사용하여 새로운 파생열을 만들자

SungWookKang 2015. 7. 16. 09:50
반응형

파생 열 - 다양한 함수를 사용하여 새로운 파생열을 만들자

 

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

이번 시간에는 [파생 열]에 대해서 알아 보도록 하겠습니다.

파생 열은 SQL에서 계산된 열과 같이 기존의 열을 이용하여 새로운 열을 변환하는 기능 입니다. 예를들어 A, B컬럼이 있을 때 A+B를 정의하는 새로운 열 C를 만드는 기능입니다.

파생 열 변환은 데이터 변환과 거의 유사하지만 색로운 열을 추가하는 대신 기존을 대체 할 수도 있으며 여러가지 함수를 활용 함으로써 열 외에도 SSIS의 사용자 변수나 시스템 변수를 포함시킬 수도 있습니다.

길이, 전체 자릿수, 소수 자릿수, 코드페이지 등과 같은 속성은 데이터 변환 부분과 동일 합니다.

관련 링크

데이터 변환 : http://blog.naver.com/jevida/140158650970

 

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

 

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

[파생 열]이름을 지정하여 태스크를 생성 합니다.

 

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

 

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

 

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

(본 실습에서는 Adventureworks의 Address 테이블 사용)

 

[파생 열]작업에서 마우스 오른쪽을 클릭하여 편집을 선택 합니다.

 

아래 그림과 같이 [파생 열 변환 편집기]가 실행 됩니다.

편집기에 보면 상단이 창에는 새로운 값을 만들기 위한 [변수], [열] 그리고 [수치 연산 함수], [문자열 함수], [날짜/시간 함수], [NULL 함수], [유형 캐스트], [연산자]등 다양한 함수가 있습니다.

 

각 변수 및 함수들을 확장하여 살펴 보면 다양한 변수 및 함수가 제공됨을 확인 할 수 있습니다. 사용자는 필요에 따라 다양하게 사용할 수 있습니다.

 

이번 실습에서는 간단하게 소문자를 대문자로 바꾸는 [UPPER]함수를 사용해서 파생 열을 만들어 보도록 하겠습니다.

[UPPER]함수를 드래그 앤 드롭으로 [식] 항목에 끌어다 놓습니다. 그리고 상단의 박스에서 [Address1]열을 드래그 앤 드롭으로 [식] 항목에 끌어다 놓습니다. 조금 전 끌어다 놓은 [식]항목을 문법에 맞게 수정 합니다. 그리고 파생 열의 이름을 지정 합니다. 실습에서는 [UPPER_FUNC]라는 이름의 파생 열을 지정하였습니다.

 

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

 

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

[새로 만들기]를 선택하면 [파생 열]작업에 추가 하였던 컬럼이 자동으로 생성됨을 확이 할 수 있습니다.

 

[매핑] 탭으로 이동하여 해당 데이터의 원본과 대상이 적절히 매핑 되었는지 확인 합니다.

 

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

늘 그러듯!

녹색 : 정상실행

빨간색 : 오류 발생

 

패키지 작업이 완료 되었으면 SSMS를 실행하여 실제로 데이터가 정상적으로 변환되어 파생 되었는지 확인 합니다.

 

 

정상적으로 데이터가 대문자로 치환되어 파생된 것을 확인 할 수 있습니다.

 

대용량 작업에서 여러가지 함수 및 변수를 사용하여 데이터를 파생하거나 치환 할 때 매우 유용하게 사용할 수 있을 듯 합니다.

반응형