Dela via


Felsöka resursen Ändra datainsamling i Azure Data Factory

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln innehåller förslag på hur du felsöker vanliga problem med resursen för insamling av ändringsdata i Azure Data Factory.

Problem: Problem med att aktivera inbyggd CDC i min SQL-källa.

För källor i SQL är två uppsättningar tabeller tillgängliga: tabeller med inbyggd SQL CDC aktiverad och tabeller med tidsbaserade inkrementella kolumner.

Följ de här stegen för att konfigurera intern CDC för en specifik källtabell i sql-databasen.

Tänk på att du har följande tabell med ID som primärnyckel. Om det finns en primärnyckel i schemat är supports_net_changes inställd på true som standard. Om inte konfigurerar du det med hjälp av skriptet i Fråga 3.

Fråga 1


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

Kommentar

För närvarande läser ADF CDC-resursen endast in nettoändringar för infognings-, uppdaterings- och borttagningsåtgärder.

Kör följande fråga för att aktivera CDC på databasnivå:

Fråga 2

EXEC sys.sp_cdc_enable_db

Kör följande fråga för att aktivera CDC på tabellnivå:

Fråga 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: Tabeller är inte tillgängliga att välja i CDC-resurskonfigurationsprocessen.

Om SQL-källan inte har SQL Server CDC med net_changed aktiverad eller inte har några tidsbaserade inkrementella kolumner är tabellerna i källan inte tillgängliga för val.

Problem: Felsökningsklustret är inte tillgängligt från en varm pool.

Felsökningsklustret är inte tillgängligt från en varm pool. Det kommer att finnas en väntetid i storleksordningen 1+ minuter.

Problem: Problem med att spåra borttagningsåtgärder.

Cdc-resursen stöder för närvarande borttagningsåtgärder för följande mottagartyper – Azure SQL Database och Delta. För att uppnå detta på kolumnmappningssidan väljer du den kolumn för nycklar som kan användas för att avgöra om en rad från källan matchar en rad från mottagaren. 

Problem: Min CDC-resurs misslyckas när SQL-måltabellen har identitetskolumner.

Följande fel uppstår vid körning av en CDC när målmottagaretabellen har identitetskolumner,

Det går inte att infoga explicit värde för identitetskolumnen i tabellen "TableName" när IDENTITY_INSERT är inställt på OFF.

Kör följande fråga för att avgöra om du har en identitetskolumn i ditt SQL-baserade mål.

Fråga 4

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

Du kan lösa problemet genom att följa något av följande steg:

  1. Ange IDENTITY_INSERT till PÅ genom att köra följande fråga på databasnivå och köra CDC Mapper igen

Fråga 5

SET IDENTITY_INSERT dbo.TableName ON; 

(Eller)

  1. Användaren kan ta bort den specifika identitetskolumnen från mappningen när infogningar utförs.

Problem: Problem med att använda lokalt installerad integrationskörning.

För närvarande stöds inte lokalt installerad integrationskörning i CDC-resursen. Om du försöker ansluta till en lokal källa använder du Azure Integration Runtime med hanterat virtuellt nätverk.