Создание пользовательского компонента потока данных
В службах MicrosoftSQL ServerIntegration Services задача потока данных предоставляет доступ к модели объектов, позволяющей разработчикам создавать пользовательские компоненты потока данных (источники, преобразования и назначения) с помощью платформы Microsoft.NET Framework и управляемого кода.
Задача потока данных состоит из компонентов, содержащих интерфейс IDTSComponentMetaData100 и коллекцию объектов IDTSPath100, которыми определяется движение данных между компонентами.
Время разработки и время выполнения
Перед выполнением задача потока данных считается находящейся в состоянии времени разработки, поскольку она подвергается добавочным изменениям. К таким изменениям относятся добавление или удаление компонентов, добавление или удаление объектов пути, которые соединяют компоненты, и изменения в метаданных компонентов. Если происходят изменения метаданных, компонент может наблюдать за ними и выполнять ответные действия. Например, компонент может не допускать внесения определенных изменений или вносить дополнительные изменения в ответ на изменение. Во время разработки конструктор взаимодействует с компонентом через интерфейс IDTSDesigntimeComponent100 времени разработки.
Во время выполнения задача потока данных исследует последовательность компонентов, подготавливает план выполнения и управляет пулом рабочих потоков, выполняющих план работы. Хотя каждый рабочий поток выполняет некоторую работу, являющуюся внутренней для задачи потока данных, основной задачей рабочего потока является вызов методов компонента через интерфейс IDTSRuntimeComponent100 времени выполнения.
Создание компонента
Чтобы создать компонент потока данных, необходимо создать производный класс от базового класса PipelineComponent, применить класс DtsPipelineComponentAttribute, а затем переопределить соответствующие методы базового класса. Класс PipelineComponent реализует интерфейсы IDTSDesigntimeComponent100 и IDTSRuntimeComponent100 и предоставляет доступ к их методам для переопределения в пользовательском компоненте.
В зависимости от объектов, используемых компонентом, для проекта могут потребоваться ссылки на некоторые (или все) из следующих сборок.
Функция |
Сборка для ссылки |
Пространство имен для импорта |
---|---|---|
Поток данных |
Microsoft.SqlServer.PipelineHost |
|
Оболочка потока данных |
Microsoft.SqlServer.DTSPipelineWrap |
|
Параметры выполнения |
Microsoft.SQLServer.ManagedDTS |
|
Оболочка среды выполнения |
Microsoft.SqlServer.DTSRuntimeWrap |
В следующем примере кода показан простой компонент, производный от базового класса, применяющий класс DtsPipelineComponentAttribute.
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
|