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


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

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

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


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

См. также

Основные понятия

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