SQL Server/SSIS 강좌

조회 변환 – 참조 테이블을 이용하여 변환하기

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

조회 변환 – 참조 테이블을 이용하여 변환하기

 

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

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

 

[조회 변환]은 입력 데이터에 대해 코드 테이블 또는 디멘전 테이블과 같은 참조 테이블을 조회할 때 사용하는 변환 입니다.

조회 변환은 조인 연산(INNER JOIN 또는 OUTER JOIN)과 유사 합니다.

 

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

 

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

[조회 변환]이름을 지정하여 태스크를 생성 합니다.

 

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

 

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

 

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

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

 

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

 

편집기 창에는 다양한 설정을 지정 할 수 있습니다.

[일반]탭에서는 캐시 및 연결 모드를 선택 할 수 있습니다.

[캐시 모드]에서 [전체 캐시]를 선택하면 참조 테이블 전체를 메모리에 캐싱합니다. 이는 작업전 모든 데이터를 메모리로 로딩하는 작업이 수행 됩니다. [캐시 없음]을 선택하면 캐싱 작업을 하지 않습니다.

[연결 유형]에서는 OLE DB연결 관리자와 캐시 연결 관리자를 선택 할 수 있습니다.

 

 

[연결]탭에서는 OLE DB연결을 이용하여 조회 테이블 또는 조회에 이용할 쿼리를 지정합니다.

테이블을 지정할 수 있지만 [SQL 쿼리 결과 사용]을 선택하면 직접 쿼리문을 사용하여 성능상 유리 합니다.

(본 실습에서는 테이블을 선택 하도록 합니다. Adventureworks 의 [Person.StateProvince] 테이블 사용)

 

 

[열]탭에서는 입력열과 참조열을 매핑합니다. 마우스 오른쪽을 클릭하여 [매핑 편집] 메뉴를 실행 합니다.

 

[Stateprovince]로 매핑을 연결하고 사용가능한 조회열에서 [Name]을 선택 합니다.

조회작업에서는 AddressLine2로 출력을 지정합니다.

 

[고급] 탭에서는 사용자가 쿼리를 수정 할 수 있습니다. [매개변수] 버튼을 이용하여 매개 변수를 설정 할 수 있습니다.

 

[오루 출력] 탭에서는 오류 내역을 지정합니다.

 

 

[조회]작업에서 [대상 데이터] 작업으로 흐름선을 연결 합니다.

흐름선을 연결하면 아래 그림과 같이 [입/출력 선택] 창이 나타납니다.

 

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

 

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

[새로 만들기]를 선택하면 출력 테이블이 생성 됩니다.

 

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

 

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

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

 

패키지 작업이 완료 되었으면 SSMS를 실행하여 데이터를 확인 합니다.

데이터를 확인해 보면 StateProvince코드가 Name에서 Washington을 나타냄을 확인 할 수 있습니다.

[대상 테이블]을 보면 AddressLine2컬럼에 Name 내용이 변환되어 도시 이름이 나타난 것을 확인 할 수 있습니.

 

 

 

반응형