Création d'un composant de flux de données personnalisé
Dans MicrosoftSQL ServerIntegration 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 du 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.
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 |
|
Wrapper de flux de données |
Microsoft.SqlServer.DTSPipelineWrap |
|
Runtime |
Microsoft.SQLServer.ManagedDTS |
|
Wrapper d'exécution |
Microsoft.SqlServer.DTSRuntimeWrap |
L'exemple de code suivant montre un composant simple dérivé de la classe de base , puis applique l'objet DtsPipelineComponentAttribute.
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
|