패키지 실행 태스크Execute Package Task

패키지 실행 태스크는 패키지가 다른 패키지를 워크플로의 일부로 실행할 수 있도록 Integration ServicesIntegration Services 의 엔터프라이즈 기능을 확장했습니다.The Execute Package task extends the enterprise capabilities of Integration ServicesIntegration Services by letting packages run other packages as part of a workflow.

패키지 실행 태스크는 다음 용도로 사용할 수 있습니다.You can use the Execute Package task for the following purposes:

  • 복잡한 패키지 워크플로 분석.Breaking down complex package workflow. 이 태스크를 사용하면 워크플로를 여러 패키지로 분리하여 편리하게 읽고 테스트 및 유지 관리할 수 있습니다.This task lets you break down workflow into multiple packages, which are easier to read, test, and maintain. 예를 들어 별모양 스키마에 데이터를 로드할 경우 별도의 패키지를 작성하여 각 차원 및 팩트 테이블을 채울 수 있습니다.For example, if you are loading data into a star schema, you can build a separate package to populate each dimension and the fact table.

  • 패키지 일부 다시 사용.Reusing parts of packages. 다른 패키지에서 패키지 워크플로의 일부를 다시 사용할 수 있습니다.Other packages can reuse parts of a package workflow. 예를 들어 다른 패키지에서 호출할 수 있는 데이터 추출 모듈을 작성할 수 있습니다.For example, you can build a data extraction module that can be called from different packages. 추출 모듈을 호출하는 각 패키지는 다른 데이터 스크러빙, 필터링 또는 집계 작업을 수행할 수 있습니다.Each package that calls the extraction module can perform different data scrubbing, filtering, or aggregation operations.

  • 작업 단위 그룹화.Grouping work units. 작업 단위는 별개의 패키지로 캡슐화되고 트랜잭션 구성 요소로 부모 패키지의 워크플로에 조인됩니다.Units of work can be encapsulated into separate packages and joined as transactional components to the workflow of a parent package. 예를 들어 부모 패키지는 보조 패키지를 실행하고 보조 패키지의 성공 또는 실패에 따라 트랜잭션을 커밋하거나 롤백합니다.For example, the parent package runs the accessory packages, and based on the success or failure of the accessory packages, the parent package either commits or rolls back the transaction.

  • 패키지 보안 제어.Controlling package security. 패키지 작성자에게는 다중 패키지 솔루션의 일부에 대한 액세스 권한만 있으면 됩니다.Package authors require access to only a part of a multipackage solution. 하나의 패키지를 여러 패키지로 분리하여 해당 패키지에만 작성자 액세스 권한을 부여할 수 있으므로 보안이 한층 강화됩니다.By separating a package into multiple packages, you can provide a greater level of security, because you can grant an author access to only the relevant packages.

    다른 패키지를 실행하는 패키지를 일반적으로 부모 패키지라고 하고 부모 워크플로에서 실행하는 패키지를 자식 패키지라고 합니다.A package that runs other packages is generally referred to as the parent package, and the packages that a parent workflow runs are called child packages.

    Integration ServicesIntegration Services 에는 실행 파일 및 배치 파일 실행과 같은 워크플로 작업을 수행하는 태스크가 포함되어 있습니다. includes tasks that perform workflow operations, such as executing executables and batch files. 자세한 내용은 Execute Process Task을 참조하세요.For more information, see Execute Process Task.

패키지 실행Running Packages

패키지 실행 태스크는 부모 패키지와 동일한 프로젝트에 포함된 자식 프로젝트를 실행할 수 있습니다.The Execute Package task can run child packages that are contained in the same project that contains the parent package. ReferenceType 속성을 Project Reference로 설정하고 PackageNameFromProjectReference 속성을 설정하여 프로젝트에서 자식 패키지를 선택할 수 있습니다.You select a child package from the project by setting the ReferenceType property to Project Reference, and then setting the PackageNameFromProjectReference property.

참고

ReferenceType 옵션은 읽기 전용이며 패키지가 포함된 프로젝트가 프로젝트 배포 모델로 전환되지 않은 경우에는 외부 참조 로 설정됩니다.The ReferenceType option is ready-only and set to External Reference if the project that contains the package has not been converted to the project deployment model. 배포할 Integration Services (SSIS) 프로젝트 및 패키지합니다.Deploy Integration Services (SSIS) Projects and Packages.

패키지 실행 태스크는 SQL ServerSQL Server msdb 데이터베이스에 저장된 패키지와 파일 시스템에 저장된 패키지도 실행할 수 있습니다.The Execute Package task can also run packages stored in the SQL ServerSQL Server msdb database and packages stored in the file system. 이 태스크는 OLE DB 연결 관리자를 사용하여 SQL ServerSQL Server 에 연결하거나 파일 연결 관리자를 사용하여 파일 시스템에 액세스합니다.The task uses an OLE DB connection manager to connect to SQL ServerSQL Server or a File connection manager to access the file system. 자세한 내용은 OLE DB Connection ManagerFlat File Connection Manager를 참조하세요.For more information, see OLE DB Connection Manager and Flat File Connection Manager.

패키지 실행 태스크는 동일한 SSISSSIS 솔루션의 Integration ServicesIntegration Services 패키지와 데이터베이스 유지 관리 계획을 모두 관리할 수 있는 데이터베이스 유지 관리 계획을 실행할 수도 있습니다.The Execute Package task can also run a database maintenance plan, which lets you manage both SSISSSIS packages and database maintenance plans in the same Integration ServicesIntegration Services solution. 데이터베이스 유지 관리 계획은 SSISSSIS 패키지와 유사하지만 데이터베이스 유지 관리 태스크만 포함할 수 있으며 항상 msdb 데이터베이스에 저장됩니다.A database maintenance plan is similar to an SSISSSIS package, but a plan can include only database maintenance tasks, and it is always stored in the msdb database.

파일 시스템에 저장된 패키지를 선택할 경우 패키지의 이름과 위치를 제공해야 합니다.If you choose a package stored in the file system, you must provide the name and location of the package. 패키지 위치는 파일 시스템 어디나 가능하며 부모 패키지와 동일한 폴더에 있지 않아도 됩니다.The package can reside anywhere in the file system; it does not have to be in the same folder as the parent package.

자식 패키지는 부모 패키지 프로세스에서 실행되거나 자체 프로세스에서 실행될 수 있습니다.The child package can be run in the process of the parent package, or it can be run in its own process. 자식 패키지를 자체 프로세스에서 실행하려면 추가 메모리가 필요하지만 이런 방식으로 실행하면 유연성이 향상됩니다.Running the child package in its own process requires more memory, but it provides more flexibility. 예를 들어 자식 프로세스가 실패할 경우 부모 프로세스에서 계속 실행할 수 있습니다.For example, if the child process fails, the parent process can continue to run.

또는 한 단위의 부모 패키지와 해당 자식 패키지가 함께 실행되지 못하게 하거나 다른 프로세스의 추가 오버헤드를 발생시키지 않으려는 경우도 있습니다.Alternatively, sometimes you want the parent and child packages to fail together as one unit, or you might not want to incur the additional overhead of another process. 예를 들어 패키지 부모 프로세스의 후속 처리가 자식 프로세스의 성공 여부에 따라 달라지는 경우 자식 프로세스가 실패하면 부모 패키지 프로세스에서 자식 패키지를 실행해야 합니다.For example, if a child process fails and subsequent processing in the parent process of the package depends on success of the child process, the child package should run in the process of the parent package.

기본적으로 패키지 실행 태스크의 ExecuteOutOfProcess 속성은 False로 설정되고 자식 패키지는 부모 패키지와 같은 프로세스에서 실행됩니다.By default, the ExecuteOutOfProcess property of the Execute Package task is set to False, and the child package runs in the same process as the parent package. 이 속성을 True로 설정하면 하위 패키지가 개별 프로세스로 실행됩니다.If you set this property to True, the child package runs in a separate process. 이렇게 하면 하위 패키지의 실행 속도가 느려집니다.This may slow down the launching of the child package. 또한 속성을 True로 설정하면 도구만 설치로 패키지를 디버그할 수 없습니다.In addition, if you set the property to True, you cannot debug the package in a tools-only install. Integration ServicesIntegration Services를 설치해야 합니다.You must install Integration ServicesIntegration Services. 자세한 내용은 Integration Services 설치를 참조하세요.For more information, see Install Integration Services

트랜잭션 확장Extending Transactions

부모 패키지가 사용하는 트랜잭션은 자식 패키지로 확장될 수 있으므로 두 패키지가 수행한 작업을 모두 커밋하거나 롤백할 수 있습니다.The transaction that the parent package uses can extend to the child package; therefore, the work both packages perform can be committed or rolled back. 예를 들어 자식 패키지가 수행한 데이터베이스 삽입에 따라 부모 패키지가 수행한 데이터베이스 삽입을 커밋하거나 롤백할 수 있고 그 반대의 경우도 마찬가지로 적용됩니다.For example, the database inserts that the parent package performs can be committed or rolled back, depending on the database inserts that the child package performs, and vice versa. 자세한 내용은 Inherited Transactions을 참조하세요.For more information, see Inherited Transactions.

로깅 세부 정보 전달Propagating Logging Details

패키지 실행 태스크에서 실행하는 자식 패키지가 로깅을 사용하도록 구성될 수도 있고 그렇지 않을 수도 있지만 자식 패키지는 항상 로그 세부 정보를 부모 패키지로 전달합니다.The child package that the Execute Package task runs may or may not be configured to use logging, but the child package will always forward the log details to the parent package. 로깅을 사용하도록 패키지 실행 태스크를 구성하면 자식 패키지에서 전달된 로그 세부 정보가 기록됩니다.If the Execute Package task is configured to use logging, the task logs the log details from the child package. 자세한 내용은 Integration Services(SSIS) 로깅을 참조하세요.For more information, see Integration Services (SSIS) Logging.

자식 패키지에 값 전달Passing Values to Child Packages

자식 패키지는 자신을 호출한 다른 패키지, 일반적으로 부모 패키지에서 전달된 값을 사용하는 경우가 많습니다.Frequently a child package uses values passed to it by another package that calls it, ordinarily its parent package. 부모 패키지에서 전달된 값을 사용할 경우 다음과 같은 시나리오에서 도움이 됩니다.Using values from a parent package is useful in scenarios such as the following:

  • 큰 워크플로의 각 부분이 서로 다른 패키지에 할당됩니다.Parts of a larger workflow are assigned to different packages. 예를 들어 한 패키지에서는 매일 데이터를 다운로드하고, 데이터를 요약하고, 요약 데이터 값을 변수에 할당하고, 데이터 추가 처리를 위해 다른 패키지로 값을 전달합니다.For example, one package downloads data on a nightly basis, summarizes the data, assigns summary data values to variables, and then passes the values to another package for additional processing of the data.

  • 부모 패키지가 자식 패키지의 태스크를 동적으로 조정합니다.The parent package dynamically coordinates tasks in a child package. 예를 들어 부모 패키지가 현재 달의 일 수를 확인하고 이 수를 변수에 할당하면 자식 패키지가 해당 횟수만큼 태스크를 수행합니다.For example, the parent package determines the number of days in a current month and assigns the number to a variable, and the child package performs a task that number of times.

  • 자식 패키지가 부모 패키지에서 동적으로 파생된 데이터에 액세스해야 합니다.A child package requires access to data that is dynamically derived by the parent package. 예를 들어 부모 패키지가 테이블에서 데이터를 추출하고 행 집합을 변수에 로드하면 자식 패키지가 해당 데이터에 추가 작업을 수행합니다.For example, the parent package extracts data from a table and loads the rowset into a variable, and the child package performs additional operations on the data.

    자식 패키지에 값을 전달하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.You can use the following methods to pass values to a child package:

  • 패키지 구성Package Configurations

    Integration ServicesIntegration Services 는 부모 패키지의 값을 자식 패키지에 전달하기 위해 구성 유형 중 하나인 부모 패키지 변수 구성을 제공합니다. provides a configuration type, the Parent Package Variable configuration, for passing values from parent to child packages. 이 구성은 자식 패키지에서 작성되며 부모 패키지의 변수를 사용합니다.The configuration is built on the child package and uses a variable in the parent package. 이 구성은 자식 패키지의 변수나 자식 패키지의 개체 속성에 매핑됩니다.The configuration is mapped to a variable in the child package, or to the property of an object in the child package. 스크립트 태스크 또는 스크립트 구성 요소가 사용하는 스크립트에서 이 변수를 사용할 수도 있습니다.The variable can also be used in the scripts used by the Script task or Script component.

  • 매개 변수Parameters

    부모 패키지 변수나 매개 변수 또는 프로젝트 매개 변수를 자식 패키지 매개 변수에 매핑하도록 패키지 실행 태스크를 구성할 수 있습니다.You can configure the Execute Package Task to map parent package variables or parameters, or project parameters, to child package parameters. 프로젝트에서 프로젝트 배포 모델을 사용해야 하며 자식 패키지는 부모 패키지와 동일한 프로젝트에 포함되어 있어야 합니다.The project must use the project deployment model and the child package must be contained in the same project that contains the parent package. 자세한 내용은 Execute Package Task Editor을 참조하세요.For more information, see Execute Package Task Editor.

    참고

    자식 패키지 매개 변수가 중요한 정보가 아니고 중요한 부모 매개 변수에 매핑된 경우 자식 패키지가 실행되지 않습니다.If the child package parameter is not sensitive and is mapped to a parent parameter that is sensitive, the child package will fail to run.

    다음 매핑 조건이 지원됩니다.The following mapping conditions are supported:

    중요한 자식 패키지 매개 변수는 중요한 부모 매개 변수에 매핑됩니다.Sensitive, child package parameter is mapped to a sensitive, parent parameter

    중요한 자식 패키지 매개 변수는 중요하지 않은 부모 매개 변수에 매핑됩니다.Sensitive, child package parameter is mapped to a non-sensitive, parent parameter

    중요하지 않은 자식 패키지 매개 변수는 중요하지 않은 부모 매개 변수에 매핑됩니다.Non-sensitive, child package parameter is mapped to a non-sensitive, parent parameter

    부모 패키지 변수는 패키지 실행 태스크 범위나 패키지 등의 부모 컨테이너에서 정의할 수 있습니다.The parent package variable can be defined in the scope of the Execute Package task or in a parent container such as the package. 동일한 이름을 가진 변수가 여러 개이면 패키지 실행 태스크 범위에서 정의된 변수나 범위에서 해당 태스크에 가장 가까운 변수가 사용됩니다.If multiple variables with the same name are available, the variable defined in the scope of the Execute Package task is used, or the variable that is closest in scope to the task.

    자세한 내용은 자식 패키지에서 변수 및 매개 변수의 값 사용을 참조하세요.For more information, see Use the Values of Variables and Parameters in a Child Package.

부모 패키지 변수 액세스Accessing Parent Package Variables

자식 패키지는 스크립트 태스크를 사용하여 부모 패키지 변수에 액세스할 수 있습니다.Child packages can access parent package variables by using the Script task. 스크립트 태스크 편집기스크립트페이지에서 부모 패키지 변수의 이름을 입력하는 경우 변수 이름에 User: 를 포함하지 마십시오.When you enter the name of the parent package variable on the Script page in the Script Task Editor, don’t include User: in the variable name. 그렇지 않으면 부모 패키지를 실행할 때 자식 패키지에서 변수를 찾을 수 없습니다.Otherwise, the child package doesn’t locate the variable when you run the parent package.

패키지 실행 태스크 구성Configuring the Execute Package Task

SSISSSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.You can set properties through SSISSSIS Designer or programmatically.

SSISSSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목을 클릭하십시오.For more information about the properties that you can set in SSISSSIS Designer, click the following topic:

프로그래밍 방식으로 패키지 실행 태스크 구성Configuring the Execute Package Task Programmatically

이러한 속성을 프로그래밍 방식으로 설정하는 방법을 보려면 다음 항목을 클릭하십시오.For more information about programmatically setting these properties, click the following topic:

패키지 실행 태스크 편집기Execute Package Task Editor

패키지 실행 태스크 편집기로 패키지 실행 태스크를 구성합니다.Use the Execute Package Task Editor to configure the Execute Package Task. 패키지 실행 태스크는 패키지가 다른 패키지를 워크플로의 일부로 실행할 수 있도록 Integration ServicesIntegration Services 의 엔터프라이즈 기능을 확장했습니다.The Execute Package task extends the enterprise capabilities of Integration ServicesIntegration Services by letting packages run other packages as part of a workflow.

수행 작업What do you want to do?

패키지 실행 태스크 편집기 열기 Open the Execute Package Task Editor

  1. Integration ServicesIntegration Services 에서 패키지 실행 태스크가 들어 있는 Visual StudioVisual Studio 프로젝트를 엽니다.Open an Integration ServicesIntegration Services project in Visual StudioVisual Studio that contains an Execute Package task.

  2. SSIS 디자이너에서 태스크를 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭합니다.Right-click the task in the SSIS Designer, and then click Edit.

일반 페이지에서 옵션 설정 Set the Options on the General Page

이름Name
패키지 실행 태스크에 사용할 고유 이름을 제공합니다.Provide a unique name for the Execute Package task. 이 이름은 태스크 아이콘에서 레이블로 사용됩니다.This name is used as the label in the task icon.

참고

태스크 이름은 패키지 내에서 고유해야 합니다.Task names must be unique within a package.

DescriptionDescription
패키지 실행 태스크에 대한 설명을 입력합니다.Type a description of the Execute Package task.

패키지 페이지에서 옵션 설정 Set the Options on the Package Page

ReferenceTypeReferenceType
자식 패키지가 프로젝트 내부에 있는 경우 프로젝트 참조 를 선택합니다.Select Project Reference for child packages that are in the project. 자식 패키지가 프로젝트 외부에 있는 경우 외부 참조 를 선택합니다.Select External Reference for child packages that are located outside the package

참고

ReferenceType 옵션은 읽기 전용이며 패키지가 포함된 프로젝트가 프로젝트 배포 모델로 전환되지 않은 경우에는 외부 참조 로 설정됩니다.The ReferenceType option is ready-only and set to External Reference if the project that contains the package has not been converted to the project deployment model. 배포할 Integration Services (SSIS) 프로젝트 및 패키지합니다.Deploy Integration Services (SSIS) Projects and Packages.

암호Password
자식 패키지가 암호로 보호되어 있으면 자식 패키지의 암호를 입력하거나 줄임표 단추 (...)를 클릭하여 자식 패키지의 새 암호를 만듭니다.If the child package is password protected, provide the password for the child package, or click the ellipsis button (…) and create a new password for the child package.

ExecuteOutOfProcessExecuteOutOfProcess
자식 패키지를 부모 패키지 프로세스에서 실행할지 아니면 별도의 프로세스에서 실행할지 지정합니다.Specify whether the child package runs in the process of the parent package or in a separate process. 기본적으로 패키지 실행 태스크의 ExecuteOutOfProcess 속성은 False로 설정되고 자식 패키지는 부모 패키지와 같은 프로세스에서 실행됩니다.By default, the ExecuteOutOfProcess property of the Execute Package task is set to False, and the child package runs in the same process as the parent package. 이 속성을 true로 설정하면 하위 패키지가 개별 프로세스로 실행됩니다.If you set this property to true, the child package runs in a separate process. 이렇게 하면 하위 패키지의 실행 속도가 느려집니다.This may slow down the launching of the child package. 또한 이 속성을 true로 설정하면 도구만 설치로 패키지를 디버그할 수 없으며 Integration ServicesIntegration Services 제품을 설치해야 합니다.In addition, if set the property to true, you cannot debug the package in a tools-only install; you must install the Integration ServicesIntegration Services product. 자세한 내용은 Integration Services 설치를 참조하세요.For more information, see Install Integration Services.

ReferenceType 동적 옵션ReferenceType Dynamic Options

ReferenceType = 외부 참조ReferenceType = External Reference

위치Location
자식 패키지의 위치를 선택합니다.Select the location of the child package. 이 속성의 옵션은 다음 표에 나열되어 있습니다.This property has the options listed in the following table.

ValueValue DescriptionDescription
SQL ServerSQL Server 위치를 SQL ServerSQL Server인스턴스로 설정합니다.Set the location to an instance of SQL ServerSQL Server.
파일 시스템File system 파일 시스템에 위치를 설정합니다.Set the location to the file system.

연결Connection
자식 패키지의 저장소 위치 유형을 선택합니다.Select the type of storage location for the child package.

PackageNameReadOnlyPackageNameReadOnly
패키지 이름을 표시합니다.Displays the package name.

ReferenceType = 프로젝트 참조ReferenceType = Project Reference

PackageNameFromProjectReferencePackageNameFromProjectReference
프로젝트에 포함된 패키지 중 자식 패키지로 지정할 패키지를 선택합니다.Select a package contained in the project, to be the child package.

Location 동적 옵션Location Dynamic Options

Location = SQL ServerLocation = SQL Server

연결Connection
목록에서 OLE DB 연결 관리자를 선택 하거나 클릭 < 새 연결... > 새 연결 관리자를 만듭니다.Select an OLE DB connection manager in the list, or click <New connection...> to create a new connection manager.

관련된 항목: OLE DB 연결 관리자Related Topics: OLE DB Connection Manager

PackageNamePackageName
자식 패키지의 이름을 입력하거나 줄임표 (...)를 클릭하여 패키지를 찾습니다.Type the name of the child package, or click the ellipsis (…) and then locate the package.

Location = 파일 시스템Location = File system

연결Connection
목록에서 파일 연결 관리자를 선택 하거나 클릭 < 새 연결... > 새 연결 관리자를 만듭니다.Select a File connection manager in the list, or click <New connection...> to create a new connection manager.

관련 항목: 파일 연결 관리자Related Topics: File Connection Manager

PackageNameReadOnlyPackageNameReadOnly
패키지 이름을 표시합니다.Displays the package name.

매개 변수 바인딩 페이지에서 옵션 설정 Set the Options on the Parameter Bindings Page

부모 패키지나 프로젝트의 값을 자식 패키지에 전달할 수 있습니다.You can pass values from the parent package or the project, to the child package. 프로젝트에서 프로젝트 배포 모델을 사용해야 하며 자식 패키지는 부모 패키지와 동일한 프로젝트에 포함되어 있어야 합니다.The project must use the project deployment model and the child package must be contained in the same project that contains the parent package.

프로젝트를 프로젝트 배포 모델로 변환 하는 방법에 대 한 내용은 배포할 Integration Services (SSIS) 프로젝트 및 패키지합니다.For information about converting projects to the project deployment model, see Deploy Integration Services (SSIS) Projects and Packages.

자식 패키지 매개 변수Child package parameter
자식 패키지 매개 변수의 이름을 입력하거나 선택합니다.Enter or select a name for the child package parameter.

매개 변수 또는 변수 바인딩Binding parameter or variable
자식 패키지에 전달할 값이 포함된 매개 변수나 변수를 선택합니다.Select the parameter or variable that contains the value that you want to pass to the child package.

추가Add
자식 패키지 매개 변수에 매개 변수나 변수를 매핑하려면 클릭합니다.Click to map a parameter or variable to a child package parameter.

제거Remove
매개 변수나 변수와 자식 패키지 매개 변수 간의 매핑을 제거하려면 클릭합니다.Click to remove a mapping between a parameter or variable and a child package parameter.