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
Wichtig
CDC Flow-Komponenten, einschließlich CDC Control Task, CDC Source und CDC Splitter, sind veraltet. Weitere Details finden Sie in der Ankündigung.
Die Change Data Capture-Komponenten von Attunity für Microsoft SQL Server 2019 Integration Services (SSIS) unterstützen SSIS-Entwickler bei der Verwendung von CDC und reduzieren die Komplexität von CDC-Paketen.
Die SSIS-CDC-Komponenten können mit der CDC-Funktion von SQL Server verwendet werden, wenn die Quelltabellen entweder derselben SQL Server -Datenbank oder einer Oracle-Datenbank entsprechen (bei Verwendung des Oracle CDC Service für SQL Server). Partitionierte Tabellen werden unterstützt.
Zu den Komponenten zählen Steuerungs- und Datenflusskomponenten, die das Lesen und Verarbeiten von Änderungsdaten in SSIS-Paketen vereinfachen. Die Komponenten können der Komponentenbibliothek in Microsoft SQL Serverhinzugefügt werden, werden aber separat installiert.
Folgende Change Data Capture-Komponenten von Attunity sind verfügbar:
CDC-Ablaufsteuerungskomponente:
CDC-Datenflusskomponenten:
Installation
In diesem Abschnitt werden die Installationsverfahren für die CDC-Komponenten für Microsoft SQL Server 2019 Integration Services (SSIS)beschrieben.
Die CDC-Komponenten für SSIS sind im Microsoft Change Data Capture Designer and Service for Oracle by Attunity für SQL Server enthalten. Dieser Download ist Teil des SQL Server Feature Packs. Laden Sie die Komponenten des Feature Packs von der SQL Server 2016 Feature Pack-Webseite herunter.
Versionsunterstützung
SQL Server-Versionsunterstützung
Die CDC-Komponenten für SSIS werden von allen unterstützten Versionen von Microsoft SQL Server unterstützt. Die derzeit unterstützten Versionen von SQL Server sind SQL Server 2012 bis SQL Server 2017.
Unterstützung von Betriebssystemversionen
Die CDC-Komponenten für SSIS werden auf den angegebenen Betriebssystemen und Plattformen unterstützt:
- Windows 8 und 8.1
- Windows 10
- Windows Server 2012 und 2012 R2
- Windows Server 2016
Ausführen des Installationsprogramms
Stellen Sie vor dem Ausführen des Installations-Assistenten sicher, dass SQL Server SQL Server Data Tools geschlossen ist. Folgen Sie anschließend den Anweisungen im Installations-Assistenten.
Neustarten des SSIS-Diensts
Nachdem Sie die CDC-Komponenten installiert haben, müssen Sie den SSIS-Dienst neu starten, um sicherzustellen, dass die Komponenten beim Entwickeln von Paketen in SQL SQL Server Data Tools ordnungsgemäß funktionieren.
Nach der Installation der Komponenten wird eine Meldung angezeigt. Klicken Sie auf Ja , wenn eine Aufforderung angezeigt wird.
Deinstallieren der Microsoft-CDC-Komponenten
Sie deinstallieren die CDC-Quelle, den CDC-Splitter oder den CDC-Steuerungstask mithilfe des Deinstallations-Assistenten. Wenn Sie SQL Server SQL Server Data Tools zur Paketentwicklung verwenden, vergewissern Sie sich, dass SQL Server SQL Server Data Tools geschlossen ist, bevor Sie den Deinstallations-Assistenten ausführen.
Vorteile
Die CDC-Komponenten für SQL Server Integration Services ermöglichen SSIS-Entwickler*innen das mühelose Erstellen von SSIS-Paketen, die Änderungsdaten verarbeiten. Diese Komponenten erleichtern SSIS-Entwicklern die Verwendung von CDC und reduzieren die Komplexität von CDC-Paketen.
Die SSIS-CDC-Komponenten werden verwendet, um die Änderungsdaten in einer Form bereitzustellen, in der sie einfach zur Replikation, zum Laden eines Data Warehouse, Aktualisieren langsam veränderlicher Dimensionen für OLAP, Überwachen von Änderungen oder für weitere mögliche Zwecke verarbeitet werden können. Die Art der weiteren Verarbeitung wird vom SSIS-Entwickler bestimmt.
Die SSIS-CDC-Komponenten sind zur Verwendung mit der CDC-Funktion von SQL Server mit Änderungstabellen konzipiert, die sich in derselben SQL Server -Datenbank befinden.
Erste Schritte mit den Change Data Capture-Komponenten
Ein typisches CDC-Paket verarbeitet Änderungen an einer Gruppe von Tabellen. Der Teil der grundlegenden Steuerungslogik dieses Typs von CDC-Paket wird in der folgenden Abbildung gezeigt. Das Paket wird als Trickle-Feed-Verarbeitungspaket bezeichnet.
Dieser SQL Server Integration Services-Kontrollfluss enthält zwei CDC-Steuerungsvorgänge und den Datenflussvorgang. Der erste Task mit dem Namen Get CDC Processing Range legt den LSN-Bereich für die Änderungen fest, die im Datenflusstask mit dem Namen Process Changesverarbeitet werden. Dieser Bereich wird auf Grundlage dessen festgelegt, was während der letzten Paketausführung verarbeitet und in einem permanenten Speicher gespeichert wurde.
Weitere Informationen zur Verwendung der CDC-Steuerungstasks finden Sie unter CDC-Steuerungstask und CDC-Steuerungstask-Editor.
Die folgende Abbildung zeigt den Datenfluss für die Änderungsverarbeitung und veranschaulicht, wie Änderungen verarbeitet werden.
Die folgenden Schritte werden in der Abbildung dargestellt:
Änderungen an Tabelle X ist eine CDC-Quelle, die die an Tabelle X vorgenommenen Änderungen liest, die in den vom übergeordneten Steuerungsfluss bestimmten CDC-Verarbeitungsbereich fallen.
CDC-Splitter X wird verwendet, um die Änderungen in Einfügungen, Löschungen und Updates zu teilen. In diesem Szenario wird davon ausgegangen, dass die CDC-Quelle zum Erzeugen von Nettoänderungen konfiguriert ist, sodass andere Änderungstypen parallel verarbeitet werden können.
Die spezifischen Änderungen werden dann downstream weiter verarbeitet. In dieser Abbildung werden die Änderungen in Tabellen mit mehreren ODBC-Zielen eingefügt, in der Realität kann die Verarbeitung jedoch anders aussehen.
Weitere Informationen zur CDC-Quelle finden Sie unter:
CDC-Quellen-Editor (Seite des Verbindungs-Managers)
CDC-Quell-Editor (Seite „Spalten“)
CDC-Quell-Editor (Seite für die Fehlerausgabe)
Weitere Informationen zum CDC-Splitter finden Sie unter:
Eines der grundlegenden Probleme, das beim Erstellen von CDC-Paketen berücksichtigt werden muss, ist die Art und Weise, wie die Änderungsverarbeitung mit dem anfänglichen Ladevorgang (oder der anfänglichen Verarbeitung) der Daten interagiert.
Die CDC-Komponenten unterstützen drei unterschiedliche Szenarien für den anfänglichen Ladevorgang und die anfängliche Änderungsverarbeitung:
Das initiale Laden erfolgt mithilfe einer Datenbankmomentaufnahme. In diesem Fall beginnt die Änderungsverarbeitung mit der LSN des Snapshot-Ereignisses.
Anfängliches Laden aus einer inaktiven Datenbank. In diesem Fall werden während des anfänglichen Ladevorgangs keine Änderungen vorgenommen. Daher wird die aktuelle LSN an einem Punkt während des Ladevorgangs abgefragt, und die Verarbeitung beginnt bei dieser LSN.
Anfängliches Laden aus einer aktiven Datenbank. In diesem Fall werden während des anfänglichen Ladevorgangs Änderungen an der Datenbank vorgenommen, und es gibt keine spezifische LSN, bei der die Änderungsverarbeitung gestartet werden kann. Der Entwickler des anfänglich geladenen Pakets kann die aktuelle LSN der Quelldatenbank vor und nach dem anfänglichen Laden abfragen. In diesem Fall ist beim Verarbeiten von Änderungen, die parallel zum anfänglichen Ladevorgang vorgenommen werden, Vorsicht geboten, da einige der verarbeiteten Änderungen bereits im anfänglichen Ladevorgang vorhanden waren (eine Insert-Änderung kann z. B. mit einem Fehler aufgrund doppelter Schlüssel fehlschlagen, da die eingefügte Zeile beim anfänglichen Ladeprozess gelesen wurde).
Die folgende Abbildung zeigt ein SSIS-Paket, das die ersten zwei Szenarien unterstützt:
Die folgende Abbildung zeigt ein SSIS-Paket, das das dritte Szenario unterstützt:
Nach dem anfänglichen Ladepaket wird ein inkrementelles Update-Paket nach einem festgelegten Zeitplan wiederholt ausgeführt, um Änderungen zu verarbeiten, sobald sie zur Nutzung verfügbar sind.
Das Übergeben des Status der CDC-Verarbeitung vom anfänglich geladenen Paket an das Trickle-Feed-Paket und zwischen anderen Tasks innerhalb jedes Pakets erfolgt mithilfe einer speziellen SSIS-Paketzeichenfolgenvariable. Der Wert dieser Variable wird als CDC-Status bezeichnet und gibt den aktuellen Status der CDC-Verarbeitung für die Tabellengruppen wieder, die vom anfänglich geladenen Paket und vom Trickle-Feed-Paket behandelt werden.
Der Wert der CDC-Statusvariablen muss im dauerhaften Speicher beibehalten werden. Er sollte vor dem Starten der CDC-Verarbeitung gelesen werden und nach Abschluss der Verarbeitung mit dem aktuellen Zustand gespeichert werden. Das Laden und Speichern des CDC-Status kann vom SSIS-Entwickler ausgeführt werden, die CDC-Steuerungskomponente bietet jedoch die Möglichkeit, diesen Task zu automatisieren, indem der CDC-Statuswert in einer Datenbanktabelle verwaltet wird.
Sicherheitsüberlegungen
In diesem Abschnitt werden einige Sicherheitsüberlegungen im Zusammenhang mit der Verwendung der CDC-Komponenten in SSIS erläutert.
Autorisierung des Zugriffs auf Änderungsdaten
Trickle-Feed-Updatepakete erfordern Zugriff auf die CDC-Funktionen von SQL Server . Dieser Zugriff wird standardmäßig Mitgliedern der festen Datenbankrolle db_owner gewährt. Da db_owner eine leistungsfähige Rolle ist, wird empfohlen, beim Definieren von Aufzeichnungsinstanzen in SQL Server jeder Aufzeichnungsinstanz eine einschränkende Sicherheitsrolle zuzuordnen, damit das SSIS-CDC-Paket die Änderungen mit einem Benutzerkonto mit deutlich stärker eingeschränkten Berechtigungen verarbeiten kann.
Zugriff auf die aktuelle LSN der CDC-Datenbank
Die Vorgänge der CDC-Steuerungsaufgabe zum Kennzeichnen der Start-LSN für die Änderungsverarbeitung müssen die aktuelle LSN der CDC-Datenbank ermitteln können. Die Komponenten finden die LSN mit der sp_replincrementlsn-Prozedur der master-Datenbank. Die Ausführungsberechtigung für diese Prozedur muss dem Anmeldenamen zugewiesen werden, der zum Herstellen einer Verbindung mit der SQL Server CDC-Datenbank verwendet wird.
Zugriff auf die CDC-Status-Tabelle
Die CDC-Statustabelle dient zum automatischen Beibehalten von CDC-Status, bei denen es erforderlich ist, dass sie von dem zum Herstellen einer Verbindung mit der SQL Server CDC-Datenbank verwendeten Anmeldenamen aktualisiert werden können. Da diese Tabelle vom SSIS-Entwickler erstellt wird, kann der SQL Server -Systemadministrator als ein Benutzer festgelegt werden, der zum Erstellen von SQL Server -Datenbanken sowie zum Ausführen von administrativen Tasks und Wartungstasks autorisiert ist. Ein SQL Server -Systemadministrator, der mit CDC-fähigen Datenbanken arbeitet, muss zudem über entsprechende Kenntnisse in der SQL Server CDC-Technologie und -Implementierung verfügen.
Gruppieren von Tabellen für die CDC-Verarbeitung
Die Größe von Datenbankprojekten variiert zwischen einigen Tabellen und Tausenden von Tabellen. Beim Entwerfen von Paketen für das initiale Laden und von CDC-Paketen ist es vorteilhaft, Tabellen in deutlich kleinere Gruppen aufzuteilen, um die Verwaltung zu erleichtern und die Effizienz zu steigern. In diesem Abschnitt werden verschiedene Überlegungen im Zusammenhang mit der Sortierung von Tabellen in kleinen Gruppen erläutert. Die Tabellen in jedem Paket werden dabei anfänglich geladen und dann als Gruppe aktualisiert.
Die von CDC-Komponenten unterstützten CDC-Muster setzen voraus, dass diese Gruppierung bereits festgelegt ist. Jede Gruppe definiert einen separaten CDC-Kontext, der getrennt von anderen Gruppen verwaltet wird. Für jede Gruppe werden Erstladepakete und Pakete für schrittweise Updates erstellt. Trickle-Feed-Updates werden auf Grundlage der für die Änderungsverarbeitung geltenden Einschränkungen (z. B. CPU- und EA-Verbrauch sowie Auswirkungen auf andere Systeme) und der gewünschten Latenz zur regelmäßigen Ausführung geplant.
Tabellen werden nach folgenden Gesichtspunkten gruppiert:
Entsprechend der Zieldatenbank. Alle Tabellen, die in unterschiedliche Zieldatenbanken geschrieben werden oder eine andere Verarbeitung durchlaufen, sollten verschiedenen CDC-Gruppen zugewiesen werden.
Tabellen, die mit referenziellen Integritätseinschränkungen zusammenhängen, sollten der gleichen Gruppe zugewiesen werden, um Probleme mit der referenziellen Integrität in der Zieldatenbank zu vermeiden.
Tabellen, bei denen eine höhere Latenz akzeptabel ist, können gruppiert werden, damit sie weniger häufig verarbeitet werden können und die Gesamtsystembelastung reduziert wird.
Tabellen mit einer höheren Änderungsrate sollten kleineren Gruppen zugewiesen werden, und Tabellen mit einer niedrigen Änderungsrate können in größeren Gruppen gruppiert werden.
Die folgenden zwei Pakete werden für jede CDC-Gruppe erstellt:
Ein anfänglich geladenes Paket, das sämtliche Daten aus den Quelltabellen liest und auf die Zieltabellen anwendet.
Ein Trickle-Feed-Updatepaket, das Änderungen an den Quelltabellen liest und die Änderungen auf die Zieltabellen anwendet. Dieses Paket sollte regelmäßig anhand eines Zeitplans ausgeführt werden.
CDC-Status
Jeder CDC-Gruppe ist ein Status zugeordnet, der durch eine Zeichenfolge mit einem bestimmten Format dargestellt wird. Weitere Informationen finden Sie unter CDC-Steuerungsaufgabe. In der folgenden Tabelle sind die möglichen CDC-Statuswerte aufgeführt.
| Zustand | BESCHREIBUNG |
|---|---|
| 0-(INITIAL) | Der Status, bevor alle Pakete in der aktuellen CDC-Gruppe ausgeführt werden. Dieser Status liegt auch vor, wenn der CDC-Status leer ist. Weitere Informationen zu CDC-Steuerungstaskvorgängen finden Sie unter CDC-Steuerungstask. |
| 1-ILSTART (Initiales Laden gestartet) | Dies ist der Zustand, der besteht, wenn das anfängliche Ladepaket startet. Dieser Schritt erfolgt nach dem Aufruf des CDC-Steuerungstasks durch den MarkInitialLoadStart -Vorgang. Weitere Informationen zu CDC-Steuerungstaskvorgängen finden Sie unter CDC-Steuerungstask. |
| 2- ILEND (Initial-Ladevorgang-beendet) | Dies ist der Zustand, der besteht, wenn das initiale Ladepaket erfolgreich abgeschlossen wurde. Dieser Schritt erfolgt nach dem Aufruf des CDC-Steuerungstasks durch den MarkInitialLoadEnd-Vorgang. Weitere Informationen zu den Vorgängen der CDC-Control-Task finden Sie unter CDC-Control-Task. |
| 3-ILUPDATE (Anfängliches Ladeupdate) | Dies ist der Zustand, der nach der ersten Ausführung des Updatepakets nach dem initialen Laden besteht, während der initiale Verarbeitungsbereich noch verarbeitet wird. Dies geschieht nach dem Aufruf der Operation GetProcessingRange für die CDC-Steuerungsaufgabe. Wenn die _$reprocessing -Spalte verwendet wird, wird sie auf 1 festgelegt, um anzugeben, dass das Paket möglicherweise Zeilen erneut verarbeitet, die bereits im Ziel vorhanden sind. Weitere Informationen zu den Vorgängen der CDC Control Task finden Sie unter CDC Control Task. |
| 4-TFEND (Trickle-Feed-Update-Ended) | Dies ist der für reguläre CDC-Läufe erwartete Zustand. Er gibt an, dass die vorherige Ausführung erfolgreich abgeschlossen wurde und eine neue Ausführung mit einem neuen Verarbeitungsbereich gestartet werden kann. |
| 5-TFSTART (Trickle-Feed-Aktualisierung-gestartet) | Dies ist der Status, der bei nachfolgenden Ausführungen des Update-Pakets nach dem Aufruf des CDC-Steuerungstasks mit dem Vorgang GetProcessingRange vorliegt. Dies zeigt an, dass ein regulärer CDC-Lauf gestartet wurde, aber nicht abgeschlossen ist oder noch nicht ordnungsgemäß abgeschlossen wurde (MarkProcessedRange). Weitere Informationen zu CDC-Steuerungstaskvorgängen finden Sie unter CDC-Steuerungstask. |
| 6-TFREDO (Reprocessing-Trickle-Feed-Updates, Nachschubaktualisierungen in kleinen Mengen) | Der Status bei einem GetProcessingRange -Vorgang, der nach TFSTART stattfindet. Dies zeigt an, dass die vorherige Ausführung nicht erfolgreich abgeschlossen wurde. Wenn die __$reprocessing-Spalte verwendet wird, wird sie auf 1 festgelegt, um anzugeben, dass das Paket möglicherweise Zeilen erneut verarbeitet, die bereits im Ziel vorhanden sind. |
| 7-FEHLER | Die CDC-Gruppe befindet sich in einem Fehlerzustand. |
Hier ist das Statusdiagramm für die CDC-Komponenten. Ein Fehlerstatus liegt vor, wenn ein nicht erwarteter Status erreicht wird. Die erwarteten Status werden im folgenden Diagramm dargestellt. Das Diagramm zeigt jedoch nicht den Fehlerstatus an.
Wenn Sie am Ende eines anfänglich geladenen Pakets z. B. versuchen, den Status auf ILEND festzulegen, und der Status TFSTART lautet, befindet sich die CDC-Gruppe in einem Fehlerstatus, und das Trickle-Feed-Updatepaket wird nicht ausgeführt (das anfänglich geladene Paket wird ausgeführt).
Sobald das anfänglich geladene Paket erfolgreich ausgeführt wurde, wird das Trickle-Feed-Updatepaket nach einem zuvor festgelegten Zeitplan wiederholt ausgeführt, um Änderungen an den Quelltabellen zu verarbeiten. Jede Ausführung des Trickle-Feed-Updatepakets ist eine CDC-Ausführung.
In diesem Abschnitt
Verwandte Aufgaben
Verwandte Inhalte
- Installation von Microsoft SQL Server 2012 Change Data Capture für Oracle durch Attunity
- Fehlerbehebung von Konfigurationsproblemen in Microsoft Change Data Capture für Oracle durch Attunity
- Fehlerbehebung von CDC-Instanzfehlern in Microsoft Change Data Capture für Oracle durch Attunity
- CDC für Oracle-Datenbanken mit SQL Server Integration Services 2012 (SQL Server Video)
- CDC-Steuerungsaufgabe