AWDataWarehouseRefresh 패키지 예제

AWDataWarehouseRefresh 예제 패키지는 새 AdvWorksDWX 데이터베이스에서 AdventureWorks 데이터베이스의 데이터를 사용하여 사용자 테이블을 만들고 채우는 방법을 설명합니다. 각각의 Transact-SQL 스크립트를 실행하여 테이블을 만든 후에 여러 SQL 실행 작업을 실행하여 이 테이블을 채웁니다.

ms160706.note(ko-kr,SQL.90).gif중요:
예제는 교육용으로만 제공되므로 프로덕션 환경에서 사용하기에 적합하지 않으며 프로덕션 환경에서 테스트를 수행하지 않았습니다. Microsoft에서는 이러한 예제에 대해 기술 지원을 제공하지 않습니다.

요구 사항

이 예제 패키지를 실행하려면 다음 준비 작업이 필요합니다.

  • 예제 패키지 및 사용되는 데이터 파일이 로컬 하드 디스크 드라이브에 설치되어야 합니다.
  • AdventureWorks OLTP 데이터베이스를 설치했으며 이 데이터베이스에 대해 관리 권한이 있어야 합니다.
  • 명령줄에서 예제 패키지를 실행하려는 경우 SQL Server 2005 Integration Services(SSIS)를 설치해야 합니다.
  • SSIS 디자이너에서 예제 패키지를 열어 실행하려는 경우 Business Intelligence Development Studio를 설치해야 합니다.

이 예제 패키지를 실행하려면 다음 파일이 필요합니다.

파일 설명

AWDWRefresh.dtsx

예제 패키지

예제를 설치하는 방법은 SQL Server 2005 온라인 설명서의 "예제 Integration Services 패키지 설치"를 참조하십시오. SQL Server 2005 첫 릴리스 이후에 릴리스된 새 예제를 포함하여 최신 버전의 예제를 얻으려면 SQL Server 2005 예제 및 예제 데이터베이스(2006년 4월)를 참조하십시오.

예제 패키지의 위치

예제가 기본 설치 위치에 설치된 경우 AWDataWarehouseRefresh 예제 패키지와 데이터 파일은 다음 폴더에 있습니다.

C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\AWDataWarehouseRefresh\

[!참고] 프로젝트의 설치 위치를 변경한 경우 패키지의 BasePathDataFilePath 변수를 수정해야 합니다.

예제 실행

패키지는 dtexec 유틸리티를 사용하여 명령줄에서 실행하거나 Business Intelligence Development Studio에서 실행할 수 있습니다.

dtexec를 사용하여 패키지를 실행하려면

  1. 명령 프롬프트 창을 엽니다.

  2. 디렉터리 변경 명령인 cd를 사용하여 해당 디렉터리를 dtexec의 위치인 C:\Program Files\Microsoft SQL Server\90\DTS\Binn으로 변경합니다.

  3. 다음 명령을 입력합니다.

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\AWDataWarehouseRefresh\AWDataWarehouseRefresh\AWDWRefresh.dtsx"
    
  4. Enter 키를 누릅니다.

dtexec 유틸리티를 사용하여 패키지를 실행하는 방법은 SQL Server 2005 온라인 설명서의 "dtexec 유틸리티" 항목을 참조하십시오.

Business Intelligence Development Studio에서 패키지를 실행하려면

  1. Business Intelligence Development Studio를 엽니다.

  2. 파일 메뉴에서 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.

  3. 파일 형식을 **Integration Services 프로젝트 파일(*.dtproj)**로 설정하고 AWDataWarehouseRefresh 폴더를 찾아 이름이 AWDataWarehouseRefresh.dtproj인 파일을 두 번 클릭합니다.

  4. 솔루션 탐색기에서 SSIS 패키지 폴더의 AWDWRefresh.dtsx를 오른쪽 단추로 클릭한 후 패키지 실행을 클릭합니다.

예제의 구성 요소

다음 표에서는 예제 내에서 사용되는 작업, 컨테이너, 데이터 원본과 대상 및 변환을 보여 줍니다.

제어 흐름 탭에서 개체를 선택하여 패키지 내의 개체를 찾아볼 수 있으며 Shift+TAB을 눌러 개체 사이를 이동할 수 있습니다. 또한 제어 흐름 디자인 화면의 오른쪽 아래에 있는 4방향 로케이터 화살표를 클릭하여 패키지의 큰 그림을 볼 수 있으며 해당 패키지 위로 보기 창을 위치 지정할 수 있습니다.

이 패키지는 프러덕션 데이터베이스의 예를 나타내므로 논리적 그룹에 수집된 많은 개체 및 컨테이너가 있습니다. 전체 패키지를 보기 쉽도록 그룹을 축소하거나 특정 그룹의 항목을 자세히 볼 수 있도록 그룹을 확장할 수 있습니다. 패키지의 작업 및 컨테이너는 여기에 그룹별로 나열됩니다.

Database and Tables 그룹

Database and tables 그룹은 시퀀스 컨테이너, Foreach 루프 컨테이너와 SQL 실행 작업을 포함합니다. 이러한 컨테이너에는 이 표에 나열된 작업이 포함됩니다.

요소 용도

시퀀스 컨테이너

Prepare New Database는 새 데이터베이스를 만들고 데이터베이스 옵션을 설정하는 3가지 SQL 실행 작업을 포함합니다. 시퀀스 뒤에는 Foreach 루프 컨테이너와 다른 SQL 실행 작업이 이어집니다.

SQL 실행 작업

Drop databaseAdvWorksDWX의 기존 인스턴스를 삭제합니다.

SQL 실행 작업

Create database는 새 데이터베이스 AdvWorksDWX를 만듭니다.

SQL 실행 작업

Set database options는 ALTER DATABASE 문을 실행합니다.

Foreach 루프 컨테이너

Create tables는 파일 필터 CreateTable-*.sql과 일치하는 파일에서 SQL 문을 실행하는 SQL 실행 작업을 포함합니다.

SQL 실행 작업

Foreach 루프에서 지정한 파일에서 SQL 문을 실행하여 AdvWorksDWX 데이터베이스에 테이블을 만듭니다.

SQL 실행 작업

Create udfMinimumDate function은 SQL 문을 직접 입력하도록 하여 사용자 정의 함수를 만듭니다.

Temporary Tables 그룹

Temporary Tables 그룹에는 2개의 Foreach 루프가 포함되어 있습니다. 각 루프는 파일에 있는 SQL 문을 순환 반복하는 SQL 실행 작업을 포함합니다. 파일이 들어 있는 폴더의 위치는 파일 연결 관리자에서 정의합니다.

요소 용도

Foreach 루프 컨테이너

Drop temp tables는 파일 필터 DropTempTable-*.sql과 일치하는 파일에서 SQL 문을 실행하는 SQL 실행 작업을 포함합니다.

SQL 실행 작업

Foreach 루프에서 지정한 파일에서 SQL 문을 실행하여 AdventureWorks 데이터베이스의 임시 테이블을 삭제합니다.

Foreach 루프 컨테이너

Create temp tables는 파일 필터 CreateTempTable-*.sql과 일치하는 파일에서 SQL 문을 실행하는 SQL 실행 작업을 포함합니다.

SQL 실행 작업

Foreach 루프에서 지정한 파일에서 SQL 문을 실행하여 AdventureWorks 데이터베이스에 임시 테이블을 만듭니다.

Load Temporary Tables 그룹

Load temporary tables 그룹은 데이터를 .csv 파일에서 AdventureWorks 데이터베이스의 임시 테이블로 로드하는 7가지 대량 삽입 작업을 포함합니다.

요소 용도

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempProductSubcategory-ForeignNames는 임시 테이블에 데이터를 삽입합니다.

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempProduct-ForeignNames는 임시 테이블에 데이터를 삽입합니다.

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempStore-MinPayment는 임시 테이블에 데이터를 삽입합니다.

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempProductCategory-ForeignNames는 임시 테이블에 데이터를 삽입합니다.

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempCustomer-YearlyIncome은 임시 테이블에 데이터를 삽입합니다.

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempIndividual-ForeignData는 임시 테이블에 데이터를 삽입합니다.

대량 삽입 작업

대량 삽입 작업인 Bulk Insert tempSpecialOffer-ForeignData는 임시 테이블에 데이터를 삽입합니다.

Create Keys and Indexes 그룹

Create Keys and Indexes 그룹은 선행 제약 조건과 연결된 4가지 SQL 실행 작업과 하나의 Foreach 루프 컨테이너를 포함합니다.

요소 용도

SQL 실행 작업

Add Primary KeysAdvWorksDWX의 새 테이블에 기본 키를 만듭니다.

SQL 실행 작업

Add IndexesAdvWorksDWX의 새 테이블에 대한 인덱스를 만듭니다.

SQL 실행 작업

Add Foreign Key ConstraintsAdvWorksDWX의 새 테이블에 제약 조건을 추가합니다.

SQL 실행 작업

Drop udfMinimumDate functionAdvWorksDWX에서 사용자 정의 함수를 삭제합니다.

Foreach 루프 컨테이너

Drop temp tables 1은 파일 필터 DropTempTable-*.sql과 일치하는 파일에서 SQL 문을 실행하는 SQL 실행 작업을 포함합니다.

SQL 실행 작업

Foreach 루프에서 지정한 파일에서 SQL 문을 실행하여 AdventureWorks 데이터베이스에서 임시 테이블을 삭제합니다.

그룹화되지 않은 작업

이 패키지에는 그룹에 속하지는 않지만 다른 그룹의 작업 간 데이터를 이동시키는 동작을 수행하는 25가지 작업도 포함됩니다.

요소 용도

대량 삽입 작업

Bulk Insert FactFinance는 .csv 파일로부터 AdvWorksDWX의 팩트 테이블로 데이터를 로드합니다.

대량 삽입 작업

Bulk Insert DimAccount는 .csv 파일로부터 AdvWorksDWX의 차원 테이블로 데이터를 로드합니다.

대량 삽입 작업

Bulk Insert AdventureWorksDWBuildVersionAdvWorksDWX의 데이터 웨어하우스에 대한 버전 정보를 업데이트합니다.

데이터 흐름 작업

Data Flow Task - DimPromotion은 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 AdventureWorks에 대하여 쿼리를 실행하여 프로모션을 식별하고 그 결과를 AdvWorkDWX의 차원 테이블에 기록합니다.

대량 삽입 작업

Bulk Insert DimOrganization은 데이터를 .csv 파일로부터 AdvWorksDWX의 차원 테이블로 로드합니다.

데이터 흐름 작업

Data Flow Task - DimSalesReason은 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 AdventureWorks에 대하여 쿼리를 실행하여 영업 사유를 검색하고 그 결과를 AdvWorkDWX의 차원 테이블에 기록합니다.

데이터 흐름 작업

Data Flow Task - DimReseller는 OLE DB 원본, 데이터 변환 및 SQL Server 대상을 포함합니다. 데이터 흐름은 AdventureWorks에 대하여 조건 문 및 검색과 같은 복잡한 쿼리를 수행하고 그 결과를 AdvWorksDWX의 차원 테이블에 기록합니다.

데이터 흐름 작업

Data Flow Task - DimEmployee는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 Human Resources 테이블에서 검색을 수행하고 영업사원 ID를 할당하며 그 결과를 AdvWorksDWX의 차원 테이블에 기록합니다.

데이터 흐름 작업

Data Flow Task - DimCurrency는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 currency 테이블에서 데이터를 추출하고 열 이름을 변경하며 데이터를 AdvWorksDWX의 차원 테이블에 기록합니다.

대량 삽입 작업

Bulk Insert DimScenario는 데이터를 .csv 파일로부터 AdvWorksDWX의 차원 테이블로 로드합니다.

대량 삽입 작업

Bulk Insert - DimTime은 데이터를 .csv 파일로부터 AdvWorksDWX의 차원 테이블로 로드합니다.

데이터 흐름 작업

Data Flow Task - FactSalesQuota는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 영업사원에 대한 할당량을 추출하고 AdvWorksDXW의 팩트 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - FactCurrencyRate는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 SQL 문을 사용하여 통화 정보를 추출 및 변환하여 AdvWorksDXW의 팩트 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - DimProduct는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 SQL 문을 사용하여 임시 테이블의 복잡한 데이터 처리를 수행하고 ADvWorksDWX의 차원 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - DimProductCategory는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 외부 제품 범주를 영문 범주 이름과 매핑하고 ADvWorksDWX의 차원 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - DimProductsSubcategory는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 참조 테이블에서 제품 하위 범주에 대한 번역을 추출하고 ADvWorksDWX의 차원 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - DimGeography는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 참조 테이블의 주소를 검색하고 그 결과를 AdvWorksDWX의 차원 테이블에 기록합니다.

데이터 흐름 작업

Data Flow Task - DimCustomer는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 DimGeography 데이터 및 두 임시 테이블에서 여러 입력을 가져오고 AdvWorksDWX의 차원 테이블 업데이트를 위한 데이터를 추출합니다.

데이터 흐름 작업

Data Flow Task - FactInternetSalesReason은 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 AdventureWorks에서 데이터를 추출하고 AdvWorksDXW의 팩트 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - DimSalesTerritory 1은 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 지역에 대한 지역 코드를 검색하고 그 결과를 AdvWorksDWX의 차원 테이블에 기록합니다.

데이터 흐름 작업

Data Flow Task - DimSalesTerritory 2는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 국가/지역 매핑을 이전 데이터 흐름에서 처리한 데이터에 추가합니다.

데이터 흐름 작업

Data Flow Task - DimDepartmentGroup은 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 모든 그룹 이름을 Corporate로 변경하고 이 값을 AdvWorksDWX의 차원 테이블에 기록합니다.

데이터 흐름 작업

Data Flow Task - DimDepartmentGroup 1은 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 human resources 테이블에서 그룹 이름을 검색하고 AdvWorksDWX의 차원 테이블 값을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - FactInternetSales는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 새로 생성된 사용자 정의 함수를 비롯한 여러 입력을 다른 작업에서 가져오고 AdvWorksDWX에서 팩트 테이블을 업데이트합니다.

데이터 흐름 작업

Data Flow Task - FactResellerSales는 OLE DB 원본과 SQL Server 대상을 포함합니다. 데이터 흐름은 새로 생성된 사용자 정의 함수를 비롯한 여러 입력을 다른 작업에서 가져오고 AdvWorksDWX에서 팩트 테이블을 업데이트합니다.

예제 결과

dtexec 유틸리티를 사용하여 패키지를 실행한 후의 출력은 다음과 유사해야 합니다.

예제 출력:

Microsoft (R) SQL Server Execute Package Utility

Version 9.00.xxxx for 32-bit

Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

Started: 1:03:24 PM

Progress: 2005-04-12 13:03:35.14

Source: Execute SQL Task

Executing query "IF EXISTS (SELECT * FROM [sys].[tables] WHERE [nam".: 100% complete

End Progress

Progress: 2005-04-12 13:03:35.15

Source: Execute SQL Task

Executing query "IF EXISTS (SELECT * FROM [sys].[tables] WHERE [nam".: 100% complete

End Progress

Progress: 2005-04-12 13:05:43.77

Source: Add Indexes

Executing query "CREATE UNIQUE INDEX [AK_DimAccount_AccountCodeAlte".: 100% complete

End Progress

Progress: 2005-04-12 13:05:46.00

Source: Add Foreign Key Constraints

Executing query "ALTER TABLE [dbo].[DimAccount] ADD

CONSTRAINT [F".: 100% complete

End Progress

DTExec: The package execution returned DTSER_SUCCESS (0).

Started: 1:03:24 PM

Finished: 1:05:46 PM

Elapsed: 141.969 seconds