다음을 통해 공유


Integration Services(SSIS) 패키지

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

패키지는 연결, 제어 흐름 요소, 데이터 흐름 요소, 이벤트 처리기, 변수, 매개 변수 및 구성으로 이루어진 컬렉션으로 SQL Server Integration Services에서 제공하는 그래픽 디자인 도구를 사용하여 조합하거나 프로그래밍 방식으로 작성합니다. 그런 다음, 완료된 패키지를 SQL Server, SSIS 패키지 저장소 또는 파일 시스템에 저장하거나 SSIS 서버에 ssISnoversion 프로젝트를 배포할 수 있습니다. 패키지는 검색, 실행 및 저장되는 작업 단위입니다.

패키지를 처음 만들면, 이는 아무 작업도 수행하지 않는 빈 개체입니다. 패키지에 기능을 추가하려면 하나의 제어 흐름과 선택적으로 하나 이상의 데이터 흐름을 패키지에 추가합니다.

다음 다이어그램에서는 데이터 흐름 태스크가 있는 제어 흐름을 포함하는 간단한 패키지를 보여 줍니다. 이 패키지에는 데이터 흐름이 포함됩니다.

제어 흐름 및 데이터 흐름을 포함하는 패키지

기본 패키지를 만든 후에는 로깅 및 변수와 같은 유용한 기능을 추가하여 패키지 기능을 확장할 수 있습니다. 자세한 내용은 패키지 기능을 확장하는 개체에 대한 섹션을 참조하세요.

완성된 패키지는 보안을 구현하고, 검사점에서 패키지를 다시 시작할 수 있게 하고, 패키지 워크플로에 트랜잭션을 통합하는 패키지 수준의 속성을 설정하여 구성할 수 있습니다. 자세한 내용은 확장 기능을 지원하는 속성에 대한 섹션을 참조하세요.

패키지의 내용

작업 및 컨테이너(제어 흐름). 제어 흐름은 하나 이상의 작업과 패키지 실행 시 실행되는 컨테이너로 구성됩니다. 순서를 제어하거나 패키지 제어 흐름에서 다음 작업 또는 컨테이너를 실행하기 위한 조건을 정의하려면 선행 제약 조건을 사용하여 패키지의 작업과 컨테이너를 연결합니다. 작업 및 컨테이너의 하위 집합을 패키지 제어 흐름 내의 단위로 그룹화하고 반복적으로 실행할 수도 있습니다. 자세한 내용은 제어 흐름을 참조하세요.

데이터 원본 및 대상(데이터 흐름) 데이터 흐름은 데이터를 추출 및 로드하는 원본 및 대상, 데이터를 수정 및 확장하는 변환, 원본, 변환 및 대상을 연결하는 경로로 구성됩니다. 데이터 흐름을 패키지에 추가하려면 패키지의 제어 흐름에 데이터 흐름 태스크가 포함되어 있어야 합니다. 데이터 흐름 태스크는 데이터 흐름을 만들고, 주문하고, 실행하는 SSIS 패키지 내의 실행 파일입니다. 패키지의 각 데이터 흐름 태스크에 대해 별도의 데이터 흐름 엔진 인스턴스가 열립니다. 자세한 내용은 데이터 흐름 태스크데이터 흐름을 참조하세요.

연결 관리자(연결) 패키지에는 일반적으로 하나 이상의 연결 관리자가 포함됩니다. 연결 관리자는 패키지에서 태스크, 변환 및 이벤트 처리기가 사용하는 데이터에 액세스하기 위한 연결 문자열을 정의하는 패키지와 데이터 원본 간의 링크입니다. Integration Services에는 텍스트 및 XML 파일, 관계형 데이터베이스, Analysis Services 데이터베이스 및 프로젝트와 같은 데이터 원본에 대한 연결 형식이 포함됩니다. 자세한 내용은 Integration Services(SSIS) 연결을 참조하세요.

패키지 기능을 확장하는 개체

패키지에는 유용한 기능을 제공하거나 이벤트 처리기, 구성, 로깅 및 변수와 같은 기존 기능을 확장하는 추가 개체가 포함될 수 있습니다.

이벤트 처리기

이벤트 처리기는 패키지, 태스크 또는 컨테이너에서 발생하는 이벤트에 대한 대응으로 실행되는 워크플로입니다. 예를 들어 이벤트 처리기를 사용하여 실행 전 이벤트가 발생하거나 오류가 발생하는 경우 디스크 공간을 확인하고 사용 가능한 공간 또는 오류 정보를 관리자에게 보고하는 전자 메일 메시지를 보낼 수 있습니다. 이벤트 처리기는 제어 흐름 및 선택적 데이터 흐름을 사용하여 패키지처럼 구성됩니다. 패키지의 개별 태스크나 컨테이너에 이벤트 처리기를 추가할 수 있습니다. 자세한 내용은 Integration Services(SSIS) 이벤트 처리기를 참조하세요.

구성

구성은 패키지 및 패키지 실행 시 해당 태스크, 컨테이너, 변수, 연결 및 이벤트 처리기의 속성을 정의하는 속성-값 쌍 집합입니다. 구성을 사용하면 패키지를 수정하지 않아도 속성을 업데이트할 수 있습니다. 패키지를 실행하면 구성 정보가 로드되어 속성 값이 업데이트됩니다. 예를 들어 구성은 연결의 연결 문자열을 업데이트할 수 있습니다.

패키지가 다른 컴퓨터에 설치되면 구성이 저장되고 패키지와 함께 배포됩니다. 다른 환경에서 패키지를 지원하도록 패키지를 설치할 때 구성의 값을 업데이트할 수 있습니다. 자세한 내용은 패키지 구성 만들기를 참조하세요.

로깅 및 로그 공급자

로그는 패키지가 실행될 때 수집되는 패키지에 대한 정보의 컬렉션입니다. 예를 들어 로그는 패키지 실행의 시작 시간과 종료 시간을 제공할 수 있습니다. 로그 공급자는 패키지와 해당 컨테이너 및 태스크가 런타임 정보를 기록하는 데 사용할 수 있는 대상 유형과 형식을 정의합니다. 로그는 패키지와 연결되지만 패키지의 태스크 및 컨테이너는 모든 패키지 로그에 정보를 기록할 수 있습니다. Integration Services에는 로깅을 위한 다양한 기본 제공 로그 공급자가 포함되어 있습니다. 예를 들어 Integration Services에는 SQL Server 및 텍스트 파일에 대한 로그 공급자가 포함됩니다. 사용자 지정 로그 공급자를 만들고 로깅에 사용할 수도 있습니다. 자세한 내용은 SSIS(Integration Services) 로깅을 참조하세요.

변수

Integration Services는 시스템 변수와 사용자 정의 변수를 지원합니다. 시스템 변수는 런타임에 패키지 개체에 대한 유용한 정보를 제공하며 사용자 정의 변수는 패키지의 사용자 지정 시나리오를 지원합니다. 식, 스크립트 및 구성에서 두 가지 유형의 변수를 모두 사용할 수 있습니다.

패키지 수준 변수에는 패키지에 사용할 수 있는 사전 정의된 시스템 변수와 패키지 범위가 있는 사용자 정의 변수가 포함됩니다. 자세한 내용은 Integration Services(SSIS) 변수를 참조하세요.

매개 변수

Integration Services 매개 변수를 사용하여 패키지 실행 시 패키지 속성에 값을 할당합니다. 프로젝트 수준에서 프로젝트 매개 변수를 만들고 패키지 수준에서 패키지 매개 변수를 만들 수 있습니다. 프로젝트 매개 변수는 프로젝트가 수신하는 외부 입력을 프로젝트 내 하나 이상의 패키지에 제공하기 위해 사용됩니다. 패키지 매개 변수를 사용하면 패키지를 편집하고 다시 배포하지 않고도 패키지 실행을 수정할 수 있습니다. 자세한 내용은 Integration Services(SSIS) 매개 변수를 참조하세요.

확장 기능을 지원하는 패키지 속성

패키지 개체는 검사점에서 패키지를 다시 시작하고, 디지털 인증서로 패키지에 서명하고, 패키지 보호 수준을 설정하고, 트랜잭션을 사용하여 데이터 무결성을 보장하는 등의 기능을 지원하도록 구성할 수 있습니다.

패키지 다시 시작

패키지에는 하나 이상의 작업이 실패할 때 패키지를 다시 시작하는 데 사용할 수 있는 검사점 속성이 포함되어 있습니다. 예를 들어 패키지에 서로 다른 두 테이블을 업데이트하는 두 개의 데이터 흐름 태스크가 있고 두 번째 작업이 실패하는 경우 첫 번째 데이터 흐름 태스크를 반복하지 않고 패키지를 다시 실행할 수 있습니다. 패키지를 다시 시작하면 장기 실행 패키지에 대한 시간을 절약할 수 있습니다. 다시 시작하면 전체 패키지를 다시 실행하지 않고도 실패한 작업에서 패키지를 시작할 수 있습니다. 자세한 내용은 검사점을 사용하여 패키지 다시 시작을 참조하세요.

패키지 보안

디지털 서명으로 패키지를 서명하고 암호 또는 사용자 키를 사용하여 암호화할 수 있습니다. 디지털 서명은 패키지의 원본을 인증합니다. 그러나 패키지가 로드되면 디지털 서명을 확인하도록 Integration Services도 구성해야 합니다. 자세한 내용은 디지털 서명을 사용하여 패키지 원본 확인패키지의 중요한 데이터에 대한 액세스 제어를 참조하세요.

트랜잭션 지원

패키지에서 트랜잭션 특성을 설정하면 패키지의 태스크, 컨테이너 및 연결이 트랜잭션에 조인할 수 있습니다. 트랜잭션 특성은 패키지와 해당 요소가 한 단위로 성공하거나 실패하도록 합니다. 패키지는 다른 패키지를 실행하고 트랜잭션에 다른 패키지를 등록할 수도 있으므로 여러 개의 패키지를 하나의 작업 단위로 실행할 수 있습니다. 자세한 내용은 Integration Services 트랜잭션을 참조하세요.

패키지에 사용할 수 있는 사용자 지정 로그 항목

다음 표에서는 패키지에 대한 사용자 지정 로그 항목을 나열합니다. 자세한 내용은 SSIS(Integration Services) 로깅을 참조하세요.

로그 항목 설명
PackageStart 패키지가 실행되기 시작했음을 나타냅니다.

참고: 이 로그 항목은 로그에 자동으로 기록됩니다. 제외할 수 없습니다.
PackageEnd 패키지가 완료되었음을 나타냅니다.

참고: 이 로그 항목은 로그에 자동으로 기록됩니다. 제외할 수 없습니다.
진단 동시에 실행할 수 있는 실행 파일 수와 같이 패키지 실행에 영향을 주는 시스템 구성에 대한 정보를 제공합니다.

패키지 속성 설정

SSDT(SQL Server Data Tools)의 속성 창에서 또는 프로그래밍 방식으로 속성을 설정할 수 있습니다.

SSDT(SQL Server Data Tools)를 사용하여 이러한 속성을 설정하는 방법에 대한 자세한 내용은 패키지 속성 설정을 참조하세요.

이러한 속성을 프로그래밍 방식으로 설정하는 방법에 대한 자세한 내용은 Package를 참조하세요.

기존 패키지를 템플릿으로 다시 사용

패키지는 기본 기능을 공유하는 패키지를 작성하는 템플릿으로 자주 사용됩니다. 기본 패키지를 빌드한 다음 복사하거나 패키지를 템플릿으로 지정할 수 있습니다. 예를 들어 파일을 다운로드하고 복사한 다음 데이터를 추출하는 패키지에는 폴더의 파일을 열거하는 Foreach 루프에 FTP 및 파일 시스템 작업이 포함될 수 있습니다. 또한 데이터에 액세스할 플랫 파일 연결 관리자 및 데이터를 추출할 플랫 파일 원본이 포함될 수 있습니다. 데이터의 대상은 다양하며 해당 대상은 기본 패키지에서 복사된 후 각각의 새 패키지에 추가됩니다. 패키지를 만든 다음 Integration Services 프로젝트에 추가하는 새 패키지에 대한 템플릿으로 사용할 수도 있습니다. 자세한 내용은 Create Packages in SQL Server Data Tools을 참조하세요.

프로그래밍 방식으로 또는 SSIS 디자이너를 사용하여 패키지를 처음 만들면 ID 속성에 GUID가 추가되고 Name 속성에 이름이 추가됩니다. 기존 패키지를 복사하거나 템플릿 패키지를 사용하여 새 패키지를 만드는 경우 이름 및 GUID도 복사됩니다. 로깅을 사용하는 경우 기록된 정보가 속한 패키지를 식별하기 위해 GUID와 패키지 이름이 로그에 기록되기 때문에 문제가 될 수 있습니다. 따라서 새 패키지의 이름과 GUID를 업데이트하여 복사된 패키지와 로그 데이터에서 서로 구분되도록 해야 합니다.

패키지 GUID를 변경하려면 SSDT(SQL Server Data Tools) 속성 창의 ID 속성에서 GUID를 다시 생성합니다. 패키지 이름을 변경하려면 속성 창에서 Name 속성 값을 업데이트해야 합니다. 또한 dtutil 명령 프롬프트를 사용하거나 GUID 및 이름을 프로그래밍 방식으로 업데이트할 수 있습니다. 자세한 내용은 패키지 속성 설정dtutil 유틸리티를 참조하세요.

Integration Services 에는 SSIS 개체 모델 외에도 두 개의 패키지 작성용 그래픽 도구인 SSIS 디자이너와 SQL Server 가져오기 및 내보내기 마법사가 포함되어 있습니다. 자세한 내용은 다음 항목을 참조하십시오.