CDC-Quelle

Gilt für:yes SQL Server (alle unterstützten Versionen) yes SSIS Integration Runtime in Azure Data Factory

Die CDC-Quelle liest eine Reihe von Änderungsdaten aus SQL Server Änderungstabellen und übergibt die Änderungen nachgeschaltet an andere SSIS-Komponenten.

Der Bereich mit Änderungsdaten, der von CDC-Quelle gelesen wird, wird als CDC-Verarbeitungsbereich bezeichnet und mithilfe des CDC-Steuerungstasks bestimmt, der vor Beginn des aktuellen Datenflusses ausgeführt wird. Der CDC-Verarbeitungsbereich wird aus dem Wert einer Paketvariablen abgeleitet, die den Status der CDC-Verarbeitung für eine Gruppe von Tabellen verwaltet.

Die CDC-Quelle extrahiert Daten aus SQL Server Datenbank mithilfe einer Datenbanktabelle, einer Sicht oder einer SQL Anweisung.

Die CDC-Quelle verwendet die folgenden Konfigurationen:

  • Ein SQL Server ADO.NET Verbindungs-Manager für den Zugriff auf SQL Server CDC-Datenbank. Weitere Informationen zum Konfigurieren der CDC-Quellverbindung finden Sie unter Quellen-Editor für CDC (seite Verbindungs-Manager).

  • Für CDC aktivierte Tabelle.

  • Name der Aufzeichnungsinstanz der ausgewählten Tabelle (falls mehr als eine vorhanden ist).

  • Änderungsverarbeitungsmodus

  • Name der CDC-Statuspaketvariablen, auf deren Grundlage der CDC-Verarbeitungsbereich bestimmt wird. Die CDC-Quelle ändert diese Variable nicht.

Die von der CDC-Quelle zurückgegebenen Daten sind identisch mit den Daten, die von den SQL Server CDC-Funktionen cdc.fn_cdc_get_all_changes_capture-instance-name> oder > (falls verfügbar) zurückgegeben werden. Die einzige optionale Hinzufügung ist die Spalte __$initial_processing , in der angegeben wird, ob sich der aktuelle Verarbeitungsbereich mit einem erstmaligen Ladevorgang der Tabelle überschneiden kann. Weitere Informationen zur erstmaligen Verarbeitung finden Sie unter CDC Control Task.

Die CDC-Quelle weist eine reguläre Ausgabe und eine Fehlerausgabe auf.

Fehlerbehandlung

Die CDC-Quelle verfügt über eine Fehlerausgabe. Die Komponentenfehlerausgabe enthält die folgenden Ausgabespalten:

  • Fehlercode: Der Wert beträgt immer -1.

  • Fehlerspalte: Die Quellspalte, die den Fehler verursacht (für Konvertierungsfehler).

  • Fehlerzeilenspalten: Die Datensatzdaten, die den Fehler verursachen.

Je nach Einstellung des Fehlerverhaltens unterstützt die CDC-Quelle das Zurückgeben von Fehlern (Datenkonvertierung, Abschneiden), die während des Extraktionsprozesses in der Fehlerausgabe auftreten.

Datentypunterstützung

Die CDC-Quellkomponente für Microsoft unterstützt alle SQL Server Datentypen, die den richtigen SSIS-Datentypen zugeordnet sind.

Problembehandlung der CDC-Quelle

Unten sind Informationen zum Durchführen einer Problembehandlung für die CDC-Quelle aufgeführt.

Verwenden dieses Skripts zum Isolieren von Problemen und zum Reproduzieren in SQL Server Management Studio

Der CDC-Quellvorgang wird vom Vorgang des CDC-Steuerungstasks gesteuert, der vor dem Aufrufen der CDC-Quelle ausgeführt wurde. Der CDC-Steuerungstask bereitet den Wert der CDC-Statuspaketvariablen vor, damit die Start- und End-LSN darin enthalten sein kann. Es wird eine Funktion ausgeführt, die dem folgenden Skript entspricht:

use <cdc-enabled-database-name>  
               declare @start_lsn binary(10), @end_lsn binary(10)  
               set @start_lsn = sys.fn_cdc_increment_lsn(  
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))  
               set @end_lsn =   
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)  
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,  
@end_lsn, '<mode>')  

Dabei gilt:

  • <cdc-enabled-database-name> ist der Name der SQL Server Datenbank, die die Änderungstabellen enthält.

  • <value-from-state-cs> ist der Wert, der in der CDC-Zustandsvariablen als CS/<value-from-state-cs>/ angezeigt wird (CS steht für Current-processing-range-Start).

  • <value-from-state-ce> ist der Wert, der in der CDC-Zustandsvariablen als CE/<value-from-state-cs>/ angezeigt wird (CE steht für Current-processing-range-End).

  • <-> Modus sind die CDC-Verarbeitungsmodi. Die Verarbeitungsmodi haben einen der folgenden Werte: All, All with Old Values, Net, Net with Update Mask, Net with Merge.

Dieses Skript hilft bei der Isolierung von Problemen, indem es sie in der SQL Server Management Studio, wo es einfach ist, Fehler zu reproduzieren und zu identifizieren.

SQL Server-Fehlermeldung

Die folgende Meldung wird möglicherweise von der SQL Server:

Es wurde nicht genügend Argumente für die Prozedur oder Funktion cdc.fn_cdc_get_net_changes_..>

Dieser Fehler gibt nicht an, dass ein Argument fehlt. Die Bedeutung ist, dass die Start- bzw. End-LSN-Werte in der CDC-Statusvariablen ungültig sind.

Konfigurieren der CDC-Quelle

Sie können die CDC-Quelle programmgesteuert oder mit dem SSIS-Designer konfigurieren.

Weitere Informationen finden Sie in einem der folgenden Themen:

Das Dialogfeld Erweiterter Editor enthält die Eigenschaften, die programmgesteuert festgelegt werden können.

So öffnen Sie das Dialogfeld Erweiterter Editor :

  • Klicken Sie im Flow Data Flow Ihres SQL Server 2019 Integration Services(SSIS)-Projekts mit der rechten Maustaste auf die CDC-Quelle, und wählen Sie Show Erweiterter Editor.

Weitere Informationen zu den Eigenschaften, die Sie im Dialogfeld Erweiterter Editor festlegen können, finden Sie unter CDC Source Custom Properties.

In diesem Abschnitt

Quellen-Editor für CDC (Seite Verbindungs-Manager)

Auf der Verbindungs-Manager Seite des Dialogfelds Quellen-Editor für CDC können Sie den ADO.NET-Verbindungs-Manager für die SQL Server-Datenbank auswählen, aus der die CDC-Quelle Änderungszeilen liest (die CDC-Datenbank). Nachdem Sie die CDC-Datenbank ausgewählt haben, müssen Sie eine aufgezeichnete Tabelle in der Datenbank auswählen.

Weitere Informationen zur CDC-Quelle finden Sie unter CDC Source.

Aufgabenliste

So öffnen Sie die Seite "Verbindungs-Manager" des Quellen-Editors für CDC

  1. Öffnen SQL Server Data Tools das SQL Server 2019 Integration Services-Paket (SSIS), das die CDC-Quelle enthält.

  2. Doppelklicken Sie auf der Registerkarte Datenfluss auf die CDC-Quelle.

  3. Klicken Sie im Quellen-Editor für CDCauf Verbindungs-Manager.

Tastatur

ADO.NET-Verbindungs-Manager
Wählen Sie in der Liste einen vorhandenen Verbindungs-Manager aus, oder klicken Sie auf Neu , um eine neue Verbindung zu erstellen. Die Verbindung muss mit einer Datenbank SQL Server sein, die für CDC aktiviert ist und in der sich die ausgewählte Änderungstabelle befindet.

Neu
Klicken Sie auf Neu. Das Dialogfeld ADO.NET-Verbindungs-Manager konfigurieren , in dem Sie einen neuen Verbindungs-Manager erstellen können, wird geöffnet.

CDC Table
Wählen Sie die CDC-Quelltabelle mit den aufgezeichneten Änderungen aus, die Sie lesen und zur Verarbeitung an Downstream-SSIS-Komponenten senden möchten.

Capture instance
Wählen Sie den Namen der CDC-Aufzeichnungsinstanz mit der zu lesenden CDC-Tabelle aus, oder geben Sie ihn ein.

Eine aufgezeichnete Quelltabelle kann über eine oder zwei aufgezeichnete Instanzen zum Behandeln des nahtlosen Übergangs der Tabellendefinition mithilfe von Schemaänderungen verfügen. Wenn mehr als eine Aufzeichnungsinstanz für die aufzuzeichnende Quelltabelle definiert wird, müssen Sie hier die gewünschte Aufzeichnungsinstanz auswählen. Der Standardname der Erfassungsinstanz für eine Tabelle [Schema]. [table] ist <schema>_<table,> aber die tatsächlichen Namen der verwendeten Erfassungsinstanzen können unterschiedlich sein. Die tatsächliche Tabelle, aus der gelesen wird, ist die CDC-Tabelle cdc. capture-instance>_CT.

CDC Processing Mode
Wählen Sie den Verarbeitungsmodus aus, der sich für die Behandlung Ihrer Verarbeitungsanforderungen am besten eignet. Folgende Optionen sind möglich:

  • All: Gibt die Änderungen im aktuellen CDC-Bereich ohne Vor Update -Werte zurück.

  • All with old values: Gibt die Änderungen im aktuellen CDC-Verarbeitungsbereich unter Einbeziehung der alten Werte (Vor Update) zurück. Für jeden Updatevorgang gibt es zwei Zeilen, eine mit den Werten vor dem Update und eine mit den Werten nach dem Update.

  • Net: Gibt nur eine Änderungszeile pro Quellzeile zurück, die im aktuellen CDC-Verarbeitungsbereich geändert wurde. Wenn eine Quellzeile mehrmals aktualisiert wurde, wird die kombinierte Änderung erzeugt (Beispiel: Einfügen+Update wird als einzelner Updatevorgang und Update+Löschen als einzelner Löschvorgang erzeugt). Beim Arbeiten im Änderungsverarbeitungsmodus Net ist es möglich, die Änderungen auf Lösch-, Einfüge- und Updatevorgänge aufzuteilen und parallel zu behandeln, da die einzelne Quellzeile in mehr als einer Ausgabe vorhanden ist.

  • Net with update mask (Net mit Updatemaske): Dieser Modus ähnelt dem normalen Net-Modus, fügt aber auch boolesche Spalten mit dem Namensmuster __$column-name hinzu__Changed die auf geänderte Spalten in der aktuellen Änderungszeile hinweisen.

  • Net with merge: Dieser Modus ähnelt dem normalen Net-Modus, aber hierbei sind Einfüge- und Updatevorgänge zu einem einzelnen Mergevorgang (UPSERT) zusammengeführt.

Hinweis

Für alle Nettoänderungsoptionen muss die Quelltabelle über einen Primärschlüssel oder einen eindeutigen Index verfügen. Für Tabellen ohne Primärschlüssel oder eindeutigen Index muss die Option All verwendet werden.

Variable, die den CDC-Status enthält
Wählen Sie die SSIS-Zeichenfolgenpaketvariable aus, in der der CDC-Status für den aktuellen CDC-Kontext verwaltet wird. Weitere Informationen zur CDC-Statusvariablen finden Sie unter Definieren einer Statusvariablen.

Include reprocessing indicator column
Aktivieren Sie dieses Kontrollkästchen, um eine spezielle Ausgabespalte mit dem Namen __$reprocessingzu erstellen.

Diese Spalte hat den Wert TRUE , wenn sich der CDC-Verarbeitungsbereich mit dem ursprünglichen Verarbeitungsbereich überschneidet (der LSN-Bereich, der dem Zeitraum des erstmaligen Ladens entspricht) oder wenn ein CDC-Verarbeitungsbereich nach einem Fehler bei einer vorherigen Ausführung erneut verarbeitet wird. In dieser Indikatorspalte können SSIS-Entwickler Fehler unterschiedlich behandeln, wenn sie Änderungen erneut verarbeiten (z. B. können Aktionen, wie das Löschen einer nicht vorhandenen Zeile und ein fehlgeschlagener Einfügevorgang aufgrund eines doppelten Schlüssels, ignoriert werden).

Weitere Informationen finden Sie unter CDC Source Custom Properties.

Quellen-Editor für CDC (Seite Spalten)

Auf der Seite Spalten des Dialogfelds Quellen-Editor für CDC können Sie jeder externen Spalte (Quellspalte) eine Ausgabespalte zuordnen.

Aufgabenliste

So öffnen Sie die Seite "Spalten" des Quellen-Editors für CDC

  1. Öffnen Sie in SQL Server Data Tools das SSIS-Paket (SQL Server 2019 Integration Services), das über die CDC-Quelle verfügt.

  2. Doppelklicken Sie auf der Registerkarte Datenfluss auf die CDC-Quelle.

  3. Klicken Sie im Quellen-Editor für CDCauf Spalten.

Tastatur

Verfügbare externe Spalten
Eine Liste der in der Datenquelle verfügbaren externen Spalten. Mit der Tabelle können keine Spalten hinzugefügt oder gelöscht werden. Wählen Sie die zu verwendenden Spalten in der Datenquelle aus. Die ausgewählten Spalten werden der Liste Externe Spalte in der Reihenfolge hinzugefügt, in der Sie sie auswählen.

Externe Spalte
Eine Ansicht der externen Spalten (Quellspalten) in der Reihenfolge, in der sie angezeigt werden, wenn Sie Komponenten konfigurieren, die Daten aus der CDC-Quelle verwenden. Sie können diese Reihenfolge ändern, indem Sie zunächst die ausgewählten Spalten in der Liste Verfügbare externe Spalten löschen und anschließend die externen Spalten in einer anderen Reihenfolge in der Liste auswählen. Die ausgewählten Spalten werden der Liste Externe Spalte in der Reihenfolge hinzugefügt, in der Sie sie auswählen.

Ausgabespalte
Geben Sie für jede Ausgabespalte einen eindeutigen Namen ein. Standardmäßig wird der Name der ausgewählten externen Spalte (Quellspalte) verwendet, Sie können jedoch auch einen beschreibenden Namen angeben, sofern dieser eindeutig ist. Der eingegebene Name wird im SSIS-Designer angezeigt.

Quellen-Editor für CDC (Seite Fehlerausgabe)

Auf der Seite Fehlerausgabe des Dialogfelds Quellen-Editor für CDC können Sie Optionen für die Fehlerbehandlung auswählen.

Aufgabenliste

So öffnen Sie die Seite "Fehlerausgabe" des Quellen-Editors für CDC

  1. Öffnen Sie in SQL Server Data Tools das SSIS-Paket (SQL Server 2019 Integration Services), das über die CDC-Quelle verfügt.

  2. Doppelklicken Sie auf der Registerkarte Datenfluss auf die CDC-Quelle.

  3. Klicken Sie im Quellen-Editor für CDCauf Fehlerausgabe.

Tastatur

Eingabe/Ausgabe
Zeigt den Namen der Datenquelle an.

Spalte
Zeigt die externen Spalten (Quellspalten) an, die im Dialogfeld Quellen-Editor für CDC auf der Seite Verbindungs-Manager ausgewählt wurden.

Fehler
Wählen Sie aus, wie die CDC-Quelle Fehler in einem Fluss behandeln soll: Fehler ignorieren, Zeile umleiten oder Komponente mit einem Fehler abbrechen.

Abschneiden
Wählen Sie aus, wie die CDC-Quelle Kürzungen in einem Fluss behandeln soll: Fehler ignorieren, Zeile umleiten oder Komponente mit einem Fehler abbrechen.

Beschreibung
Wird nicht verwendet.

Diesen Wert für ausgewählte Zellen festlegen
Wählen Sie aus, wie die CDC-Quelle im Fall eines Fehlers oder einer Kürzung mit den ausgewählten Zellen verfahren soll: Fehler ignorieren, Zeile umleiten oder Komponente mit einem Fehler abbrechen.

Anwenden
Wendet die Fehlerbehandlungsoptionen auf die ausgewählten Zellen an.

Fehlerbehandlungsoptionen

Mit den folgenden Optionen konfigurieren Sie, wie die CDC-Quelle Fehler und Kürzungen behandelt.

Fehler bei Komponente
Bei einem Fehler oder beim Abschneiden von Daten wird der Datenflusstask nicht ausgeführt. Dies ist das Standardverhalten.

Fehler ignorieren
Der Fehler oder die Kürzung wird ignoriert, und die Datenzeile wird an die Ausgabe der CDC-Quelle umgeleitet.

Zeile umleiten
Der Fehler oder die Kürzung wird an die Fehlerausgabe der CDC-Quelle umgeleitet. In diesem Fall wird die Fehlerbehandlung der CDC-Quelle verwendet. Weitere Informationen finden Sie unter CDC Source.