Adicionando a tarefa de fluxo de dados programaticamente

Aplica-se a: SQL Server SSIS Integration Runtime em Azure Data Factory

O SQL Server Data Tools (SSDT) inclui uma tarefa chamada tarefa Fluxo de Dados, que é representada pelo Microsoft.SqlServer.Dts.Pipeline.Wrapper namespace no modelo de objetos. A tarefa Fluxo de Dados é uma tarefa especializada e de alto desempenho, dedicada a transformar e mover dados durante a execução de pacotes. Tal como outras tarefas, a tarefa Fluxo de Dados é envolvida pelo TaskHost objeto e, do ponto de vista do motor de execução, esta tarefa é apenas mais uma tarefa no pacote. No entanto, o fluxo de dados contém objetos adicionais chamados componentes de fluxo de dados. Estes componentes são os que fazem com que os dados passem de uma fonte para um destino, por vezes através de uma transformação. Os componentes definem tanto a direção do movimento como a forma como os dados são transformados. Configurar a tarefa Fluxo de Dados envolve adicionar componentes à tarefa e depois ligá-los para estabelecer o fluxo de dados e alcançar a transformação pretendida.

Existem três tipos de componentes dentro de uma tarefa Fluxo de Dados: Fluxo de Dados Sources, Data Flow Transformations e Fluxo de Dados Destinations, apresentados por esta ordem na caixa de ferramentas SSIS Designer. Estes tipos são também referidos de forma mais simples como fontes, transformações ou destinos. Como sugerem os nomes, os dados fluem de uma fonte para uma transformação, e depois para um destino. Esta é uma descrição simplista do data flow para ilustrar o conceito, mas a tarefa Fluxo de Dados é suficientemente flexível e poderosa para lidar com múltiplas fontes e para ligar várias transformações que enviam saída para múltiplos destinos.

A tarefa Fluxo de Dados é adicionada a um pacote da mesma forma que outras tarefas são adicionadas. Depois de a tarefa ser adicionada, esta é configurada adicionando componentes à tarefa de fluxo de dados e configurando e ligando componentes na tarefa.

Exemplo

O exemplo de código seguinte mostra como adicionar uma tarefa Fluxo de Dados a um pacote. Este exemplo requer uma referência aos assemblies da Microsoft. SqlServer.PipelineHost, Microsoft. SqlServer.DTSPipelineWrap e 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