데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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

 

안녕하세요 강성욱 입니다.(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 내용이 변환되어 도시 이름이 나타난 것을 확인 할 수 있습니. 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp



No. Subject Author Date Views
» SSIS - 조회 변환 - 참조 테이블을 이용하여 변환하기 jevida(강성욱) 2012.11.30 7615
1512 SSIS - 유사 항목 그룹화 - 입력 데이터 중 유사한 항목을 그룹핑 하자!! jevida(강성욱) 2012.11.30 7440
1511 SSIS - 유사 항목 조회 - 유사 항목을 조회하여 클렌징을 해보자! jevida(강성욱) 2012.11.30 7446
1510 SSIS - 행 개수 - 작업 행의 개수를 출력하자! [1] jevida(강성욱) 2012.11.30 9783
1509 SSIS - 행 샘플링 / 비율 샘플링 - 데이터를 샘플링 하자! jevida(강성욱) 2012.11.30 7920
1508 특정 DB의 모든 varchar(?)의 collate를 변경해보자 [5] 차주언 2012.11.09 8734
1507 Linked Server Open Query 이용 시 USE 명령어 사용하기 [1] 쓸만한게없네(윤선식) 2012.11.07 50763
1506 SQL Server Analysis Services (SSAS) 2012 쿼리로그 설정 에러시 해결방법 열이 2012.10.19 11152
1505 SQL 공통 BULK INSERT 시 ROWTERMINATOR 지정으로 인한 서버 크래쉬 mcdasa 2012.10.13 10530
1504 인증서를 사용한 프로시저 서명 예제 [1] blahblah 2012.10.11 7315
1503 테이블/쿼리 -> html table blahblah 2012.10.11 9262
1502 SSMS Addin 만들기(1) MessageBox 띄워보기 [3] jn 2012.09.26 10388
1501 SQL Server 2012 평가판에서 정식 버젼으로 업그레이드하기. [1] 쓸만한게없네(윤선식) 2012.09.24 22693
1500 Using the ROLLUP, CUBE and GROUPING SET operator in a GROUP BY Clause [1] 건우아빠 2012.09.14 7804
1499 How to save results of a procedure with more than one result set 건우아빠 2012.09.14 7538
1498 SQL Server Schedule에 대한 이야기 [1] 이스트럭(강동운) 2012.09.06 16599
1497 ISNUMERIC .... [5] 이스트럭(강동운) 2012.09.04 8734
1496 Recover access to a SQL Server instance - NT AUTHORITY\SYSTEM Login [발요약] [1] 열이 2012.09.04 10360
1495 MongoDB Log 파일을 SQL Server로 넣어봅시다. 이스트럭(강동운) 2012.09.04 9005
1494 SQL2012 DBCC LOGINFO and CHECKDB 형식 변경 열이 2012.09.03 23099





XE Login