Crear un componente de flujo de datos personalizado
Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory
En Microsoft SQL Server Integration Services, la tarea Flujo de datos expone un modelo de objetos que permite a los desarrolladores crear 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 en 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 IDTSDesigntimeComponent100 y IDTSRuntimeComponent100 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. Deberá 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
Consulte también
Desarrollar una interfaz de usuario para un componente de flujo de datos