단원 2-2-Foreach 루프 컨테이너 추가 및 구성Lesson 2-2 - Adding and Configuring the Foreach Loop Container

이 태스크에서는 플랫 파일 폴더를 통해 루핑하고 1단원에서 사용한 것과 같은 데이터 흐름 변환을 각 플랫 파일에 적용합니다.In this task, you will add the ability to loop through a folder of flat files and apply the same data flow transformation used in Lesson 1 to each of those flat files. 제어 흐름에 Foreach 루프 컨테이너를 추가하고 구성하여 이 작업을 수행합니다.You do this by adding and configuring a Foreach Loop container to the control flow.

추가한 Foreach 루프 컨테이너는 폴더의 각 플랫 파일에 연결할 수 있어야 합니다.The Foreach Loop container that you add must be able to connect to each flat file in the folder. 폴더의 파일이 모두 같은 형식이므로 Foreach 루프 컨테이너가 같은 플랫 파일 연결 관리자를 사용하여 이러한 파일에 각각 연결할 수 있습니다.Because all the files in the folder have the same format, the Foreach Loop container can use the same Flat File connection manager to connect to each of these files. 컨테이너가 사용할 플랫 파일 연결 관리자는 1단원에서 만든 것과 같은 플랫 파일 연결 관리자입니다.The Flat File connection manager that the container will use is the same Flat File connection manager that you created in Lesson 1.

현재 1단원에서 만든 플랫 파일 연결 관리자는 특정 플랫 파일 하나에만 연결합니다.Currently, the Flat File connection manager from Lesson 1 connects to only one, specific flat file. 폴더의 각 플랫 파일에 반복하여 연결하려면 다음과 같이 Foreach 루프 컨테이너와 플랫 파일 연결 관리자를 둘 다 구성해야 합니다.To iteratively connect to each flat file in the folder, you will have to configure both the Foreach Loop container and the Flat File connection manager as follows:

  • Foreach 루프 컨테이너: 컨테이너의 열거된 값을 사용자 정의 패키지 변수에 매핑합니다.Foreach Loop container: You will map the enumerated value of the container to a user-defined package variable. 그러면 컨테이너가 이 사용자 정의 변수를 사용하여 플랫 파일 연결 관리자의 ConnectionString 속성을 수정하고 폴더의 각 플랫 파일에 반복하여 연결합니다.The container will then use this user-defined variable to dynamically modify the ConnectionString property of the Flat File connection manager and iteratively connect to each flat file in the folder.

  • 플랫 파일 연결 관리자: 사용자 정의 변수를 사용해 연결 관리자의 ConnectionString 속성을 채워 1단원에서 만든 연결 관리자를 수정합니다.Flat File connection manager: You will modify the connection manager that was created in Lesson 1 by using a user-defined variable to populate the connection manager's ConnectionString property.

이 태스크의 절차에서는 Foreach 루프 컨테이너를 만들고 수정하여 사용자 정의 패키지 변수를 사용하고 루프에 데이터 흐름 작업을 추가하는 방법과The procedures in this task show you how to create and modify the Foreach Loop container to use a user-defined package variable and to add the data flow task to the loop. 플랫 파일 연결 관리자를 수정하여 다음 태스크에서 사용자 정의 변수를 사용하는 방법에 대해 설명합니다.You will learn how to modify the Flat File connection manager to use a user-defined variable in the next task.

패키지를 수정한 후 패키지가 실행되면 Foreach 루프 컨테이너가 Sample Data 폴더의 파일 집합 전체에서 반복됩니다.After you have made these modifications to the package, when the package is run, the Foreach Loop Container will iterate through the collection of files in the Sample Data folder. Foreach 루프 컨테이너는 조건에 맞는 파일을 발견할 때마다 사용자 정의 변수를 파일 이름으로 채우고 Sample Currency Data 플랫 파일 연결 관리자의 ConnectionString 속성에 사용자 정의 변수를 매핑한 다음 해당 파일에 대해 데이터 흐름을 실행합니다.Each time a file is found that matches the criteria, the Foreach Loop Container will populate the user-defined variable with the file name, map the user-defined variable to the ConnectionString property of the Sample Currency Data Flat File connection manager, and then run the data flow against that file. 따라서 Foreach 루프가 반복될 때마다 데이터 흐름 태스크에서 다른 플랫 파일을 사용합니다.Therefore, in each iteration of the Foreach Loop the Data Flow task will consume a different flat file.

참고

때문에 MicrosoftMicrosoft Integration ServicesIntegration Services 분리 흐름을 제어 하 고, 반복 제어 흐름에 추가 하는 데이터 흐름에 대 한 수정이 필요 하지 것입니다.Because MicrosoftMicrosoft Integration ServicesIntegration Services separates control flow from data flow, any looping that you add to the control flow will not require modification to the data flow. 따라서 1단원에서 만든 데이터 흐름을 변경하지 않아도 됩니다.Therefore, the data flow that you created in Lesson 1 does not have to be changed.

Foreach 루프 컨테이너를 추가하려면To add a Foreach Loop container

  1. SQL Server Data Tools에서 제어 흐름 탭을 클릭합니다.In SQL Server Data Tools, click the Control Flow tab.

  2. SSIS 도구 상자에서 컨테이너를 확장한 다음 Foreach 루프 컨테이너제어 흐름 탭의 디자인 화면으로 끌어옵니다.In the SSIS Toolbox, expand Containers, and then drag a Foreach Loop Container onto the design surface of the Control Flow tab.

  3. 새로 추가한 Foreach 루프 컨테이너 를 마우스 오른쪽 단추로 클릭하고 편집을 선택합니다.Right-click the newly added Foreach Loop Container and select Edit.

  4. Foreach 루프 편집기 대화 상자의 일반 페이지에서 이름Foreach File in Folder를 입력합니다.In the Foreach Loop Editor dialog box, on the General page, for Name, enter Foreach File in Folder. 확인을 클릭합니다.Click OK.

  5. Foreach 루프 컨테이너를 마우스 오른쪽 단추로 클릭하고 속성을 클릭한 다음 속성 창에서 LocaleID 속성이 영어(미국)로 설정되었는지 확인합니다.Right-click the Foreach Loop container, click Properties, and in the Properties window, verify that the LocaleID property is set to English (United States).

Foreach 루프 컨테이너의 열거자를 구성하려면To configure the enumerator for the Foreach Loop container

  1. Foreach File in Folder를 두 번 클릭하여 Foreach 루프 편집기를 다시 엽니다.Double-click Foreach File in Folder to reopen the Foreach Loop Editor.

  2. 컬렉션을 클릭합니다.Click Collection.

  3. 컬렉션 페이지에서 Foreach File 열거자를 선택합니다.On the Collection page, select Foreach File Enumerator.

  4. 열거자 구성 그룹에서 찾아보기를 클릭합니다.In the Enumerator configuration group, click Browse.

  5. 폴더 찾아보기 대화 상자에서 Currency_.txt 파일이 들어 있는 컴퓨터의 폴더를 찾습니다.In the **Browse for Folder* dialog box, locate the folder on your machine that contains the Currency_*.txt files.

    이 예제 데이터는 SSISSSIS 단원 패키지에 포함되어 있습니다.This sample data is included with the SSISSSIS lesson packages. 예제 데이터 및 단원 패키지를 다운로드하려면 다음을 수행합니다.To download the sample data and the lesson packages, do the following.

    1. Integration Services 제품 예제로 이동합니다.Navigate to Integration Services Product Samples.

    2. DOWNLOADS 탭을 클릭합니다.Click the DOWNLOADS tab.

    3. 에 대 한 링크를 클릭 하 고 SQL2012 합니다. Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip 파일입니다.Click the link for the SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip file.

  6. 파일 상자에 Currency_*.txt를 입력합니다.In the Files box, type Currency_*.txt.

사용자 정의 변수에 열거자를 매핑하려면To map the enumerator to a user-defined variable

  1. 변수 매핑을 클릭합니다.Click Variable Mappings.

  2. 변수 매핑 페이지는 변수 열에서 빈 셀을 클릭 하 고 선택 <새 변수... >합니다.On the Variable Mappings page, in the Variable column, click the empty cell and select <New Variable…>.

  3. 변수 추가 대화 상자에서 이름varFileName을 입력합니다.In the Add Variable dialog box, for Name, type varFileName.

    중요

    변수 이름은 대/소문자를 구분합니다.Variable names are case sensitive.

  4. 확인을 클릭합니다.Click OK.

  5. 확인 을 다시 클릭하여 Foreach 루프 편집기 대화 상자를 종료합니다.Click OK again to exit the Foreach Loop Editor dialog box.

루프에 데이터 흐름 태스크를 추가하려면To add the data flow task to the loop

  • Foreach File in Folder 로 이름이 바뀐 Foreach 루프 컨테이너로 Extract Sample Currency Data데이터 흐름 태스크를 끌어옵니다.Drag the Extract Sample Currency Data data flow task onto the Foreach Loop container now renamed Foreach File in Folder.

다음 단원 태스크Next Lesson Task

3 단계: 플랫 파일 연결 관리자 수정Step 3: Modifying the Flat File Connection Manager

참고 항목See Also

Foreach 루프 컨테이너 구성Configure a Foreach Loop Container
패키지에서 변수 사용Use Variables in Packages