WideWorldImportersDW ETL 워크플로

적용 대상:SQL ServerAzure SQL 데이터베이스

WWI_Integration ETL 패키지를 사용하여 데이터가 변경됨에 따라 WideWorldImporters 데이터베이스에서 WideWorldImportersDW 데이터베이스로 데이터를 마이그레이션합니다. 패키지는 주기적으로 실행됩니다(일반적으로 매일).

패키지는 SQL Server Integration Services를 사용하여 Integration Services에서 별도의 변환 대신 대량 T-SQL 작업을 오케스트레이션하여 고성능을 보장합니다.

차원이 먼저 로드된 다음 팩트 테이블이 로드됩니다. 오류가 발생한 후 언제든지 패키지를 다시 실행할 수 있습니다.

워크플로는 다음과 같습니다.

WideWorldImporters ETL workflow

워크플로는 적절한 컷오프 시간을 결정하는 식 작업으로 시작합니다. 컷오프 시간은 현재 시간에서 몇 분을 뺀 시간입니다. (이 방법은 현재 시간까지 데이터를 요청하는 것보다 더 강력합니다.) 시간에서 모든 밀리초가 잘립니다.

주요 처리는 Date 차원 테이블을 채우는 것으로 시작합니다. 프로세싱은 현재 연도의 모든 날짜가 테이블에 채워지도록 합니다.

다음으로, 일련의 데이터 흐름 태스크가 각 차원을 로드합니다. 그런 다음 각 팩트를 로드합니다.

사전 요구 사항

  • SQL Server 2016(이상), WideWorldImporters 및 WideWorldImportersDW 데이터베이스(SQL Server 동일하거나 다른 인스턴스에 있음)
  • SQL Server Management Studio
  • SQL Server 2016 통합 서비스
    • Integration Services 카탈로그를 만들어야 합니다. Integration Services 카탈로그를 만들려면 SQL Server Management Studio 개체 탐색기에서 Integration Services를 마우스 오른쪽 단추로 클릭한 다음 카탈로그 추가를 선택합니다. 기본 옵션을 그대로 둡니다. SQLCLR을 사용하도록 설정하고 암호를 입력하라는 메시지가 표시됩니다.

다운로드

샘플의 최신 릴리스는 wide-world-importers-release를 참조하세요. Daily ETL.ispac Integration Services 패키지 파일을 다운로드합니다.

샘플 데이터베이스를 다시 만드는 소스 코드는 wide-world-importers를 참조하세요.

설치

  1. Integration Services 패키지를 배포합니다.

    1. Windows 탐색기에서 Daily ETL.ispac 패키지를 엽니다. 그러면 SQL Server Integration Services 배포 마법사가 시작됩니다.
    2. 원본 선택에서 Daily ETL.ispac 패키지를 가리키는 경로와 함께 프로젝트 배포의 기본값을 따릅니다.
    3. 대상 선택에서 Integration Services 카탈로그를 호스트하는 서버의 이름을 입력합니다.
    4. 예를 들어 WideWorldImporters라는 새 폴더에서 Integration Services 카탈로그 아래의 경로를 선택합니다.
    5. 배포를 선택하여 마법사를 완료합니다.
  2. ETL 프로세스에 대한 SQL Server 에이전트 작업을 만듭니다.

    1. Management Studio에서 SQL Server 에이전트 마우스 오른쪽 단추로 클릭한 다음 >작업을 선택합니다.
    2. 이름(예: WideWorldImporters ETL)을 입력합니다.
    3. SQL Server Integration Services 패키지 형식작업 단계를 추가합니다.
    4. Integration Services 카탈로그가 있는 서버를 선택한 다음 Daily ETL 패키지를 선택합니다.
    5. 구성>연결 관리자에서 원본 및 대상에 대한 연결이 올바르게 구성되었는지 확인합니다. 기본값은 로컬 인스턴스에 연결하는 것입니다.
    6. 확인을 선택하여 보기를 만듭니다.
  3. 작업을 실행하거나 예약합니다.