Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
Em Microsoft SQL Server Integration Services, a tarefa de fluxo de dados expõe um modelo de objetos que permite aos programadores criar componentes personalizados do fluxo de dados — fontes, transformações e destinos — utilizando o Microsoft .NET Framework e código gerido.
Uma tarefa de fluxo de dados consiste em componentes que contêm uma IDTSComponentMetaData100 interface e uma coleção de IDTSPath100 objetos que definem o movimento dos dados entre componentes.
Note
Quando crias um fornecedor personalizado, precisas de atualizar o ficheiro ProviderDescriptors.xml com os valores das colunas de metadados.
Tempo de Conceção e Tempo de Execução
Antes da execução, diz-se que a tarefa de fluxo de dados está num estado de design, pois 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 de caminho que ligam os componentes e alterações aos metadados desses componentes. Quando ocorrem alterações nos metadados, o componente pode monitorizar e reagir às alterações. Por exemplo, um componente pode impedir certas alterações ou fazer alterações adicionais em resposta a uma alteração. No momento do design, o designer interage com um componente através da interface design-time IDTSDesigntimeComponent100 .
No momento da execução, a tarefa de fluxo de dados examina a sequência de componentes, prepara um plano de execução e gere um conjunto de threads de trabalho que executam o plano de trabalho. Embora cada thread de trabalho realize algum trabalho interno à tarefa de fluxo de dados, a tarefa principal da thread de trabalho é chamar os métodos do componente através da interface de tempo IDTSRuntimeComponent100 de execução.
Criação de um Componente
Para criar um componente de fluxo de dados, deriva-se uma classe a partir da PipelineComponent classe base, aplica-se a DtsPipelineComponentAttribute classe e depois sobrepõe-se aos métodos apropriados da classe base. Implementa PipelineComponent as IDTSDesigntimeComponent100 interfaces e IDTSRuntimeComponent100 expõe os seus métodos para que possas sobrepor no teu componente.
Dependendo dos objetos usados pelo seu componente, o seu projeto exigirá referências a algumas ou todas as seguintes assembleias:
| Feature | Montagem para referência | Espaço de nomes a importar |
|---|---|---|
| Fluxo de dados | Microsoft. SqlServer.PipelineHost | Microsoft.SqlServer.Dts.Pipeline |
| Envoltório de fluxo de dados | Microsoft. SqlServer.DTSPipelineWrap | Microsoft.SqlServer.Dts.Pipeline.Wrapper |
| Tempo de execução | Microsoft. SQLServer.ManagedDTS | Microsoft.SqlServer.Dts.Runtime |
| Envoltório 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. Precisas de adicionar uma referência à Microsoft. Assembly 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