Поделиться через


Создание пользовательского компонента потока данных

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

В Microsoft SQL Server Integration Services задача потока данных предоставляет объектную модель, которая позволяет разработчикам создавать пользовательские компоненты потока данных, преобразования и назначения с помощью Microsoft платформа .NET Framework и управляемого кода.

Задача потока данных состоит из компонентов, содержащих интерфейс IDTSComponentMetaData100 и коллекцию объектов IDTSPath100, которыми определяется движение данных между компонентами.

Примечание.

При создании настраиваемого поставщика в файл ProviderDescriptors.xml необходимо внести значения столбца метаданных.

Время разработки и время выполнения

Перед выполнением задача потока данных считается находящейся в состоянии времени разработки, поскольку она подвергается добавочным изменениям. К таким изменениям относятся добавление или удаление компонентов, добавление или удаление объектов пути, которые соединяют компоненты, и изменения в метаданных компонентов. При изменении метаданных компонент может отслеживать их и выполнять ответные действия. Например, компонент может не допускать внесения определенных изменений или вносить дополнительные изменения в ответ на изменение. Во время разработки конструктор взаимодействует с компонентом через интерфейс IDTSDesigntimeComponent100 времени разработки.

Во время выполнения задача потока данных исследует последовательность компонентов, подготавливает план выполнения и управляет пулом рабочих потоков, выполняющих план работы. Хотя каждый рабочий поток выполняет некоторую работу, являющуюся внутренней для задачи потока данных, основной задачей рабочего потока является вызов методов компонента через интерфейс IDTSRuntimeComponent100 времени выполнения.

Создание компонента

Чтобы создать компонент потока данных, необходимо создать производный класс от базового класса PipelineComponent, применить класс DtsPipelineComponentAttribute, а затем переопределить соответствующие методы базового класса. Класс PipelineComponent реализует интерфейсы IDTSDesigntimeComponent100 и IDTSRuntimeComponent100, а также предоставляет доступ к их методам для переопределения в пользовательском компоненте.

В зависимости от объектов, используемых компонентом, для проекта могут потребоваться ссылки на некоторые (или все) из следующих сборок.

Функция Сборка для ссылки Пространство имен для импорта
Поток данных 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  

См. также

Разработка пользовательского интерфейса для компонента потока данных