Integration Services용 사용자 지정 개체 개발Developing Custom Objects for Integration Services

제어 흐름 및 데이터 흐름 개체에 포함 되어 있는 경우 SQL ServerSQL Server Integration ServicesIntegration Services 요구 사항을 완전히 충족 되지 않으면, 직접 포함 시키는 다양 한 유형의 사용자 지정 개체를 개발할 수 있습니다.When the control flow and data flow objects that are included with SQL ServerSQL Server Integration ServicesIntegration Services do not completely meet your requirements, you can develop many types of custom objects on your own including:

  • 사용자 지정 작업합니다.Custom tasks.

  • 사용자 지정 연결 관리자입니다.Custom connection managers. 현재 지원 되지 않는 외부 데이터 원본에 연결 합니다.Connect to external data sources that are not currently supported.

  • 사용자 지정 로그 공급자입니다.Custom log providers. 현재 지원 되지 않는 형식으로 패키지 이벤트를 기록 합니다.Log package events in formats that are not currently supported.

  • 사용자 지정 열거자입니다.Custom enumerators. 현재 지원 되지 않는 개체 또는 값 형식 집합에 대 한 반복을 지원 합니다.Support iteration over a set of objects or values formats that are not currently supported.

  • 사용자 지정 데이터 흐름 구성 요소입니다.Custom data flow components. 원본, 변환 또는 대상으로 구성할 수 있습니다.Can be configured as sources, transformations, or destinations.

    Integration ServicesIntegration Services 개체 모델을 사용하면 사용자 지정 구현을 위한 일관되고 안정적인 프레임워크를 제공하는 기본 클래스를 통해 이러한 사용자 지정 개발을 쉽게 할 수 있습니다.The Integration ServicesIntegration Services object model facilitates this custom development with base classes that provide a consistent and reliable framework for your custom implementation.

    사용자 지정 기능을 여러 패키지에서 다시 사용할 필요가 없는 경우 스크립트 태스크 및 스크립트 구성 요소를 사용하면 매우 적은 양의 인프라 코드로도 관리되는 프로그래밍 언어의 강력한 기능을 사용할 수 있습니다.If you do not have to reuse custom functionality across multiple packages, the Script task and the Script component give you the full power of a managed programming language with significantly less infrastructure code to write. 자세한 내용은 참조 스크립팅 솔루션 비교 및 사용자 지정 개체합니다.For more information, see Comparing Scripting Solutions and Custom Objects.

Integration Services용 사용자 지정 개체 개발 단계Steps in Developing a Custom Object for Integration Services

Integration ServicesIntegration Services에서 사용할 사용자 지정 개체를 개발하는 경우 디자인 타임과 런타임에 SSIS 디자이너에서 로드하고 Integration ServicesIntegration Services 런타임에서 로드할 클래스 라이브러리(DLL)를 개발합니다.When you develop a custom object for use in Integration ServicesIntegration Services, you develop a Class Library (a DLL) that will be loaded at design time and run time by SSIS Designer and by the Integration ServicesIntegration Services runtime. 구현해야 하는 가장 중요한 메서드는 개발자가 작성하는 코드에서 호출하는 메서드가 아니라 런타임에서 적절한 때에 구성 요소를 초기화하고 구성 요소의 유효성을 검사하고 해당 기능을 실행하기 위해 호출하는 메서드입니다.The most important methods that you must implement are not methods that you call from your own code, but methods that the runtime calls at appropriate times to initialize and validate your component and to invoke its functionality.

사용자 지정 개체를 개발할 때 따라야 하는 단계는 다음과 같습니다.Here are the steps that you follow in developing a custom object:

  1. 관리되는 프로그래밍 언어로 형식 클래스 라이브러리의 새 프로젝트를 만듭니다.Create a new project of type Class Library in your preferred managed programming language.

  2. 다음 표와 같이 적절한 기본 클래스에서 상속합니다.Inherit from the appropriate base class, as shown in the following table.

  3. 다음 표와 같이 새 클래스에 적절한 특성을 적용합니다.Apply the appropriate attribute to your new class, as shown in the following table.

  4. 기본 클래스의 메서드를 필요한 대로 재정의하고 개체의 사용자 지정 기능에 대한 코드를 작성합니다.Override the methods of the base class as required and write code for the custom functionality of your object.

  5. 필요에 따라 구성 요소의 사용자 지정 사용자 인터페이스를 빌드합니다.Optionally, build a custom user interface for your component. 쉽게 배포할 수 있도록 사용자 인터페이스를 동일한 솔루션 내에 별도의 프로젝트로 개발하고 이를 별도의 어셈블리로 빌드할 수 있습니다.For ease of deployment, you may want to develop the user interface as a separate project within the same solution, and to build it as a separate assembly.

  6. 필요에 따라 샘플 및 도움말 콘텐츠에 사용자 지정 개체에 대 한 링크를 표시는 SSIS 도구 상자합니다.Optionally, display a link to samples and Help content for the custom object, in the SSIS Toolbox.

  7. 빌드, 배포 및에 설명 된 대로 새 사용자 지정 개체를 디버깅할 건물, Deploying, and 사용자 지정 개체 디버깅합니다.Build, deploy, and debug your new custom object as described in Building, Deploying, and Debugging Custom Objects.

기본 클래스, 특성 및 주요 메서드Base Classes, Attributes, and Important Methods

다음 표에서는 Integration ServicesIntegration Services 개체 모델에서 개발 가능한 각 사용자 지정 개체 유형의 가장 중요한 요소에 대한 참조를 제공합니다.This table provides an easy reference to the most important elements in the Integration ServicesIntegration Services object model for each type of custom object that you can develop.

사용자 지정 개체Custom object 기본 클래스Base class AttributeAttribute 주요 메서드Important methods
태스크Task Task DtsTaskAttribute Execute
ODBC 대상 편집기Connection manager ConnectionManagerBase DtsConnectionAttribute AcquireConnection, ReleaseConnectionAcquireConnection, ReleaseConnection
로그 공급자Log provider LogProviderBase DtsLogProviderAttribute OpenLog, Log, CloseLogOpenLog, Log, CloseLog
EnumeratorEnumerator ForEachEnumerator DtsForEachEnumeratorAttribute GetEnumerator
데이터 흐름 구성 요소Data flow component PipelineComponent DtsPipelineComponentAttribute ProvideComponentProperties, PrimeOutput, ProcessInputProvideComponentProperties, PrimeOutput, ProcessInput

에 링크를 표시 하는 SSIS 도구 상자 샘플 및 도움말 콘텐츠 관리 코드로 작성 된 사용자 지정 개체에 대 한 다음 속성을 사용 합니다.To display a link in the SSIS Toolbox to samples and Help content for a custom object written in managed code, use the following properties.

사용자 지정 사용자 인터페이스 제공Providing a Custom User Interface

사용자 지정 개체의 사용자가 해당 개체의 속성을 구성할 수 있도록 하려면 사용자 지정 사용자 인터페이스도 개발해야 합니다.To allow users of your custom object to configure its properties, you may have to develop a custom user interface also. 사용자 지정 사용자 인터페이스가 반드시 필요하지는 않은 경우라도 기본 편집기보다 더 사용자에게 친숙한 인터페이스를 제공하기 위해 사용자 지정 사용자 인터페이스를 만들 수 있습니다.In those cases where a custom user interface is not strictly required, you may choose to create one to provide a more user-friendly interface than the default editor.

사용자 지정 사용자 인터페이스 프로젝트 또는 어셈블리에는 일반적으로 두 개의 클래스가 포함됩니다. 하나는 특정 사용자 지정 개체 유형의 사용자 인터페이스에 대한 Integration ServicesIntegration Services 인터페이스를 구현하는 클래스이고 다른 하나는 이 클래스에서 사용자로부터 정보를 수집하기 위해 표시하는 Windows Form입니다.In a custom user interface project or assembly, you generally have two classes —a class that implements an Integration ServicesIntegration Services interface for user interfaces for the specific type of custom object, and the Windows form that it displays to gather information from the user. 구현하는 인터페이스에는 단 몇 개의 메서드만 포함되므로 사용자 지정 사용자 인터페이스는 어렵지 않게 개발할 수 있습니다.The interfaces that you implement have only a few methods, and a custom user interface is not difficult to develop.

참고

많은 Integration ServicesIntegration Services 로그 공급자가 구현 하는 사용자 지정 사용자 인터페이스 IDtsLogProviderUI 하 고 대체 된 구성 사용 가능한 연결 관리자의 필터링 된 드롭다운 목록 사용 하 여 텍스트 상자.Many Integration ServicesIntegration Services log providers have a custom user interface that implements IDtsLogProviderUI and replaces the Configuration text box with a filtered drop-down list of available connection managers. 그러나 사용자 지정 로그 공급자의 사용자 지정 사용자 인터페이스는 이 릴리스의 Integration ServicesIntegration Services에 구현되어 있지 않습니다.However custom user interfaces for custom log providers are not implemented in this release of Integration ServicesIntegration Services. 따라서 UITypeNameDtsLogProviderAttribute 속성 값을 지정해도 아무 영향이 없습니다.Specifying a value for the UITypeName property of the DtsLogProviderAttribute has no effect.

다음 표에서는 각 사용자 지정 개체 유형의 사용자 지정 사용자 인터페이스를 개발할 때 구현해야 하는 인터페이스에 대한 참조를 제공합니다.The following table provides an easy reference to the interfaces that you must implement when you develop a custom user interface for each type of custom object. 에 대해서도 설명 표시 개체에 대 한 사용자 지정 사용자 인터페이스를 개발 하지 않으려는 경우 또는 사용자 개체를 사용 하 여 해당 사용자 인터페이스를 연결 하려면 실패 한 경우는 UITypeName 개체의 특성에는 속성입니다.It also explains what the user sees if you choose not to develop a custom user interface for your object, or if you fail to link your object to its user interface by using the UITypeName property in the object's attribute. 데이터 흐름 구성 요소의 경우 강력한 고급 편집기로 충분할 수도 있지만 태스크 및 연결 관리자의 경우 속성 창은 사용자에게는 덜 친숙한 솔루션이며 사용자 지정 ForEach 열거자의 경우는 사용자 지정 폼을 사용하지 않고는 전혀 구성할 수 없습니다.Although the powerful Advanced Editor may be satisfactory for a data flow component, the Properties window is a less user-friendly solution for tasks and connection managers, and a custom ForEach enumerator cannot be configured at all without a custom form.

사용자 지정 개체Custom object 사용자 인터페이스의 기본 클래스Base class for user interface 사용자 지정 사용자 인터페이스가 제공되지 않을 경우의 기본 편집 동작Default editing behavior if no custom user interface is provided
태스크Task IDtsTaskUI 속성 창만 표시Properties window only
ODBC 대상 편집기Connection manager IDtsConnectionManagerUI 속성 창만 표시Properties window only
로그 공급자Log provider IDtsLogProviderUI

Integration ServicesIntegration Services에서는 구현되지 않음(Not implemented in Integration ServicesIntegration Services)
텍스트 상자에 구성Text box in Configuration column
EnumeratorEnumerator ForEachEnumeratorUI 속성 창만 표시.Properties window only. 편집기의 열거자 구성 영역은 비어 있음Enumerator Configuration area of editor is empty.
데이터 흐름 구성 요소Data flow component IDtsComponentUI 고급 편집기Advanced Editor

외부 리소스External Resources

관련 항목:See Also

사용자 지정 개체 지속 Persisting Custom Objects
사용자 지정 개체 빌드, 배포 및 디버그Building, Deploying, and Debugging Custom Objects