Problembehandlung bei der Change Data Capture-Ressource in Azure Data Factory
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
Dieser Artikel enthält Vorschläge zur Problembehandlung mit der Change Data Capture-Ressource in Azure Data Factory.
Problem: Fehler beim Aktivieren von nativem CDC in meiner SQL-Quelle.
Für Quellen in SQL sind zwei Tabellensätze verfügbar: Tabellen mit nativer SQL CDC-Aktivierung und Tabellen mit zeitbasierten inkrementellen Spalten.
Führen Sie die folgenden Schritte aus, um natives CDC für eine bestimmte Quelltabelle in Ihrer SQL-Datenbank zu konfigurieren.
Stellen Sie sich die folgende Tabelle mit der ID als Primärschlüssel vor. Wenn im Schema ein Primärschlüssel vorhanden ist, wird supports_net_changes standardmäßig auf TRUE festgelegt. Wenn nicht, konfigurieren Sie es mithilfe des Skripts in Abfrage 3.
Abfrage 1
CREATE TABLE Persons (
ID int,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Last_login DATETIME,
PRIMARY KEY (ID));
Hinweis
Derzeit lädt die ADF-CDC-Ressource nur Nettoänderungen für Einfüge-, Update- und Löschvorgänge.
Führen Sie die folgende Abfrage aus, um CDC auf Datenbankebene zu aktivieren:
Abfrage 2
EXEC sys.sp_cdc_enable_db
Führen Sie die folgende Abfrage aus, um CDC auf Tabellenebene zu aktivieren:
Abfrage 3
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo'
, @source_name = N'Persons'
, @role_name = N'cdc_admin'
, @supports_net_changes = 1
, @captured_column_list = N'ID';
Problem: Tabellen können im CDC-Ressourcenkonfigurationsprozess nicht ausgewählt werden.
Wenn ihre SQL-Quelle nicht über SQL Server CDC mit aktivierter net_changed verfügt oder keine zeitbasierten inkrementellen Spalten enthält, sind die Tabellen in Ihrer Quelle für die Auswahl nicht verfügbar.
Problem: Der Debugcluster ist in einem aktiven Pool nicht verfügbar.
Der Debugcluster ist in einem aktiven Pool nicht verfügbar. Es wird eine Wartezeit von mindestens 1 Minute geben.
Problem: Probleme beim Nachverfolgen von Löschvorgängen.
Derzeit unterstützt CDC-Ressource Löschvorgänge für folgende Senkentypen – Azure SQL-Datenbank & Delta. Wählen Sie dazu auf der Seite „Spaltenzuordnung“ die Spalte Schlüssel aus, mit der ermittelt werden kann, ob eine Zeile aus der Quelle mit einer Zeile in der Senke übereinstimmt.
Problem: Meine CDC-Ressource verursacht Fehler, wenn die SQL-Zieltabelle Identitätsspalten enthält.
Sie erhalten den folgenden Fehler beim Ausführen eines CDC, wenn die Tabelle in Ihrer Zielsenke Identitätsspalten enthält.
Es kann kein expliziter Wert für die Identitätsspalte in der Tabelle „Tabellenname“ eingefügt werden, wenn IDENTITY_INSERT auf OFF festgelegt ist.
Führen Sie die folgende Abfrage aus, um zu ermitteln, ob Ihr SQL-Ziel eine Identitätsspalte enthält.
Abfrage 4
SELECT *
FROM sys.identity_columns
WHERE OBJECT_NAME(object_id) = 'TableName'
Führen Sie einen der folgenden Schritte aus, um dieses Problem zu beheben:
- Legen Sie IDENTITY_INSERT auf ON fest, indem Sie die folgende Abfrage auf Datenbankebene ausführen, und führen Sie dann die CDC-Zuordnung erneut aus.
Abfrage 5
SET IDENTITY_INSERT dbo.TableName ON;
(Oder)
- Sie können die jeweilige Identitätsspalte auch während der Einfügevorgänge aus der Zuordnung entfernen.
Problem: Probleme bei der Verwendung der selbstgehosteten Integration Runtime.
Derzeit wird die selbstgehostete Integration Runtime in der CDC-Ressource nicht unterstützt. Wenn Sie eine Verbindung mit einer lokalen Quelle herstellen wollen, verwenden Sie Azure Integration Runtime mit verwaltetem virtuellen Netzwerk.