제 5강 멀티캐스트를 이용하여 복수 대상으로 적재
한대성 (admin@sqlleader.com)
에이디컨설팅 / 책임 컨설턴트
SQLLeader.com / 운영자
다음과 같은 경우를 생각해 봅시다.
본사의 처리 프로세스에서 처리된 Source Table 데이터를 지점 1,2,3으로 보내야 하는 경우가 있습니다. 이 경우, Source Table에서 읽은 후, 지점 1로 보내고, 다시 Source Table에서 읽은 후, 지정 2로, 지점 3으로 보내야 합니다.
만약 Source Table의 데이터가 계속해서 수정이 일어나는 경우라면, 별도의 임시 테이블이나 파일 형태로 전송할 데이터를 복사하고, 이 데이터를 지점 1,2,3으로 보내는 형태로 구현해야 합니다.
이번 강좌에서 설명드릴 내용은 위와 같이 여러 데이터 대상으로 데이터를 적재하는 방식에 대한 구현 방식이며, 작업 내용은 비교적 간단합니다.
4강까지 구현한 내용은 텍스트 파일에서 데이터를 읽은 후, 필터링 및 정렬을 거쳐 WebLogTable 에 로딩하는 것입니다. 여기에 다음과 조건을 추가하겠습니다.
『필터링 및 정렬된 데이터를 WebLogTable 뿐만 아니라 백업 용도로 D:\WebLogBackup.bak 형태의 CSV 파일로 보관』
하는 조건입니다.
4강까지 만든 예제를 계속 사용합니다.
WebLog 데이터 로딩 작업의 데이터 흐름 영역을 엽니다.
정렬 변환과 WebLogTable 사이의 연결선을 삭제한 후, 중간에 멀티캐스트 변환을 추가합니다. 멀티캐스트 변환은 4강에서 사용한 조건부 분할과 비슷한 형태이지만, 조건 없이 입력 데이터를 그대로 복사해서 여러 경로로 출력하는 역할을 수행합니다.
도구 상자에서 플랫 파일 대상을 추가한 후 이름을 WebLogBackupFile로 변경하고, 멀티캐스트 개체와 연결합니다.
WebLogBackupFile을 더블 클릭해서 대상 편집기를 연 후, 새로 만들기(N)을 클릭해서 플랫 파일 연결을 설정합니다. 이 연결의 이름을 WebLogBackupFile로 설정하고 다음과 같이 지정합니다.
열 탭을 클릭한 후 확인을 눌러 연결 관리자 편집기를 닫고 대상 편집기에서 매핑 탭을 클릭하여 열 매핑을 확인합니다.
패키지를 실행시키면 다음과 같이 동일한 처리 데이터가 WebLogTable과 WebLogBackupFile 두 군데로 동시에 출력됩니다. 물론 두 군데 이상도 지정 가능하며 OLE DB 대상을 이용하여 다른 서버의 DB Table로도 출력할 수 있습니다.
이렇게 여러 대상으로 출력을 시키더라도 원본의 데이터를 읽는 작업은 단 한번만 수행하기 때문에 불필요한 디스크 I/O 부하가 발생하지 않습니다.
'연구개발 > DTS & SSIS' 카테고리의 다른 글
실습 강좌 7 - 대상 테이블 동적 설정 (0) | 2009.06.20 |
---|---|
실습 강좌 6 - 여러 파일에 대한 처리 (0) | 2009.06.20 |
실습 강좌 4 - 데이터 필터링 구현 (0) | 2009.06.20 |
실습 강좌 3 - 파일 존재 확인 작업 추가 (0) | 2009.06.20 |
실습 강좌 2 - 테이블 생성 작업 추가 (0) | 2009.06.20 |