외부 컴포넌트 등록 및 Foreach 루프 컨테이너 이용하기
SSIS의 여러 가지 많은 장점들 중 하나는, 작업(Task)및 변환, 원본, 대상 등의 SSIS 개체를 쉽게 만들고, 또한 쉽게 등록하여 사용할 수 있다는 점입니다. SSIS가 나온 지는 얼마 되지 않았지만, 이미 시중에는 다양한 형태의 작업 컴포넌트들이 개발되어 있습니다. 이번 글에서는, 이러한 외부 컴포넌트 중, 파일을 압축해 주는 작업을 이용한 데모로 설명하겠습니다.
우선 첨부 파일(CompressionSetup.msi)을 다운 받은 후, 실행하셔서 시스템에 해당 작업을 등록해 주시기 바랍니다. 참고로, 이 컴포넌트는 thejoyofcode.com 이라는 사이트에서 개발하여 배포한 것으로, http://www.thejoyofcode.com/SSIS_Compress_File_Task.aspx 에 가시면, 해당 컴포넌트의 원본 소스도 같이 받으실 수 있습니다.
따라하기) 컴포넌트 설치하기
1. compressionsetup.msi를 다운 받은 후, 실행하여 시스템에 설치 합니다.
2. 설치가 된 후에는 특별히 작업 폴더나 메시지 등이 나타나지는 않습니다. 이제 SSIS 빈 프로젝트를 하나 띄웁니다.
왼편의 도구 상자에서 마우스 오른쪽 클릭을 한 후, 메뉴 중에서 항목 선택(I)을 클릭합니다.
3. 도구 상자 항목 선택 창에서 SSIS 제어 흐름 항목에 있는 Compress File Task를 체크합니다. 이번에 추가한 작업은 제어 흐름 항목이기 때문에 제어 흐름 탭에 나타난 것이며, 만약 변환 작업 관련 작업인 경우, 자동으로 SSIS 데이터 흐름 항목에 나타나게 됩니다.
4. 도구 상자의 제어 흐름 항목 가장 아래에 Compressed File Task 작업이 추가된 것을 확인하실 수 있습니다.
비교적 간단하지요? 이와 같이 여러 작업들을 등록할 수 있습니다.
따라하기) Compress File Task 와 Foreach 루프컨테이너를 이용하여 특정 폴더의 파일 압축하기
Foreach 루프 컨테이너와 방금 설치한 Compress File Task를 이용하여 D:\SSIS\WebLog\ 폴더 내에 있는 웹 로그 파일(*.log)을 압축하는 것을 설명하겠습니다.
1. Foreach 루프 컨테이너를 제어 흐름 영역에 추가 한 후, CurrentFileName 이라는 변수를 추가합니다.
이 때 이 변수의 범위는 Foreach 루프 컨테이너로 하며(해당 컨테이너를 클릭해 놓은 상태에서 변수를 추가하면 됩니다.), 데이터 유형은 String으로 설정합니다.
2. Foreach 루프 컨테이너의 속성 창에서 컬렉션 탭을 다음과 같이 설정합니다.
∙ Enumerator : Foreach File 열거자
∙ 열거자 구성 중 폴더 : D:\SSIS\WebLog\
∙ 열거자 구성 중 파일 : *.log
3. 변수 매핑 탭에서 사용자::CurrentFileName 변수에 열거자에서 읽어 온 파일 이름을 대입하도록 설정합니다.
즉, D:\SSIS\WebLog\ 폴더의 .log 파일들을 읽어온 후, 그 경로를 CurrentFileName 변수에 반복해서 대입하도록 설정하는 것입니다.
4. 이제, Foreach 루프 컨테이너 안에 Compress File Task를 추가합니다.
5. Compress File Task를 더블 클릭하여 속성 창을 연 다음 다음과 같이 속성을 설정합니다.
∙ IsSourceFileVariable : True
∙ SourceFile : 사용자::CurrentFileName
6. OK 를 누르신 후, 실행 해 보면, 해당 폴더(여기서는 D:\SSIS\WebLog\)에 각 파일들이 확장자가 .gz로 압축된 것을 확인하실 수 있습니다.
본 예제에 설명한 Compress File Task 외에도 다양한 기능들을 수행하는 작업들이 이미 많이 개발되어 배포되고 있으며, 또한 계속 개발되고 있습니다. 대부분이 무료이나, 유료인 경우도 있습니다. 예를 들어, 오라클 DB와 연결하기 위한 Source Provider 컴포넌트도 있으며 (기본적으로 제공되는 것보다 빠르다고 함), 정렬 작업의 성능을 향상시킨 작업 컴포넌트도 있습니다. 또한, 이러한 컴포넌트들을 직접 개발하는 것도 다른 제품들이나 기존의 DTS에 비해 훨씬 용이하므로, 자료들을 참고하여 직접 사용자 환경에 맞는 필요한 컴포넌트들을 개발하여 사용해 보길 바랍니다.
'연구개발 > DTS & SSIS' 카테고리의 다른 글
기본 강좌 6 - 파일 시스템 작업 (0) | 2009.06.20 |
---|---|
기본 강좌 5 - SQL 실행 작업 (0) | 2009.06.20 |
기본 강좌 3 - 조회(Lookup) 변환 작업 (0) | 2009.06.20 |
기본 강좌 2 - 컨테이너 이해하기 (0) | 2009.06.20 |
[실습강좌5] SSIS 실습5 - 오류 출력 추가하기 (0) | 2009.06.20 |