Compartir a través de


Crear un componente de flujo de datos personalizado

En Microsoft SQL Server Integration Services, la tarea de flujo de datos expone un modelo de objetos que permite que los desarrolladores creen componentes de flujo de datos personalizados, orígenes, transformaciones y destinos, mediante Microsoft .NET Framework y código administrado.

Una tarea de flujo de datos consta de componentes que contienen una interfaz IDTSComponentMetaData100 y una colección de objetos IDTSPath100 que definen el movimiento de datos entre los componentes.

[!NOTA]

Cuando crea un proveedor personalizado, necesita actualizar el archivo ProviderDescriptors.xml con los valores de la columna de metadatos.

Tiempo de diseño y tiempo de ejecución

Antes de la ejecución, se dice que la tarea Flujo de datos se encuentra en un estado en tiempo de diseño, cuando sufre cambios incrementales. Los cambios pueden incluir la adición o eliminación de los componentes, la adición o eliminación de los objetos de ruta de acceso que conectan los componentes y cambios en los metadatos de los componentes. Cuando se producen cambios en los metadatos, el componente puede supervisar y reaccionar a los cambios. Por ejemplo, un componente puede no permitir ciertos cambios o realizar cambios adicionales en respuesta a un cambio. En tiempo de diseño, el diseñador interactúa con un componente a través de la interfaz IDTSDesigntimeComponent100 de tiempo de diseño.

En tiempo de ejecución, la tarea de flujo de datos examina la secuencia de componentes, prepara un plan de ejecución y administra un grupo de subprocesos de trabajo que ejecutan el plan de trabajo. Aunque cada subproceso de trabajo realiza algún trabajo que es interno a la tarea de flujo de datos, la tarea principal del subproceso de trabajo es llamar a los métodos del componente a través de la interfaz IDTSRuntimeComponent100 de tiempo de ejecución.

Crear un componente

Para crear un componente de flujo de datos, puede derivar una clase de la clase base PipelineComponent, aplicar la clase DtsPipelineComponentAttribute y, a continuación, invalidar los métodos adecuados de la clase base. PipelineComponent implementa las interfaces IDTSRuntimeComponent100 y IDTSDesigntimeComponent100 y expone sus métodos para que los invalide en el componente.

En función de los objetos que utiliza el componente, el proyecto requerirá las referencias a algunos o a todos los ensamblados siguientes:

Característica

Ensamblado para referencia

Espacio de nombres a importar

Flujo de datos

Microsoft.SqlServer.PipelineHost

Microsoft.SqlServer.Dts.Pipeline

Contenedor de flujo de datos

Microsoft.SqlServer.DTSPipelineWrap

Microsoft.SqlServer.Dts.Pipeline.Wrapper

Tiempo de ejecución

Microsoft.SQLServer.ManagedDTS

Microsoft.SqlServer.Dts.Runtime

Contenedor en tiempo de ejecución

Microsoft.SqlServer.DTSRuntimeWrap

Microsoft.SqlServer.Dts.Runtime.Wrapper

En el ejemplo de código siguiente se muestra un componente simple que deriva de la clase base y aplica DtsPipelineComponentAttribute. Necesita agregar una referencia al ensamblado 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
Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las descargas, artículos, ejemplos y vídeos más recientes de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN:


Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.

Vea también

Conceptos

Desarrollar una interfaz de usuario para un componente de flujo de datos