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