Compartilhar via


Criando um componente de fluxo de dados personalizado

No Microsoft SQL Server Integration 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.

ObservaçãoObservação

Quando você cria um provedor personalizado, precisa atualizar o arquivo ProviderDescriptors.xml com os valores de coluna de metadados.

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 sequê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 a seguir mostra um componente simples que deriva da classe base e aplica o DtsPipelineComponentAttribute. Você precisa adicionar uma referência ao assembly 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
Ícone do Integration Services (pequeno) Mantenha-se atualizado com o Integration Services

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


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

Consulte também

Conceitos

Desenvolvendo uma interface do usuário para um componente de fluxo de dados