Share via


Criando um componente de fluxo de dados personalizado

Em MicrosoftSQL ServerIntegration Services, a tarefa de fluxo de dados expõe um modelo de objeto que permite que os desenvolvedores criem componentes de fluxo de dados personalizados – fontes, transformações e destinos – usando o Microsoft.NET Framework e o código gerenciado.

Uma tarefa de fluxo de dados consiste em componentes que contêm uma interface IDTSComponentMetaData100 e uma coleção de objetos IDTSPath100 que definem o movimento dos dados entre os componentes.

Tempo de design e tempo de execução

Antes da execução, diz-se que a tarefa de fluxo de dados está em um estado de tempo de design, quando sofre alterações incrementais. As alterações podem incluir a adição ou remoção de componentes, a adição ou remoção dos objetos do caminho que conectam componentes e as alterações nos metadados dos componentes. Quando ocorrem alterações em metadados, o componente pode monitorar e reagir às alterações. Por exemplo, um componente pode desabilitar certas alterações ou fazer alterações adicionais em resposta a uma alteração. Em tempo de design, o designer interage com um componente através da interface IDTSDesigntimeComponent100 em tempo de design.

No tempo de execução, a tarefa de fluxo de dados examina a seqüência de componentes, prepara um plano de execução e gerencia um pool de threads de trabalho que executa o plano de trabalho. Embora cada thread de trabalho desempenhe algum trabalho interno à tarefa de fluxo de dados, a principal tarefa do thread de trabalho é chamar os métodos do componente através da interface IDTSRuntimeComponent100 em tempo de execução.

Criando um componente

Para criar um componente de fluxo de dados, você deve derivar uma classe da classe base PipelineComponent, aplicar a classe DtsPipelineComponentAttribute e substituir os métodos apropriados da classe base. O PipelineComponent implementa as interfaces IDTSDesigntimeComponent100 e IDTSRuntimeComponent100 e expõe os métodos para você substituir em seu componente.

Dependendo dos objetos usados pelo seu componente, seu projeto precisará de referências a alguns ou todos os assemblies seguintes:

Recurso

Assembly para referência

Namespace para importar

Fluxo de dados

Microsoft.SqlServer.PipelineHost

Microsoft.SqlServer.Dts.Pipeline

Wrapper de fluxo de dados

Microsoft.SqlServer.DTSPipelineWrap

Microsoft.SqlServer.Dts.Pipeline.Wrapper

Tempo de execução

Microsoft.SQLServer.ManagedDTS

Microsoft.SqlServer.Dts.Runtime

Wrapper de tempo de execução

Microsoft.SqlServer.DTSRuntimeWrap

Microsoft.SqlServer.Dts.Runtime.Wrapper

O exemplo de código seguinte mostra um componente simples que deriva da classe base e aplica o 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
Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.