DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

추출, 변환, 로딩(ETL)

DBMS 2
MS-SQL 가이드
MS-SQL 2005 데이터 웨어하이징 가이드
추출, 변환, 로딩(ETL)
작성자
admin
작성일
2021-02-18 14:37
조회
686

추출, 변환, 로딩(ETL)

Integration Services(SQL Server 2000의 DTS 계승)가 SQL Server 2005에서 완전히 새로운 기능으로 거듭났습니다. DTS는 SQL Server 2000에서 널리 사용되었지만 Integration Services는 엔터프라이즈 ETL 플랫폼으로 다시 개발되었기 때문입니다. Integration Services는 엔터프라이즈급 ETL 응용 프로그램을 구축하는 데 필요한 다양한 기능과 매우 우수한 확장성을 제공하며, 프로그래밍 용이성, 내장 용이성 및 확장성을 완벽하게 지원하는 이상적인 ETL 플랫폼입니다.

다음 표는 Integration Services의 기능을 요약한 것입니다. Integration Services를 적용한 ETL 시스템 개발에 대한 자세한 내용은 SQL Server Books Online을 참조하십시오.


패키지 개발

SQL Server 2005 Integration Services 기능 Enterprise ETL 개발 ETL
플랫폼
Business Intelligence Development Studio GUI를 사용하여 데이터 관리 응용 프로그램을 위한 Integration Services 패키지를 만듭니다. 도구 상자에서 작업을 끌어와서 이들의 속성을 설정하고 작업을 선행 제약 조건과 연결하여 Business Intelligence Development Studio에서 Integration Services 패키지를 설계, 개발 및 디버깅합니다.
SQL Server Management Studio 마법사를 사용하여 데이터베이스 복사와 같은 일반적인 작업을 실행하는 단순한 Integration Services 패키지를 개발합니다.
소프트웨어 공급업체는 자사 제품에 Integration Services 기능을 포함시켜 필요에 따라 사용자 정의 패키지를 생성하는 마법사를 만듭니다.
데이터 흐름에서 제어 흐름 분리. 대부분의 Integration Services 패키지에는 여러 제어 흐름 작업과 작업 루프 또는 시퀀스가 들어 있으며, 제어 흐름 창에 레이아웃 됩니다. 파이프라인 작업이라는 한 제어 작업이 이 패키지의 원동력으로, 데이터 흐름을 레이아웃하는 자체 설계 표면이 있습니다. 제어 흐름과 데이터 흐름을 분리하면 패키지를 읽기가 더 쉬워집니다.
패키지 변수가 정의되어 있으며 볼 수 있습니다. 변수는 패키지, 루프 또는 작업 등으로 범위가 정해집니다.
한 패키지가 다른 패키지를 호출하는 패키지 네트워크를 구축하여 복잡한 ETL 시스템을 구현할 수 있습니다. 이 경우 하위 패키지는 논리, 변수, 컨텍스트를 다시 사용할 수 있습니다. 패키지를 이런 식으로 중첩시킬 필요성이 DTS 2000 보다는 덜합니다.
패키지 구성 프레임워크는 패키지가 다른 환경에서 실행되는 방식을 사용자 정의 하는 확장 가능한 시스템입니다.
Integration Services 패키지는 파일 시스템 또는 SQL Server에 XML로 저장됩니다. Integration Services XML 파일은 소스 제어에서 관리할 수 있습니다.
DTS 2000 패키지 마이그레이션 마법사는 패키지를 Integration Services로 마이 그레이션하는데 도움이 되며 업그레이드에 문제가 있을 경우 경고를 제공합니다.
DTS 2000 런타임은 SQL Server 2005에 포함되어 있으며 업그레이드하지 않고도 DTS 2000 패키지를 실행할 수 있습니다.
패키지 작업과 결과는 다양한 형식으로 다양한 제공자에게 기록됩니다.
이벤트 핸들러 논리는 한 번 정의하면 여러 번 사용할 수 있습니다.
WMI와의 통합은 패키지가 외부 이벤트(예: 파일 복사 완료)에 응답하거나 다른 프로세스에서 소비할 수 있는 WMI 이벤트를 발생시킬 수 있음을 의미합니다.
트랜잭션 제어 및 오류 검사점 기능이 있는 패키지 다시 시작 기능은 관리자가 대량의 데이터가 이동하는 복잡한 패키지를 관리하는 데 도움이 됩니다.

제어 흐름

SQL Server 2005 Integration Services 기능 Enterprise ETL 개발 ETL
플랫폼
선행 제약 조건: 성공, 실패 또는 완료 시 다른 작업으로의 전달을 제어하도록 패키지를 설계할 수 있습니다.
루핑 작업에는 For, ForEach, Sequence 루프가 포함됩니다. 패키지 개발자는 데이터베이스의 모든 (또는 일련의) 테이블, 디렉터리의 파일 또는 Analysis Services 큐브의 파티션에서 일련의 작업을 손쉽게 실행할 수 있습니다.
Analysis Services 통합이 매끄럽게 이루어지며, Analysis Services DDL 실행, Analysis Services 개체 처리, 데이터 마이닝 쿼리 실행 등의 제어 작업을 제공합니다. 나중에 설명하겠지만 Integration Services 파이프라인도 Analysis Services와 통?? 하는 2번째 스크립팅 작업은 주로 DTS 2000 이전 버전과의 호환성에 사용됩니다.
통신 작업에는 다음이 포함됩니다.
  • 메시지 대기열
  • 메일 보내기
기타 제어 흐름 작업은 다음과 같습니다.
  • 대량 삽입
  • 패키지 실행
  • 프로세스 실행
  • SQL 실행
  • 파일 시스템
  • FTP
추가 작업은 Integration Services 개체 모델을 사용해 손쉽게 개발할 수 있습니다.

데이터 흐름

SQL Server 2005 Integration Services 기능 Enterprise ETL 개발 ETL
플랫폼
데이터 흐름 파이프라인의 여러 원본, 변환, 대상. 데이터를 읽고 결합 및 조작한 다음 변환이 완료된 경우에만 데이터를 쓸 수 있습니다. 준비 단계 테이블에 여러 번 써야 할 필요가 줄어들거나 없어지므로 변환 성능이 크게 향상됩니다.
Integration Services 파이프라인 작업은 여러 유형이 다른 데이터 원본과 로케일 에서 데이터를 소비합니다. 확장 가능한 데이터 원본 아키텍처는 이미 플랫 파일, OLEDB 원본(DB2 및 Oracle 포함), 원시 파일의 데이터를 지원합니다. 특수하게 구조화된 데이터를 사용하는 원본을 포함해 추가 원본이 계획되어 있습니다.
Microsoft 또는 파트너가 추가 데이터 원본을 손쉽게 개발할 수 있습니다.
여러 원본의 데이터를 Join, Lookup, Union 연산자와 조인할 수 있습니다. 이 작업은 메모리에서 실행되며 데이터베이스나 파일에 쓰기 작업을 할 필요가 없습니다.
조건부 분할 및 멀티캐스트 변환을 사용해 데이터 스트림을 분할할 수 있습니다. 컴파일러와 유사한 Integration Services 엔진은 어떤 데이터 스트림을 병렬로 실행할 수 있는지를 판단합니다.
Character Map, Copy Map, Data Conversion, Derived Column 변환 연산자가 다양한 행 기반 데이터 변환을 제공합니다. 이러한 연산자는 단순한 변환이라기 보다는 마법사와 유사하며 필요한 데이터 변환 대부분을 제공합니다.
일부 데이터 변환 작업의 경우에는 다수 행의 데이터를 비교해야 합니다. Sort 및 Aggregate 변환 연산자는 데이터 흐름에서 데이터베이스 집계보다 훨씬 더 넒은 규모와 아주 우수한 성능으로 이러한 작업을 실행합니다.
일부 데이터 변환 작업에는 퍼지 매칭, 퍼지 그룹화, 시간 차원 생성, 피버팅 또는 언피버팅과 같은 복잡한 로직이 필요하며, 차원 키 관리와 같은 다른 일반적인 작업도 여러 단계를 거쳐야 합니다. 특수 기술과 마법사를 통해 모든 사용자가 이러한 복잡한 작업을 실행할 수 있습니다.
변환된 데이터는 SQL Server 테이블, OLEDB 데이터베이스 테이블, 플랫 파일 및 원시 파일을 포함하여 유형이 다른 대상에 쓸 수 있습니다.
변환된 데이터는 Analysis Services 데이터베이스 및 데이터 마이닝 모델을 비롯해 Microsoft BI 솔루션의 다른 구성 요소와 통합할 수 있습니다.
변환 단계에서 발생하는 오류 흐름은 다음과 같은 여러 가지 방법으로 관리할 수 있습니다.
  • 진행 중인 변환은 데이터를“수정”한 다음, 주 흐름으로 다시 전송할 수 있습니다.
  • 오류 행을 테이블이나 파일에 기록하여 오프라인 조사 후 다시 전송하도록 할 수 있습니다.
Microsoft 또는 파트너는 추가 변환 및 대상을 손쉽게 개발할 수 있습니다.

개발 및 디버깅

SQL Server 2005 Integration Services 기능 Enterprise ETL 개발 ETL
플랫폼
패키지 개발자는 개별 제어 흐름 작업에서 제어 흐름 중단점을 정의할 수 있습니다. 이 중단점은 디버깅 프로세스에서 이 작업을 실행하기 전, 후 또는 실행 중 몇몇 시점에서 정의할 수 있습니다.
패키지 개발자는 데이터 흐름의 개별 변환에 데이터 뷰어를 연결할 수 있습니다. 디버깅 시 데이터 뷰어는 해당 시점에서 변환된 데이터 스트림의 내용을 표시합 니다.
Business Intelligence Development Studio는 Visual Studio에서 호스팅됩니다. 스크립팅 및 기타 프로그래밍 작업은 이 엔터프라이즈 개발 환경을 활용합니다.
패키지 개발은 사용자가 사용자 정의 스크립트 및 실행 파일을 포함하여 모든 패키지 구성 요소를 하나로 묶어 테스트, 제작 또는 기타 고객 시스템용으로 배포 할 수 있도록 지원합니다.

DTS 2000 개발자를 위한 Integration Services

DTS 2000 사용자는 복잡한 작업을 실행하는 일련의 트릭을 개발해 왔습니다. 하지만 Integration Services에는 이러한 트릭, 특히 자체 수정 패키지 작성 기능이 필요하지 않습니다. 변수 및 구성 인프라를 사용해 동적 패키지를 작성할 수 있으므로 자체 수정 패키지를 작성할 필요가 없기 때문입니다.

변수와 구성 인프라가 우수하므로 복잡한 하위 시스템 패키지를 만들 필요성도 줄어듭니다. 설계가 우수한 단일 패키지는 다양한 필요성을 충족시킬 수 있습니다. 예를 들면, 한 패키지를 다양한 구성에 재사용하여 차원 데이터 웨어하우스에 많은 차원 테이블을 로드할 수 있습니다.

DTS 2000의 경우에는 DTS 패키지의 복잡한 네트워크에 50~100개의 패키지가 들어 있지만 Integration Services에는 복잡한 네트워크라도 단지 10여 개의 패키지만이 포함될 수 있습니다.