다음을 통해 공유


패키지 실행 태스크

적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime

패키지 실행 태스크는 패키지가 워크플로의 일부로 다른 패키지를 실행하게 하여 Integration Services의 엔터프라이즈 기능을 확장합니다.

패키지 실행 태스크는 다음 용도로 사용할 수 있습니다.

  • 복잡한 패키지 워크플로를 분해합니다. 이 태스크를 사용하면 워크플로를 여러 패키지로 분리하여 편리하게 읽고 테스트 및 유지 관리할 수 있습니다. 예를 들어 별모양 스키마에 데이터를 로드할 경우 별도의 패키지를 작성하여 각 차원 및 팩트 테이블을 채울 수 있습니다.

  • 패키지의 일부를 다시 사용합니다. 다른 패키지는 패키지 워크플로의 일부를 다시 사용할 수 있습니다. 예를 들어 다른 패키지에서 호출 가능한 데이터 추출 모듈을 빌드할 수 있습니다. 추출 모듈을 호출하는 각 패키지는 서로 다른 데이터 스크러빙, 필터링 또는 집계 작업을 수행할 수 있습니다.

  • 작업 단위를 그룹화합니다. 작업 단위를 별도의 패키지로 캡슐화하고 부모 패키지의 워크플로에 트랜잭션 구성 요소로 조인할 수 있습니다. 예를 들어 부모 패키지는 보조 패키지를 실행하고 보조 패키지의 성공 또는 실패에 따라 트랜잭션을 커밋하거나 롤백합니다.

  • 패키지 보안을 제어합니다. 패키지 작성자는 멀티패키지 솔루션의 일부에만 액세스해야 합니다. 패키지를 여러 패키지로 구분하면 작성자에게 관련 패키지에만 액세스 권한을 부여할 수 있으므로 더 높은 수준의 보안을 제공할 수 있습니다.

다른 패키지를 실행하는 패키지를 일반적으로 부모 패키지라고 하며 부모 워크플로에서 실행하는 패키지를 자식 패키지라고 합니다.

Integration Services에는 실행 파일 및 배치 파일 실행과 같은 워크플로 작업을 수행하는 태스크가 있습니다. 자세한 내용은 프로세스 실행 태스크를 참조하세요.

실행 중인 패키지

패키지 실행 태스크는 부모 패키지를 포함하는 동일한 프로젝트에 포함된 자식 패키지를 실행할 수 있습니다. ReferenceType 속성을 프로젝트 참조로 설정한 다음 PackageNameFromProjectReference 속성을 설정하여 프로젝트에서 자식 패키지를 선택합니다.

참고 항목

패키지가 포함된 프로젝트가 프로젝트 배포 모델로 변환되지 않은 경우 ReferenceType 옵션은 준비 전용이며 외부 참조로 설정됩니다. Integration Services(SSIS) 프로젝트 및 패키지를 배포합니다.

패키지 실행 태스크는 SQL Server msdb 데이터베이스에 저장된 패키지와 파일 시스템에 저장된 패키지를 실행할 수도 있습니다. 이 태스크는 OLE DB 연결 관리자를 사용하여 SQL Server에 연결하거나 파일 연결 관리자를 사용하여 파일 시스템에 액세스합니다. 자세한 내용은 OLE DB 연결 관리자플랫 파일 연결 관리자를 참조하세요.

패키지 실행 태스크는 동일한 Integration Services 솔루션에서 SSIS 패키지와 데이터베이스 유지 관리 계획을 모두 관리할 수 있는 데이터베이스 유지 관리 계획을 실행할 수도 있습니다. 데이터베이스 유지 관리 계획은 SSIS 패키지와 유사하지만 계획에는 데이터베이스 유지 관리 작업만 포함할 수 있으며 항상 msdb 데이터베이스에 저장됩니다.

파일 시스템에 저장된 패키지를 선택하는 경우 패키지의 이름과 위치를 제공해야 합니다. 패키지는 파일 시스템의 어느 곳에나 상주할 수 있습니다. 부모 패키지와 동일한 폴더에 있을 필요는 없습니다.

자식 패키지는 부모 패키지의 프로세스에서 실행되거나 자체 프로세스에서 실행될 수 있습니다. 자체 프로세스에서 자식 패키지를 실행하려면 더 많은 메모리가 필요하지만 더 많은 유연성을 제공합니다. 예를 들어 자식 프로세스가 실패하면 부모 프로세스를 계속 실행할 수 있습니다.

또는 부모 및 자식 패키지가 하나의 단위로 함께 실패하게 하거나 다른 프로세스의 추가 오버헤드를 발생시키지 않으려는 경우가 있습니다. 예를 들어 자식 프로세스가 실패하고 패키지의 부모 프로세스에서 후속 처리가 자식 프로세스의 성공에 따라 달라지는 경우 자식 패키지는 부모 패키지의 프로세스에서 실행되어야 합니다.

기본적으로 패키지 실행 태스크의 ExecuteOutOfProcess 속성은 False로 설정되고 자식 패키지는 부모 패키지와 동일한 프로세스에서 실행됩니다. 이 속성을 True로 설정하면 자식 패키지가 개별 프로세스로 실행됩니다. 이로 인해 자식 패키지의 시작 속도가 느려질 수 있습니다. 또한 속성을 True로 설정하면 도구만 설치로 패키지를 디버그할 수 없습니다. Integration Services를 설치해야 합니다. 자세한 내용은 Integration Services 설치를 참조하세요.

트랜잭션 확장

부모 패키지에서 사용하는 트랜잭션은 자식 패키지로 확장할 수 있습니다. 따라서 두 패키지가 수행하는 작업을 커밋하거나 롤백할 수 있습니다. 예를 들어 자식 패키지가 수행하는 데이터베이스 삽입에 따라 부모 패키지가 수행하는 데이터베이스 삽입을 커밋하거나 롤백할 수 있으며 그 반대의 경우도 마찬가지입니다. 자세한 내용은 상속된 트랜잭션을 참조하세요.

로깅 세부 정보 전달

패키지 실행 태스크가 실행하는 자식 패키지는 로깅을 사용하도록 구성되거나 구성되지 않을 수 있지만 자식 패키지는 항상 로그 세부 정보를 부모 패키지로 전달합니다. 패키지 실행 태스크가 로깅을 사용하도록 구성된 경우 태스크는 자식 패키지의 로그 세부 정보를 기록합니다. 자세한 내용은 SSIS(Integration Services) 로깅을 참조하세요.

자식 패키지에 값 전달

자식 패키지는 일반적으로 부모 패키지를 호출하는 다른 패키지에서 전달된 값을 사용하는 경우가 많습니다. 부모 패키지의 값을 사용하는 것은 다음과 같은 시나리오에서 유용합니다.

  • 큰 워크플로의 각 부분이 서로 다른 패키지에 할당됩니다. 예를 들어 한 패키지에서는 매일 데이터를 다운로드하고, 데이터를 요약하고, 요약 데이터 값을 변수에 할당하고, 데이터 추가 처리를 위해 다른 패키지로 값을 전달합니다.

  • 부모 패키지는 자식 패키지의 작업을 동적으로 조정합니다. 예를 들어 부모 패키지가 현재 달의 일 수를 확인하고 이 수를 변수에 할당하면 자식 패키지가 해당 횟수만큼 태스크를 수행합니다.

  • 자식 패키지는 부모 패키지에서 동적으로 파생된 데이터에 액세스해야 합니다. 예를 들어 부모 패키지는 테이블에서 데이터를 추출하고 행 집합을 변수로 로드하며 자식 패키지는 데이터에 대한 추가 작업을 수행합니다.

다음 메서드를 사용하여 자식 패키지에 값을 전달할 수 있습니다.

  • 패키지 구성

    Integration Services는 부모 패키지에서 자식 패키지로 값을 전달하기 위한 구성 유형인 부모 패키지 변수 구성을 제공합니다. 이 구성은 자식 패키지에서 작성되며 부모 패키지의 변수를 사용합니다. 이 구성은 자식 패키지의 변수나 자식 패키지의 개체 속성에 매핑됩니다. 이 변수는 스크립트 태스크 또는 스크립트 구성 요소에서 사용하는 스크립트에서도 사용할 수 있습니다.

  • 매개 변수

    부모 패키지 변수나 매개 변수 또는 프로젝트 매개 변수를 자식 패키지 매개 변수에 매핑하도록 패키지 실행 태스크를 구성할 수 있습니다. 프로젝트는 프로젝트 배포 모델을 사용해야 하며 자식 패키지는 부모 패키지가 포함된 동일한 프로젝트에 포함되어야 합니다. 자세한 내용은 패키지 실행 태스크 편집기를 참조하세요.

    참고 항목

    자식 패키지 매개 변수가 민감하지 않고 중요한 부모 매개 변수에 매핑되면 자식 패키지가 실행되지 않습니다.

    다음 매핑 조건이 지원됩니다.

    중요한 자식 패키지 매개 변수는 중요한 부모 매개 변수에 매핑됩니다.

    중요한 자식 패키지 매개 변수는 중요하지 않은 부모 매개 변수에 매핑됩니다.

    중요하지 않은 자식 패키지 매개 변수는 중요하지 않은 부모 매개 변수에 매핑됩니다.

부모 패키지 변수는 패키지 실행 태스크의 범위 또는 패키지와 같은 부모 컨테이너에서 정의할 수 있습니다. 이름이 같은 여러 변수를 사용할 수 있는 경우 패키지 실행 태스크의 범위에 정의된 변수 또는 태스크 범위에서 가장 가까운 변수가 사용됩니다.

자세한 내용은 자식 패키지에서 변수 및 매개 변수 값 사용을 참조하세요.

부모 패키지 변수 액세스

자식 패키지는 스크립트 태스크를 사용하여 부모 패키지 변수에 액세스할 수 있습니다. 스크립트 태스크 편집기스크립트 페이지에서 부모 패키지 변수의 이름을 입력할 때 변수 이름에 User:를 포함하지 마세요. 그렇지 않으면 부모 패키지를 실행할 때 자식 패키지가 변수를 찾지 않습니다.

패키지 실행 태스크 구성

SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.

SSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목을 클릭하세요.

SSIS 디자이너에서 이러한 속성을 설정하는 방법을 보려면 다음 항목을 클릭하십시오.

프로그래밍 방식으로 패키지 실행 태스크 구성

이러한 속성을 프로그래밍 방식으로 설정하는 방법을 보려면 다음 주제를 클릭하세요.

패키지 실행 태스크 편집기

패키지 실행 태스크 편집기를 사용하여 패키지 실행 태스크를 구성합니다. 패키지 실행 태스크는 패키지가 워크플로의 일부로 다른 패키지를 실행하게 하여 Integration Services의 엔터프라이즈 기능을 확장합니다.

수행 작업

패키지 실행 태스크 편집기 열기

  1. 패키지 실행 태스크가 포함된 Integration Services 프로젝트를 Visual Studio에서 엽니다.

  2. SSIS 디자이너에서 태스크를 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭합니다.

일반 페이지에서 옵션 설정

이름
패키지 실행 태스크에 사용할 고유 이름을 제공합니다. 이 이름은 태스크 아이콘에서 레이블로 사용됩니다.

참고

태스크 이름은 패키지 내에서 고유해야 합니다.

설명
패키지 실행 태스크에 대한 설명을 입력합니다.

패키지 페이지에서 옵션 설정

ReferenceType
프로젝트에 있는 자식 패키지에 대한 프로젝트 참조를 선택합니다. 패키지 외부에 있는 자식 패키지에 대한 외부 참조를 선택합니다.

참고 항목

패키지가 포함된 프로젝트가 프로젝트 배포 모델로 변환되지 않은 경우 ReferenceType 옵션은 준비 전용이며 외부 참조로 설정됩니다. Integration Services(SSIS) 프로젝트 및 패키지를 배포합니다.

암호
자식 패키지가 암호로 보호되어 있으면 자식 패키지의 암호를 입력하거나 줄임표 단추(...)를 클릭하여 자식 패키지의 새 암호를 만듭니다.

ExecuteOutOfProcess
자식 패키지가 부모 패키지의 프로세스에서 실행되는지 또는 별도의 프로세스에서 실행되는지를 지정합니다. 기본적으로 패키지 실행 태스크의 ExecuteOutOfProcess 속성은 False로 설정되고 자식 패키지는 부모 패키지와 동일한 프로세스에서 실행됩니다. 이 속성을 true로 설정하면 하위 패키지가 개별 프로세스로 실행됩니다. 이로 인해 자식 패키지의 시작 속도가 느려질 수 있습니다. 또한 이 속성을 true로 설정하면 도구만 설치로 패키지를 디버깅할 수 없으며 Integration Services 제품을 설치해야 합니다. 자세한 내용은 Integration Services 설치를 참조하세요.

ReferenceType 동적 옵션

ReferenceType = 외부 참조

위치
자식 패키지의 위치를 선택합니다. 이 속성의 옵션은 다음 테이블에 나열되어 있습니다.

설명
SQL Server 위치를 SQL Server의 인스턴스로 설정합니다.
파일 시스템 위치를 파일 시스템으로 설정합니다.

Connection
자식 패키지의 스토리지 위치 유형을 선택합니다.

PackageNameReadOnly
패키지 이름을 표시합니다.

ReferenceType = 프로젝트 참조

PackageNameFromProjectReference
프로젝트에 포함된 패키지 중 자식 패키지로 지정할 패키지를 선택합니다.

Location 동적 옵션

위치 = SQL Server

Connection
목록에서 OLE DB 연결 관리자를 선택하거나 <새 연결...>을 클릭하여 새 연결 관리자를 만듭니다.

관련 주제: OLE DB 연결 관리자

PackageName
자식 패키지의 이름을 입력하거나 줄임표(...)를 클릭한 다음, 패키지를 찾습니다.

위치 = 파일 시스템

Connection
목록에서 파일 연결 관리자를 선택하거나 <새 연결...>을 클릭하여 새 연결 관리자를 만듭니다.

관련 주제: 파일 연결 관리자

PackageNameReadOnly
패키지 이름을 표시합니다.

매개 변수 바인딩 페이지에서 옵션 설정

부모 패키지 또는 프로젝트의 값을 자식 패키지로 전달할 수 있습니다. 프로젝트는 프로젝트 배포 모델을 사용해야 하며 자식 패키지는 부모 패키지가 포함된 동일한 프로젝트에 포함되어야 합니다.

프로젝트를 프로젝트 배포 모델로 변환하는 방법에 대한 자세한 내용은 Integration Services(SSIS) 프로젝트 및 패키지 배포를 참조하세요.

자식 패키지 매개 변수
자식 패키지 매개 변수의 이름을 입력하거나 선택합니다.

바인딩 매개 변수 또는 변수
자식 패키지에 전달할 값이 포함된 매개 변수나 변수를 선택합니다.

추가
자식 패키지 매개 변수에 매개 변수나 변수를 매핑하려면 클릭합니다.

제거
파라미터 또는 변수와 자식 패키지 매개 변수 간 매핑을 제거하려면 클릭합니다.