Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
SSIS Integration Runtime in Azure Data Factory
Im Datenfluss eines Integration Services-Pakets, das Änderungsdaten inkrementell lädt, besteht die dritte und letzte Aufgabe darin, die Änderungen auf das Ziel anzuwenden. Sie benötigen jeweils eine Komponente, um Einfügungen, Updates und Löschungen anzuwenden.
Hinweis
Der zweite Task beim Entwerfen des Datenflusses eines Pakets, das ein inkrementelles Laden von Änderungsdaten ausführt, ist die Trennung von Einfügungen, Updates und Löschungen. Weitere Informationen zu dieser Komponente finden Sie unter Verarbeiten von Einfügungen, Updates und Löschungen. Eine Beschreibung des Gesamtprozesses zur Erstellung eines Pakets, das ein inkrementelles Laden von Änderungsdaten ausführt, finden Sie unter Change Data Capture (SSIS).
Anwenden von Einfügungen
Zum Anwenden von Einfügungen verwenden Sie ein OLE DB-Ziel, da die neuen Zeilen keine besondere Behandlung erfordern.
So verarbeiten Sie Einfügungen mit einem OLE DB-Ziel
Fügen Sie auf der Registerkarte Datenfluss ein OLE DB-Ziel hinzu.
Verbinden Sie die Ausgabe, die Einfügevorgänge aus der Transformation „Bedingter Split“ enthält, mit dem OLE DB-Ziel.
Aktivieren Sie im Ziel-Editor für OLE DBauf der Seite Verbindungs-Manager die folgenden Optionen:
Wählen Sie einen OLE DB-Verbindungs-Manager für die Zieldatenbank aus oder erstellen Sie einen.
Wählen Sie eine Option für den Datenzugriffsmodus aus, und wählen Sie dann die Zieltabelle aus, oder geben Sie eine SQL-Anweisung mit den Zielspalten ein.
Ordnen Sie auf der Seite Zuordnungen des Editors die entsprechenden Spalten aus den Änderungsdaten der Zieltabelle zu.
Anwenden von Updates
Um Aktualisierungen anzuwenden, verwenden Sie eine OLE DB-Befehlstransformation. Sie verwenden diese Transformation, da Sie eine parametrisierte UPDATE Anweisung verwenden müssen, um jeweils eine Zeile mit den neuen Spaltenwerten zu aktualisieren.
Hinweis
Sie können auch Zielkomponenten verwenden, um Updates anzuwenden. Bei dieser Vorgehensweise verwenden Sie die Zielkomponenten, um die Zeilen in temporäre Tabellen zu speichern, die Sie für diesen Zweck erstellen. Sie verwenden dann Execute-SQL-Tasks, um Massenaktualisierungen und Massenlöschungen im Ziel anhand der temporären Tabellen durchzuführen.
Updates mit einer OLE DB-Befehl-Transformation verarbeiten
Fügen Sie auf der Registerkarte Datenfluss eine Transformation für OLE DB-Befehl hinzu.
Verbinden Sie die Ausgabe, die Updates aus der Transformation „Bedingter Split“ enthält, mit der OLE DB-Befehlstransformation.
Wählen Sie auf der Registerkarte Verbindungs-Managerim Erweiterten Editor für OLE DB-Befehl für die Zieldatenbank einen OLE DB-Verbindungs-Manager aus, oder erstellen Sie einen.
Geben Sie im Erweiterten Editor für den OLE DB-Befehl auf der Registerkarte Komponenteneigenschaften für SqlCommand eine parametrisierte UPDATE Anweisung ein.
Eine UPDATE-Anweisung für eine Kundentabelle könnte beispielsweise folgende Syntax haben:
update CDCSample.Customer set TerritoryID = ?, CustomerType = ?, rowguid = ?, ModifiedDate = ? where CustomerID = ?Ordnen Sie auf der Registerkarte "Spaltenzuordnungen" des Editors die entsprechenden Spalten aus den Änderungsdaten den Parametern in der UPDATE Anweisung zu.
Anwenden von Löschungen
Zum Anwenden von Löschvorgängen verwenden Sie eine OLE DB-Befehl-Transformation. Sie verwenden diese Transformation, da Sie eine parametrisierte DELETE Anweisung verwenden müssen, die eine einzelne Zeile gleichzeitig basierend auf dem Spaltenwert löscht, der die Zeile eindeutig identifiziert.
Hinweis
Sie können auch Zielkomponenten verwenden, um Löschungen anzuwenden. Bei dieser Vorgehensweise verwenden Sie die Zielkomponenten, um die Zeilen in temporäre Tabellen zu speichern, die Sie für diesen Zweck erstellen. Anschließend verwenden Sie Execute-SQL-Tasks, um mithilfe der temporären Tabellen Massenaktualisierungen und Massenlöschungen im Ziel durchzuführen.
Löschvorgänge mithilfe einer OLE DB-Befehl-Transformation verarbeiten
Fügen Sie auf der Registerkarte Datenfluss dem Datenfluss eine OLE DB-Befehlstransformation hinzu.
Verbinden Sie die Ausgabe, die Löschvorgänge aus der Transformation „Bedingter Split“ enthält, mit der Transformation „OLE DB-Befehl“.
Öffnen Sie den erweiterten Editor, um die Transformation zu konfigurieren.
Wählen Sie auf der Registerkarte Verbindungs-Managerim Erweiterten Editor für OLE DB-Befehl für die Zieldatenbank einen OLE DB-Verbindungs-Manager aus, oder erstellen Sie einen.
Geben Sie im Erweiterter Editor für OLE DB-Befehl auf der Registerkarte "Komponenteneigenschaften" des Editors für SqlCommand eine parametrisierte DELETE Anweisung ein.
Beispielsweise könnte eine DELETE Anweisung für eine Kundentabelle die folgende Syntax haben:
delete from Customer where CustomerID = ?Ordnen Sie auf der Registerkarte "Spaltenzuordnungen " des Editors die entsprechende Spalte aus den Änderungsdaten dem Parameter in der DELETE Anweisung zu.
Optimierung von Einfügungen und Aktualisierungen mithilfe der MERGE-Funktionalität
Sie können die Verarbeitung von Einfügungen und Aktualisierungen optimieren, indem Sie bestimmte Änderungsoptionen für die Datenerfassung mit der Verwendung des Schlüsselworts Transact-SQL MERGE kombinieren. Weitere Informationen zum MERGE Schlüsselwort finden Sie unter MERGE (Transact-SQL).
In der Transact-SQL-Anweisung, mit der die Änderungsdaten abgerufen werden, können Sie all with merge als den Wert des row_filter_option-Parameters festlegen, wenn Sie die cdc.fn_cdc_get_net_changes_<capture_instance>-Funktion aufrufen. Diese Change Data Capture-Funktion arbeitet effizienter, wenn sie nicht die zusätzliche Verarbeitung ausführen muss, die erforderlich ist, um Einfügungen von Updates zu unterscheiden. Wenn Sie den all with merge -Parameterwert angeben, ist der __$operation -Wert der Änderungsdaten 1 für Löschungen oder 5 für Änderungen, die durch Einfügungen oder Updates verursacht wurden. Weitere Informationen zur Transact-SQL-Funktion, die zum Abrufen der Änderungsdaten verwendet wird, finden Sie unter Abrufen und Verstehen der Änderungsdaten. Nachdem Sie Änderungen mit dem all with merge -Parameterwert abgerufen haben, können Sie Löschungen anwenden und die übrigen Zeilen in eine temporäre Tabelle oder eine Stagingtabelle ausgeben. Anschließend können Sie in einer nachgeschalteten Execute SQL Task eine einzelne MERGE Anweisung verwenden, um alle Einfügungen oder Aktualisierungen aus der Stagingtabelle auf das Ziel anzuwenden.