Création d'un composant de flux de données personnalisé

S’applique à :SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans Microsoft SQL Server Integration Services, la tâche de flux de données expose un modèle objet qui permet aux développeurs de créer des composants de flux de données personnalisés (sources, transformations et destinations) à l’aide de Microsoft .NET Framework et de code managé.

Une tâche de flux de données comprend des composants qui contiennent une interface IDTSComponentMetaData100 et une collection d'objets IDTSPath100 qui définissent le déplacement de données entre les composants.

Notes

Lorsque vous créez un fournisseur personnalisé, vous devez mettre à jour le dossier ProviderDescriptors.xml avec les valeurs de la colonne de métadonnées.

Moment de la conception et moment de l'exécution

Avant l'exécution, la tâche de flux de données est dite au moment de la conception, puisqu'elle subit des modifications incrémentielles. Les modifications peuvent inclure l'ajout ou la suppression de composants, l'ajout ou la suppression d'objets de chemin d'accès qui connectent des composants, ainsi que des modifications apportées aux métadonnées des composants. Lorsque des modifications de métadonnées se produisent, le composant peut les surveiller et y réagir. Par exemple, un composant peut rejeter certaines modifications ou apporter des modifications supplémentaires en réponse à une modification. Au moment de la conception, le concepteur interagit avec un composant via l'interface IDTSDesigntimeComponent100 du moment de la conception.

Au moment de l'exécution, la tâche de flux de données examine la séquence de composants, prépare un plan d'exécution et gère un pool de threads de travail qui exécute le plan de travail. Bien que chaque thread de travail effectue un travail qui est interne à la tâche de flux de données, la tâche principale du thread de travail consiste à appeler les méthodes du composant via l'interface IDTSRuntimeComponent100 du moment de l'exécution.

Création d'un composant

Pour créer un composant de flux de données, vous dérivez une classe de la classe de base PipelineComponent, vous appliquez la classe DtsPipelineComponentAttribute, puis vous remplacez les méthodes appropriées de la classe de base. L'objet PipelineComponent implémente les interfaces IDTSDesigntimeComponent100 et IDTSRuntimeComponent100, puis expose leurs méthodes pour que vous les remplaciez dans votre composant.

Selon les objets utilisés par votre composant, votre projet requerra des références à une partie ou la totalité des assemblys suivants :

Fonctionnalité Assembly à référencer Espace de noms à importer
Flux de données Microsoft.SqlServer.PipelineHost Microsoft.SqlServer.Dts.Pipeline
Wrapper de flux de données Microsoft.SqlServer.DTSPipelineWrap Microsoft.SqlServer.Dts.Pipeline.Wrapper
Runtime Microsoft.SQLServer.ManagedDTS Microsoft.SqlServer.Dts.Runtime
Wrapper d'exécution Microsoft.SqlServer.DTSRuntimeWrap Microsoft.SqlServer.Dts.Runtime.Wrapper

L'exemple de code suivant montre un composant simple dérivé de la classe de base, puis applique l'objet DtsPipelineComponentAttribute. Vous devez ajouter une référence à l’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  

Voir aussi

Développement d'une interface utilisateur pour un composant de flux de données