Erstellen einer benutzerdefinierten Datenflusskomponente

Gilt für:SQL Server SSIS Integration Runtime in Azure Data Factory

In Microsoft SQL Server Integration Services stellt der Datenflusstask ein Objektmodell zur Verfügung, das Entwicklern das Erstellen von benutzerdefinierten Datenflusskomponenten (Quellen, Transformationen und Ziele) anhand von Microsoft .NET Framework und verwaltetem Code ermöglicht.

Ein Datenflusstask besteht aus Komponenten, die eine IDTSComponentMetaData100-Schnittstelle und eine Auflistung von IDTSPath100-Objekten enthalten, die die Verschiebung von Daten zwischen Komponenten definieren.

Hinweis

Wenn Sie einen benutzerdefinierten Anbieter erstellen, müssen Sie die Datei "ProviderDescriptors.xml" mit den Metadatenspaltenwerten aktualisieren.

Entwurfszeit und Laufzeit

Vor der Ausführung befindet sich der Datenflusstask im so genannten Entwurfszeitstatus, während er inkrementelle Änderungen durchläuft. Zu den Änderungen kann das Hinzufügen oder Entfernen von Komponenten, das Hinzufügen oder Entfernen von Pfadobjekten zur Verbindung von Komponenten sowie Änderungen an den Metadaten der Komponenten gehören. Wenn Metadaten-Änderungen auftreten, kann die Komponente die Änderungen überwachen und darauf reagieren. Zum Beispiel kann eine Komponente bestimmte Änderungen nicht zulassen oder zusätzliche Änderungen als Reaktion auf eine Änderung vornehmen. Zur Entwurfszeit interagiert der Designer mit einer Komponente durch die Entwurfszeitschnittstelle IDTSDesigntimeComponent100.

Zur Ausführungszeit wird vom Datenflusstask die Reihenfolge von Komponenten überprüft, ein Ausführungsplan vorbereitet und ein Pool von Arbeitsthreads verwaltet, die den Arbeitsplan ausführen. Auch wenn jeder Arbeitsthread einige interne Arbeiten im Datenflusstask ausführt, besteht die Hauptaufgabe des Arbeitsthread darin, die Methoden der Komponenten über die Laufzeitschnittstelle IDTSRuntimeComponent100 aufzurufen.

Erstellen einer Komponente

Zum Erstellen einer Datenflusskomponente leiten Sie eine Klasse von der PipelineComponent-Basisklasse ab, wenden die DtsPipelineComponentAttribute-Klasse an und überschreiben dann die entsprechenden Methoden der Basisklasse. Mit PipelineComponent werden die Schnittstellen IDTSDesigntimeComponent100 und IDTSRuntimeComponent100 implementiert und die Methoden zum Überschreiben in der Komponente zur Verfügung gestellt.

Abhängig von den in der Komponente verwendeten Objekten erfordert Ihr Projekt Verweise auf einige oder alle der folgenden Assemblys:

Funktion Verweis auf Assembly Zu importierender Namespace
Datenfluss Microsoft.SqlServer.PipelineHost Microsoft.SqlServer.Dts.Pipeline
Datenfluss-Wrapper Microsoft.SqlServer.DTSPipelineWrap Microsoft.SqlServer.Dts.Pipeline.Wrapper
Typ Microsoft.SQLServer.ManagedDTS Microsoft.SqlServer.Dts.Runtime
Laufzeit-Wrapper Microsoft.SqlServer.DTSRuntimeWrap Microsoft.SqlServer.Dts.Runtime.Wrapper

Im folgenden Codebeispiel werden eine einfache, von der Basisklasse abgeleitete Komponente veranschaulicht und DtsPipelineComponentAttribute angewendet. Sie müssen einen Verweis auf die Microsoft.SqlServer.DTSPipelineWrap-Assembly hinzufügen.

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  

Weitere Informationen

Entwickeln einer Benutzeroberfläche für eine Datenflusskomponente