Implementieren externer Metadaten

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

Wenn die Verbindung einer Komponente mit einer Datenquelle getrennt ist, können Sie mithilfe der IDTSExternalMetadataColumnCollection100-Schnittstelle die Spalten in den Eingabe- und Ausgabespaltenauflistungen anhand der Spalten der externen Datenquelle überprüfen. Mit dieser Schnittstelle können Sie eine Momentaufnahme der Spalten der externen Datenquelle verwalten und diese Spalten den Eingabe- und Ausgabespaltenauflistungen der Komponente zuordnen.

Die Implementierung externer Metadatenspalten erhöht den Verwaltungsaufwand und die Komplexität bei der Komponentenentwicklung, da Sie eine weitere Spaltenauflistung verwalten und überprüfen müssen. Diese Entwicklungsarbeit kann sich aber lohnen, da Sie teure Roundtrips zum Server zu Überprüfungszwecken vermeiden können.

Auffüllen von externen Metadatenspalten

Externe Metadatenspalten werden der Auflistung meist bei der Erstellung der entsprechenden Eingabe- oder Ausgabespalten hinzugefügt. Neue Spalten werden durch Aufrufen der New-Methode erstellt. Die Eigenschaften der Spalte werden anschließend entsprechend der externen Datenquelle festgelegt.

Die externe Metadatenspalte wird der entsprechenden Eingabe- oder Ausgabespalte durch Zuweisen der ID der externen Metadatenspalte zur ExternalMetadataColumnID-Eigenschaft der Eingabe- oder Ausgabespalte zugeordnet. So können Sie die externe Metadatenspalte für eine spezifische Eingabe- oder Ausgabespalte leicht mithilfe der GetObjectByID-Methode der Auflistung finden.

Im folgenden Beispiel werden die Erstellung einer externen Metadatenspalte und die anschließende Zuordnung der Spalte zu einer Ausgabespalte durch Festlegen der ExternalMetadataColumnID-Eigenschaft veranschaulicht.

public void CreateExternalMetaDataColumn(IDTSOutput100 output, int outputColumnID )  
{  
    IDTSOutputColumn100 oColumn = output.OutputColumnCollection.GetObjectByID(outputColumnID);  
    IDTSExternalMetadataColumn100 eColumn = output.ExternalMetadataColumnCollection.New();  
  
    eColumn.DataType = oColumn.DataType;  
    eColumn.Precision = oColumn.Precision;  
    eColumn.Scale = oColumn.Scale;  
    eColumn.Length = oColumn.Length;  
    eColumn.CodePage = oColumn.CodePage;  
  
    oColumn.ExternalMetadataColumnID = eColumn.ID;  
}  
Public Sub CreateExternalMetaDataColumn(ByVal output As IDTSOutput100, ByVal outputColumnID As Integer)   
 Dim oColumn As IDTSOutputColumn100 = output.OutputColumnCollection.GetObjectByID(outputColumnID)   
 Dim eColumn As IDTSExternalMetadataColumn100 = output.ExternalMetadataColumnCollection.New   
 eColumn.DataType = oColumn.DataType   
 eColumn.Precision = oColumn.Precision   
 eColumn.Scale = oColumn.Scale   
 eColumn.Length = oColumn.Length   
 eColumn.CodePage = oColumn.CodePage   
 oColumn.ExternalMetadataColumnID = eColumn.ID   
End Sub  

Überprüfen anhand externer Metadatenspalten

Die Überprüfung erfordert weitere Schritte für Komponenten, die eine externe Metadatenspaltenauflistung verwalten, denn Sie müssen die Überprüfung anhand einer weiteren Spaltenauflistung vornehmen. Bei der Überprüfung kann zwischen einer verbundenen und einer getrennten Überprüfung unterschieden werden.

Verbundene Überprüfung

Besteht eine Verbindung einer Komponente mit einer externen Datenquelle, werden die Spalten in den Eingabe- oder Ausgabeauflistungen direkt anhand der externen Datenquelle überprüft. Darüber hinaus müssen die Spalten in der externen Metadatensammlung überprüft werden. Dies ist erforderlich, da die externe Metadatensammlung unter Erweiterter Editor in SQL Server Data Tools (SSDT) verändert werden kann, und Änderungen, die an der Sammlung vorgenommen werden, nicht erkennbar sind. Daher müssen die Komponenten, wenn eine Verbindung besteht, sicherstellen, dass die Spalten in der externen Metadatensammlung weiterhin den Spalten der externen Datenquelle entsprechen.

Sie können unter Erweiterter Editor die externe Metadatensammlung ausblenden, indem Sie für die IsUsed-Eigenschaft der Sammlung den Wert false festlegen. Dadurch wird jedoch auch die Registerkarte Spaltenzuordnung des Editors ausgeblendet, über die Benutzer Spalten der Eingabe- und Ausgabeauflistungen den Spalten in der externen Metadatenspaltenauflistung zuordnen können. Das Festlegen dieser Eigenschaft auf den Wert false verhindert nicht, dass Entwickler die Auflistung programmgesteuert verändern, bietet jedoch Schutz für die externe Metadatenspaltensammlung einer Komponente, die ausschließlich in SQL Server Data Tools (SSDT) verwendet wird.

Getrennte Überprüfung

Ist die Verbindung einer Komponente mit einer externen Datenquelle getrennt, ist die Überprüfung einfacher, da die Spalten in der Eingabe- oder Ausgabeauflistung direkt anhand der Spalten der externen Metadatensammlung und nicht anhand der externen Datenquelle überprüft werden. Eine Komponente sollte eine getrennte Überprüfung ausführen, wenn keine Verbindung mit der externen Datenquelle besteht oder die ValidateExternalMetadata-Eigenschaft den Wert false aufweist.

Im folgenden Codebeispiel wird die Implementierung einer Komponente, die eine Überprüfung anhand der externen Metadatenspaltenauflistung vornimmt, gezeigt.

public override DTSValidationStatus Validate()  
{  
    if( this.isConnected && ComponentMetaData.ValidateExternalMetaData )  
    {  
        // TODO: Perform connected validation.  
    }  
    else  
    {  
        // TODO: Perform disconnected validation.  
    }  
}  
Public  Overrides Function Validate() As DTSValidationStatus   
 If Me.isConnected AndAlso ComponentMetaData.ValidateExternalMetaData Then   
  ' TODO: Perform connected validation.  
 Else   
  ' TODO: Perform disconnected validation.  
 End If   
End Function  

Siehe auch

Datenfluss