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

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

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

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

Перед выполнением задача потока данных считается находящейся в состоянии времени разработки, поскольку она подвергается добавочным изменениям. К таким изменениям относятся добавление или удаление компонентов, добавление или удаление объектов пути, которые соединяют компоненты, и изменения в метаданных компонентов. Если происходят изменения метаданных, компонент может наблюдать за ними и выполнять ответные действия. Например, компонент может не допускать внесения определенных изменений или вносить дополнительные изменения в ответ на изменение. Во время разработки конструктор взаимодействует с компонентом через интерфейс 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.

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
Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.