다음을 통해 공유


Integration Services용 사용자 지정 개체 개발

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

SQL Server Integration Services에 포함된 제어 흐름 및 데이터 흐름 개체가 요구 사항을 완전히 충족하지 않는 경우 다음을 비롯한 다양한 유형의 사용자 지정 개체를 직접 개발할 수 있습니다.

  • 사용자 지정 태스크.

  • 사용자 지정 연결 관리자. 현재 지원되지 않는 외부 데이터 원본에 연결합니다.

  • 사용자 지정 로그 공급자. 현재 지원되지 않는 형식으로 패키지 이벤트를 기록합니다.

  • 사용자 지정 열거자입니다. 현재 지원되지 않는 개체 또는 값 형식 집합에 대한 반복을 지원합니다.

  • 사용자 지정 데이터 흐름 구성 요소입니다. 원본, 변환 또는 대상으로 구성할 수 있습니다.

Integration Services 개체 모델은 사용자 지정 구현에 일관되고 신뢰할 수 있는 프레임워크를 제공하는 기본 클래스를 사용하여 이 사용자 지정 개발을 용이하게 합니다.

사용자 지정 기능을 여러 패키지에서 다시 사용할 필요가 없는 경우 스크립트 태스크 및 스크립트 구성 요소를 사용하면 매우 적은 양의 인프라 코드로도 관리되는 프로그래밍 언어의 강력한 기능을 사용할 수 있습니다. 자세한 내용은 스크립팅 솔루션 및 사용자 지정 개체 비교를 참조 하세요.

Integration Services용 사용자 지정 개체 개발 단계

Integration Services에서 사용할 사용자 지정 개체를 개발할 때 SSIS 디자이너 및 Integration Services 런타임에 의해 디자인 타임 및 런타임에 로드되는 DLL(클래스 라이브러리)을 개발합니다. 구현해야 하는 가장 중요한 메서드는 사용자 고유의 코드에서 호출하는 메서드가 아니라 런타임이 구성 요소를 초기화하고 유효성을 검사하고 해당 기능을 호출하기 위해 적절한 시간에 호출하는 메서드입니다.

사용자 지정 개체를 개발할 때 수행하는 단계는 다음과 같습니다.

  1. 원하는 관리형 프로그래밍 언어로 클래스 라이브러리 형식의 새 프로젝트를 만듭니다.

  2. 다음 표와 같이 적절한 기본 클래스에서 상속합니다.

  3. 다음 표와 같이 새 클래스에 적절한 특성을 적용합니다.

  4. 필요에 따라 기본 클래스의 메서드를 재정의하고 개체의 사용자 지정 기능에 대한 코드를 작성합니다.

  5. 필요에 따라 구성 요소에 대한 사용자 지정 사용자 인터페이스를 빌드합니다. 배포의 용이성을 위해 동일한 솔루션 내에서 별도의 프로젝트로 사용자 인터페이스를 개발하고 별도의 어셈블리로 빌드할 수 있습니다.

  6. 필요에 따라 SSIS 도구 상자에 사용자 지정 개체에 대한 샘플 및 도움말 콘텐츠에 대한 링크를 표시합니다.

  7. 사용자 지정 개체 빌드, 배포 및 디버그의 설명에 따라 새 사용자 지정 개체를 빌드, 배포 및 디버그합니다.

기본 클래스, 특성 및 중요 메서드

이 표에서는 개발할 수 있는 각 사용자 지정 개체 유형에 대해 Integration Services 개체 모델에서 가장 중요한 요소를 쉽게 참조할 수 있습니다.

Custom object 기본 클래스 특성 중요한 메서드
작업 Task DtsTaskAttribute Execute
연결 관리자 ConnectionManagerBase DtsConnectionAttribute AcquireConnection, ReleaseConnection
로그 공급자 LogProviderBase DtsLogProviderAttribute OpenLog, , LogCloseLog
열거자 ForEachEnumerator DtsForEachEnumeratorAttribute GetEnumerator
데이터 흐름 구성 요소 PipelineComponent DtsPipelineComponentAttribute ProvideComponentProperties, , PrimeOutputProcessInput

SSIS 도구 상자에 관리 코드로 작성된 사용자 지정 개체의 샘플 및 도움말 콘텐츠에 대한 링크를 표시하려면 다음 속성을 사용합니다.

네이티브 코드로 작성된 사용자 지정 개체에 대한 샘플 및 도움말 콘텐츠에 대한 링크를 표시하려면 SamplesTag, HelpKeyword 및 HelpCollection에 대한 레지스트리 스크립트(.rgs) 파일에 항목을 추가합니다. 다음은 예시입니다.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

사용자 지정 사용자 인터페이스 제공

사용자 지정 개체의 사용자가 해당 속성을 구성할 수 있도록 하려면 사용자 지정 사용자 인터페이스도 개발해야 할 수 있습니다. 사용자 지정 사용자 인터페이스가 엄격하게 필요하지 않은 경우 기본 편집기보다 사용자에게 친숙한 인터페이스를 제공하도록 선택할 수 있습니다.

사용자 지정 사용자 인터페이스 프로젝트 또는 어셈블리에는 일반적으로 사용자 지정 개체의 특정 형식에 대한 사용자 인터페이스에 대한 Integration Services 인터페이스를 구현하는 클래스와 사용자로부터 정보를 수집하기 위해 표시되는 Windows 양식이라는 두 개의 클래스가 있습니다. 구현하는 인터페이스에는 단 몇 개의 메서드만 포함되므로 사용자 지정 사용자 인터페이스는 어렵지 않게 개발할 수 있습니다.

참고 항목

많은 Integration Services 로그 공급자에는 구성 텍스트 상자를 구현 IDtsLogProviderUI 하고 사용 가능한 연결 관리자의 필터링된 드롭다운 목록으로 바꾸는 사용자 지정 사용자 인터페이스가 있습니다. 그러나 사용자 지정 로그 공급자에 대한 사용자 지정 사용자 인터페이스는 이 Integration Services 릴리스에서 구현되지 않습니다. 속성 DtsLogProviderAttributeUITypeName 값을 지정해도 아무 효과가 없습니다.

다음 표에서는 각 사용자 지정 개체 유형의 사용자 지정 사용자 인터페이스를 개발할 때 구현해야 하는 인터페이스에 대한 참조를 제공합니다. 또한 개체의 사용자 지정 사용자 인터페이스를 개발하지 않을 경우나 개체의 특성에서 UITypeName 속성을 사용하여 사용자 인터페이스에 개체를 연결하지 못할 경우 사용자에게 표시되는 내용에 대해 설명합니다. 강력한 고급 편집기 데이터 흐름 구성 요소에 만족할 수 있지만 속성 창 작업 및 연결 관리자에 대해 덜 사용자에게 친숙한 솔루션이며 사용자 지정 양식이 없으면 사용자 지정 ForEach 열거자를 전혀 구성할 수 없습니다.

Custom object 사용자 인터페이스에 대한 기본 클래스 사용자 지정 사용자 인터페이스가 제공되지 않을 경우의 기본 편집 동작
작업 IDtsTaskUI 속성 창 전용
연결 관리자 IDtsConnectionManagerUI 속성 창 전용
로그 공급자 IDtsLogProviderUI

(Integration Services에서 구현되지 않음)
구성 열의 텍스트 상자
열거자 ForEachEnumeratorUI 속성 창. 편집기의 열거자 구성 영역은 비어 있음
데이터 흐름 구성 요소 IDtsComponentUI 고급 편집기

외부 리소스

참고 항목

사용자 지정 개체 지속
사용자 지정 개체 빌드, 배포 및 디버그