행 개수 – 작업 행의 개수를 출력하자
안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)
이번 시간에는 [행 개수]에 대해서 알아 보도록 하겠습니다.
행 개수 작업은 SSIS작업시 단순히 데이터 흐름 경로 상에서 통과하는(=처리되는) 행 수를 사용자가 지정한 변수에 저장하는 역할을 수행 합니다.
따라서 아무런 변화 작업이 없기에 입력된 데이터와 출력된 데이터는 동일 합니다.
[BIDS]를 실행하여 [Integration Services 프로젝트]를 생성 합니다.
[제어 흐름]탭에서 [데이터 흐름 태스크]를 드래그앤 드롭으로 추가 합니다.
[행개수]이름을 지정하여 태스크를 생성합니다.
그리고 [스크립트 태스크]를 드래그앤 드롭으로 추가하여 흐름선을 연결 합니다.
[제어 흐름]탭에서 마우스 오른쪽을 클릭하여 [변수]를 선택합니다. 아래 그림처럼 변수 탭이 나타나면 행 수를 저장할 변수를 선언 합니다. (일반적으로 데이터 흐름 작업 내에서 행수를 변수에 저장한 후 제어 흐름 영역이나 다른 데이터 흐름에서 사용하게 되므로 변수 영역을 작업 영역 상위로 지정합니다.)
[Row_Cnt]라는 변수명을 지정하고 데이터 타입은 [Int32]를 지정 합니다.
[데이터 흐름]탭에서 그림과 같이 [원본 데이터(OLE DB 원본)]와 [대상 데이터(OLE DB 대상)]을 끌어다 놓습니다. 그 사이 [행 개수]작업을 추가하여 데이터 흐름선을 연결 합니다.
[원본 데이터]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.
그림과 같이 편집 창이 나타나면 [OLE DB 연결 관리자]에서 원본 DB의 연결 관리자를 선택하고 해당 테이블을 선택하여 [미리보기]를 이용하여 정상적으로 데이터가 읽어오는지 확인 합니다.
(본 실습에서는 Adventureworks 의 Person.Address 테이블 사용)
[행 개수]작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.
아래 그림과 같이 [고급 행 개수 편집기]가 실행 됩니다.
[사용자 지정 속성]에서 처음에 만들었던 사용자 변수를 선택 합니다.
[입력 열] 탭에서는 특별히 지정하지 않아도 됩니다.
[입/출력 속성] 탭 또한 특별한 작업없이 기본을 사용하도록 합니다.
[대상 데이터] 작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.
[OLE DB 연결 관리자]에서 대상 DB의 연결 관리자를 선택 합니다. 그리고 [새로 만들기] 버튼을 클릭하여 대상 테이블을 새로 만들어 봅니다.(이미 대상 테이블이 존재하는 경우 [테이블 또는 뷰 이름]에서 대상 테이블을 선택 합니다.)
[새로 만들기]를 선택하면 [원본 데이터]와 동일한 컬럼이 생성됨을 확인 할 수 있습니다.
(행개수 작업은 데이터를 변환하지 않는 작업이므로 입력 데이터와 출력데이터 동일)
[매핑] 탭으로 이동하여 대상이 적절히 매핑 되었는지 확인 합니다.
편집이 완료 되었으면 [제어 흐름]탭으로 이동 합니다.
[스크립트 태스크] 작업에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.
[스크립트 태스크 편집기]창에서 [ReadOnlyVariables]를 선택하면 아래 그림과 같이 변수를 선택 할 수 있는 창이 나타납니다.
해당 창에서 [User::Row_Cnt]라는 사용자 변수를 선택 합니다.
[스크립트 편집] 버튼을 클릭하여 스크립트를 편집 합니다.
[스크립트 편집]을 실행하면 스크립트를 편집 할 수 있는 새로운 창(비주얼 스튜디오)이 나타 납니다.
아래 그림처럼 메시지 박스를 출력하기 위한 소스코드와 변수를 입력 합니다.
편집이 완료 되었으면 창을 닫고 패키지를 실행 합니다.
패키지를 실행하면 메시지 창으로 실행된 행 수가 출력 됩니다.
실제 [데이터 흐름]탭에서 나타나는 정보 또한 메시지 박스에 출력된 행수와 동일 한 것을 확인 할 수 있습니다.
늘 그러듯!
녹색 : 정살 실행
빨간색 : 오류 발생
패키지 작업이 완료 되었으면 SSMS를 실행하여 출력된 행수 만큼 데이터가 잘 입력 되었는지 확인 합니다.
보통 대용량 작업이나 1:1 조인등 처리량에 대해서 확인해야할 때가 있습니다. 이때 이 프로세스를 사용한다면 데이터 처리의 오류 유무 또는 데이터 누락등에 대해서도 확인하는데 매우 유용 할듯 합니다.
'SQL Server > SSIS 강좌' 카테고리의 다른 글
유사 항목 그룹화 – 입력 데이터 중 유사한 항목을 그룹핑하자 (2) | 2015.07.16 |
---|---|
유사 항목 조회 – 데이터 클렌징 하기 (0) | 2015.07.16 |
행 샘플링 / 비율 샘플링 – 데이터를 샘플링 하자 (0) | 2015.07.16 |
용어 조회 – 참조 데이터를 이용하여 빈도를 확인하자 (0) | 2015.07.16 |
용어 추출 – 특정 용어를 추출 하자 (0) | 2015.07.16 |