Delen via


Problemen met de resource change data capture in Azure Data Factory oplossen

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Dit artikel bevat suggesties voor het oplossen van veelvoorkomende problemen met de resource voor het vastleggen van wijzigingengegevens in Azure Data Factory.

Probleem: Problemen met het inschakelen van systeemeigen CDC in mijn SQL-bron.

Voor bronnen in SQL zijn twee sets tabellen beschikbaar: tabellen waarvoor systeemeigen SQL CDC is ingeschakeld en tabellen met incrementele kolommen op basis van tijd.

Volg deze stappen om systeemeigen CDC te configureren voor een specifieke brontabel in uw SQL-database.

Houd er rekening mee dat u de volgende tabel hebt, met id als primaire sleutel. Als een primaire sleutel aanwezig is in het schema, wordt supports_net_changes standaard ingesteld op true. Zo niet, configureert u het met behulp van het script in Query 3.

Query 1


CREATE TABLE Persons (
	ID int,
	LastName varchar(255) NOT NULL,
	FirstName varchar(255),
	Age int,
	Last_login DATETIME,
    	PRIMARY KEY (ID));

Notitie

Momenteel laadt de ADF CDC-resource alleen nettowijzigingen voor invoeg-, update- en verwijderbewerkingen.

Als u CDC wilt inschakelen op databaseniveau, voert u de volgende query uit:

Query 2

EXEC sys.sp_cdc_enable_db

Als u CDC wilt inschakelen op tabelniveau, voert u de volgende query uit:

Query 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';

Probleem: tabellen zijn niet beschikbaar om te selecteren in het configuratieproces voor CDC-resources.

Als uw SQL-bron geen SQL Server CDC met net_changed ingeschakeld of geen incrementele kolommen op basis van tijd heeft, zijn de tabellen in uw bron niet beschikbaar voor selectie.

Probleem: het foutopsporingscluster is niet beschikbaar vanuit een warme pool.

Het foutopsporingscluster is niet beschikbaar vanuit een warme pool. Er is een wachttijd in de volgorde van 1+ minuten.

Probleem: Problemen bij het bijhouden van verwijderbewerkingen.

Momenteel biedt CDC-resource ondersteuning voor verwijderbewerkingen voor de volgende sinktypen: Azure SQL Database & Delta. Als u dit wilt bereiken op de kolomtoewijzingspagina, selecteert u de sleutelskolom die kan worden gebruikt om te bepalen of een rij uit de bron overeenkomt met een rij uit de sink. 

Probleem: Mijn CDC-resource mislukt wanneer de doel-SQL-tabel identiteitskolommen bevat.

Volgende fout bij het uitvoeren van een CDC wanneer uw doelsinktabel identiteitskolommen bevat,

Kan geen expliciete waarde invoegen voor de identiteitskolom in de tabel TableName wanneer IDENTITY_INSERT is ingesteld op UIT.

Voer de volgende query uit om te bepalen of u een identiteitskolom in uw SQL-doel hebt.

Query 4

SELECT * 
FROM sys.identity_columns 
WHERE OBJECT_NAME(object_id) = 'TableName'

Ga als volgt te werk om deze gebruiker op te lossen:

  1. Stel IDENTITY_INSERT in op AAN door de volgende query uit te voeren op databaseniveau en de CDC Mapper opnieuw uit te voeren

Query 5

SET IDENTITY_INSERT dbo.TableName ON; 

(Of)

  1. Gebruiker kan de specifieke identiteitskolom verwijderen uit de toewijzing tijdens het uitvoeren van invoegingen.

Probleem: Problemen met het gebruik van zelf-hostende Integration Runtime.

Momenteel wordt zelf-hostende Integration Runtime niet ondersteund in de CDC-resource. Als u verbinding probeert te maken met een on-premises bron, gebruikt u Azure Integration Runtime met een beheerd virtueel netwerk.