사용자 지정 데이터 흐름 구성 요소 만들기
적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime
Microsoft SQL Server Integration Services에서 데이터 흐름 태스크는 개발자가 Microsoft .NET Framework 및 관리 코드를 사용하여 사용자 지정 데이터 흐름 구성 요소 원본, 변환 및 대상을 만들 수 있도록 하는 개체 모델을 노출합니다.
데이터 흐름 태스크는 IDTSComponentMetaData100 인터페이스를 포함하는 구성 요소와 구성 요소 간의 데이터 이동을 정의하는 IDTSPath100 개체의 컬렉션으로 구성됩니다.
참고 항목
사용자 지정 공급자를 만들 때 메타데이터 열 값으로 ProviderDescriptors.xml 파일을 업데이트해야 합니다.
디자인 시간 및 런타임
실행하기 전에 데이터 흐름 태스크는 증분 변경을 거치기 때문에 디자인 타임 상태라고 합니다. 변경 내용에는 구성 요소 추가 또는 제거, 구성 요소를 연결하는 경로 개체의 추가 또는 제거, 구성 요소의 메타데이터 변경 등이 포함될 수 있습니다. 메타데이터 변경이 발생하면 구성 요소는 변경 내용을 모니터링하고 대응할 수 있습니다. 예를 들어 구성 요소는 특정 변경 내용을 허용하지 않거나 변경에 대한 응답으로 추가 변경을 수행할 수 있습니다. 디자인 타임에 디자이너는 디자인 타임 IDTSDesigntimeComponent100 인터페이스를 통해 구성 요소와 상호 작용합니다.
실행 시 데이터 흐름 태스크는 구성 요소 시퀀스를 검사하고 실행 계획을 준비하며 작업 계획을 실행하는 작업자 스레드 풀을 관리합니다. 각 작업자 스레드는 데이터 흐름 태스크 내부인 일부 작업을 수행하지만 작업자 스레드의 주요 작업은 런타임 IDTSRuntimeComponent100 인터페이스를 통해 구성 요소의 메서드를 호출하는 것입니다.
구성 요소 만들기
데이터 흐름 구성 요소를 만들려면 기본 클래스에서 클래스를 PipelineComponent 파생하고 클래스를 DtsPipelineComponentAttribute 적용한 다음 기본 클래스의 적절한 메서드를 재정의합니다. 구성 PipelineComponent 요소에서 재정의 IDTSRuntimeComponent100 IDTSDesigntimeComponent100 할 수 있도록 해당 메서드와 인터페이스를 구현하고 노출합니다.
구성 요소에서 사용하는 개체에 따라 프로젝트에는 다음 어셈블리의 일부 또는 전부에 대한 참조가 필요합니다.
기능 | 참조할 어셈블리 | 가져올 네임스페이스 |
---|---|---|
데이터 흐름 | Microsoft.SqlServer.PipelineHost | Microsoft.SqlServer.Dts.Pipeline |
데이터 흐름 래퍼 | Microsoft.SqlServer.DTSPipelineWrap | Microsoft.SqlServer.Dts.Pipeline.Wrapper |
런타임 | Microsoft.SQLServer.ManagedDTS | Microsoft.SqlServer.Dts.Runtime |
런타임 래퍼 | Microsoft.SqlServer.DTSRuntimeWrap | Microsoft.SqlServer.Dts.Runtime.Wrapper |
다음 코드 예제에서는 기본 클래스에서 파생 하 고 적용 하는 간단한 구성 요소를 보여 줍니다 DtsPipelineComponentAttribute. Microsoft.SqlServer.DTSPipelineWrap 어셈블리에 대한 참조를 추가해야 합니다.
using System;
using Microsoft.SqlServer.Dts.Pipeline;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
namespace Microsoft.Samples.SqlServer.Dts
{
[DtsPipelineComponent(DisplayName = "SampleComponent", ComponentType = ComponentType.Transform )]
public class BasicComponent: PipelineComponent
{
// TODO: Override the base class methods.
}
}
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
<DtsPipelineComponent(DisplayName:="SampleComponent", ComponentType:=ComponentType.Transform)> _
Public Class BasicComponent
Inherits PipelineComponent
' TODO: Override the base class methods.
End Class