Добавление задачи потока данных программным образом
Среда Business Intelligence Development Studio включает задачу с именем «Поток данных», представленную пространством имен Microsoft.SqlServer.Dts.Pipeline.Wrapper в модели объектов. Задача потока данных — это специализированная высокопроизводительная задача, предназначенная для преобразования и перемещения данных во время выполнения пакета. Как и другие задачи, задача потока данных упакована в объект TaskHost, и с точки зрения подсистемы выполнения эта задача является просто одной из задач в пакете. Однако поток данных содержит дополнительные объекты, называемые компонентами потока данных. Эти компоненты выполняют перемещение данных из источника в место назначения, иногда посредством преобразования. Эти компоненты определяют направление перемещения и способ преобразования данных. Настройка задачи потока данных включает добавление компонентов в задачу, а затем их соединение для установления потока данных и выполнения требуемого преобразования.
Задача потока данных включает три типа компонентов: Источники потока данных, Преобразования потока данных и Назначения потока данных, показанные в этом порядке в области элементов конструктора служб SSIS. Эти типы также называются просто источниками, преобразованиями и назначениями. Как видно из имен, поток данных направляется из источника в компонент преобразования, а затем назначению. Это простое описание потока данных, иллюстрирующее понятие, но задача потока данных является достаточно гибкой и мощной для обработки нескольких источников и объединения нескольких преобразований, отправляющих выходные данные нескольким назначениям.
Задача потока данных добавляется в пакет так же, как и другие задачи. После добавления задачи она настраивается путем добавления компонентов в задачу потока данных, настройки и соединения компонентов в задаче.
Образец
В следующем образце кода показан способ добавления задачи потока данных в пакет. Этот пример требует наличия ссылок на сборки Microsoft.SqlServer.PipelineHost, Microsoft.SqlServer.DTSPipelineWrap и Microsoft.SqlServer.ManagedDTS.
using System;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Pipeline;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
namespace Microsoft.SqlServer.Dts.Samples
{
class Program
{
static void Main(string[] args)
{
Package p = new Package();
Executable e = p.Executables.Add("STOCK:PipelineTask");
TaskHost thMainPipe = e as TaskHost;
MainPipe dataFlowTask = thMainPipe.InnerObject as MainPipe;
}
}
}
Imports System.IO
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Module Module1
Sub Main()
Dim p As Package = New Package()
Dim e As Executable = p.Executables.Add("STOCK:PipelineTask")
Dim thMainPipe As TaskHost = CType(e, TaskHost)
Dim dataFlowTask As MainPipe = CType(thMainPipe.InnerObject, MainPipe)
End Sub
End Module
|