2단원: SSIS를 사용하여 루핑 추가Lesson 2: Adding Looping with SSIS

1단원: SSIS를 사용하여 프로젝트 및 기본 패키지 만들기에서는 단일 플랫 파일 원본에서 데이터를 추출하고 조회 변환을 사용하여 변환한 다음 AdventureWorksDW2012 샘플 데이터베이스의 FactCurrency 팩트 테이블로 로드한 패키지를 만들었습니다.In Lesson 1: Create a Project and Basic Package with SSIS, you created a package that extracted data from a single flat file source, transformed the data using Lookup transformations, and finally loaded the data into the FactCurrency fact table of the AdventureWorksDW2012 sample database.

그러나 ETL(추출, 변환 및 로드) 프로세스에서 플랫 파일을 하나만 사용하는 경우는 거의 없습니다.However, it is rare for an extract, transform, and load (ETL) process to use a single flat file. 일반적인 ETL 프로세스는 여러 플랫 파일 원본에서 데이터를 추출합니다.A typical ETL process would extract data from multiple flat file sources. 여러 원본에서 데이터를 추출하려면 반복적인 제어 흐름이 필요합니다.Extracting data from multiple sources requires an iterative control flow. MicrosoftMicrosoft Integration ServicesIntegration Services 의 가장 기대되는 기능 중 하나는 패키지에 반복이나 루핑을 쉽게 추가할 수 있는 기능입니다.One of the most anticipated features of MicrosoftMicrosoft Integration ServicesIntegration Services is the ability to easily add iteration or looping to packages.

Integration ServicesIntegration Services 에서는 Foreach Loop 컨테이너와 For Loop 컨테이너라는 패키지 루핑을 위한 두 가지 유형의 컨테이너를 제공합니다. provides two types of containers for looping through packages: the Foreach Loop container and the For Loop container. Foreach 루프 컨테이너는 열거자를 사용하여 루핑을 수행하지만 For 루프 컨테이너는 대개 변수 식을 사용합니다.The Foreach Loop container uses an enumerator to perform the looping, whereas the For Loop container typically uses a variable expression. 이 단원에서는 Foreach 루프 컨테이너를 사용합니다.This lesson uses the Foreach Loop container.

Foreach 루프 컨테이너를 사용하면 패키지에서 지정한 열거자의 각 멤버에 대해 제어 흐름을 반복할 수 있습니다.The Foreach Loop container enables a package to repeat the control flow for each member of a specified enumerator. Foreach 루프 컨테이너를 사용하여 다음과 같은 항목을 열거할 수 있습니다.With the Foreach Loop container, you can enumerate:

  • ADO 레코드 집합 행ADO recordset rows

  • ADO.Net 스키마 정보ADO .Net schema information

  • 파일 및 디렉터리 구조File and directory structures

  • 시스템, 패키지 및 사용자 변수System, package and user variables

  • 변수에 포함된 열거 가능한 개체Enumerable objects contained in a variable

  • 컬렉션의 항목Items in a collection

  • XML 경로 언어(XPath)식의 노드Nodes in an XML Path Language (XPath) expression

  • SQL ServerSQL Server SMO(Management Objects)(!!) Management Objects (SMO)

이 단원에서는 1단원에서 만든 단순 ETL 패키지를 Foreach 루프 컨테이너를 사용하도록 수정하고In this lesson, you will modify the simple ETL package created in Lesson 1 to take advantage of the Foreach Loop container. 자습서 패키지에서 폴더에 있는 모든 플랫 파일을 반복 처리할 수 있도록 사용자 정의 패키지 변수를 설정하는 방법에 대해 설명합니다.You will also set user-defined package variables to enable the tutorial package to iterate through all the flat files in the folder. 이전 단원을 완료하지 않은 경우 자습서에 완성된 상태로 포함된 1단원 패키지를 복사할 수도 있습니다.If you have not completed the previous lesson, you can also copy the completed Lesson 1 package that is included with the tutorial.

이 단원에서는 데이터 흐름을 수정하지 않고 제어 흐름만 수정합니다.In this lesson, you will not modify the data flow, only the control flow.

중요

이 자습서를 실행하려면 AdventureWorksDW2012 예제 데이터베이스가 필요합니다.This tutorial requires the AdventureWorksDW2012 sample database. AdventureWorksDW2012의 설치 및 배포 방법에 대한 자세한 내용은 CodePlex의 Reporting Services 제품 샘플을 참조하십시오.For more information about how to install and deploy AdventureWorksDW2012, see Reporting Services Product Samples on CodePlex.

단원 태스크Lesson Tasks

이 단원에서는 다음 태스크를 다룹니다.This lesson contains the following tasks:

단원 시작Start the Lesson

1단계: 1단원 패키지 복사Step 1: Copying the Lesson 1 Package

참고 항목See Also

For 루프 컨테이너For Loop Container