오늘은 SSIS의 기능에 정렬(SORT)에 대해서 알아 보겠습니다.
정렬은 우리가 자주 쓰는 기능으로 쿼리문에서는 ORDER BY 을 의미 합니다.
SSIS에서 데이터를 끌어오거나 내보낼때 정렬 할 수가 있습니다.
예를들어 쿼리문의 경우를 살펴 보겠습니다.
예제 데이터베이스 : AdventureWorks
AdventureWorks 데이터베이스에서 Person.Address 테이블을 조회 하여 봅니다.
AddressID 로 정렬된 것을 확인 할 수 있습니다.
그렇다면 AddressLine1의 컬름으로 오름차순으로 하고 싶다. 어떻게 할까요?
아래의 쿼리 구문을 사용해야 합니다.
AddressLine1으로 정렬 된 것을 확인 하셨나요?
그렇다면 이제 SSIS로 정렬하여 데이터를 넣어 보겠습니다.
1. BIDS를 실행하여 새 프로젝트를 생성합니다. 그리고 [데이터 흐름 태스크]를 끌어다 놓습니다.
2. [데이터 흐름] 탭에서 원본(AdventureWorks.Person.Address)과 대상(Test.dbo.Tbl_Sort)을 끌어다 놓습니다.
그리고 도구 상자에서 [정렬] 작업을 끌어놓고 편집을 선택 합니다..
3. [정렬]의 편집기를 살펴보면 원본의 컬럼정보가 나타 납니다. 여기서 필요한 입력 열을 선택 합니다.
본 실습에서는 Test 데이터베이스에 TBL_Sort라는 테이블 명으로 AddressID, AddressLine1 컬럼만 생성하였습니다.
필요한 컬럼을 선택하고 정렬 방법 및 정렬 순서를 선택 합니다.
4. 작업이 완료 되었으면 SSIS 패키지를 실행 합니다.
(만약 빨간색으로 오류가 발생한다면 오류를 수정 후 다시 시작 합니다.)
5. SSMS에서 데이터가 정상적으로 정렬되어 입력 되었는지 확인 합니다.
AddressLine1 오름차순으로 정렬 된 것을 확인 할 수 있습니다.
정렬은 앞에서 실습한 멀티캐스트, UNION ALL, 조건부 분할 등과 조합하여 각종 데이터 수집 및 처리에 활용 할 수 있습니다.
강성욱 / http://sqlmvp.kr
'SQL Server > SSIS 강좌' 카테고리의 다른 글
병합 - 두개의 입력 데이터를 합치자 (UNION ALL과 다름) (0) | 2015.07.16 |
---|---|
플랫파일 대상 - 데이터를 텍스트로 저장하자 (0) | 2015.07.16 |
UNION ALL - 데이터를 합치자 (0) | 2015.07.16 |
조건부 분할 - 조건에 따라 데이터를 구분하여 출력 (0) | 2015.07.16 |
멀티캐스트 - 하나의 데이터를 여러곳으로 복사 (0) | 2015.07.16 |