Sdílet prostřednictvím


Řešení potíží s prostředkem change data capture ve službě Azure Data Factory

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek obsahuje návrhy, jak řešit běžné problémy s prostředkem pro zachytávání dat změn ve službě Azure Data Factory.

Problém: Potíže s povolením nativního CDC ve zdroji SQL

Pro zdroje v SQL jsou k dispozici dvě sady tabulek: tabulky s nativními funkcemi SQL CDC a tabulky s přírůstkovými sloupci založenými na čase.

Podle těchto kroků nakonfigurujte nativní CDC pro konkrétní zdrojovou tabulku v databázi SQL.

Zvažte, že máte následující tabulku s ID jako primárním klíčem. Pokud je ve schématu k dispozici primární klíč, supports_net_changes je ve výchozím nastavení nastavena na true. Pokud ne, nakonfigurujte ho pomocí skriptu v dotazu 3.

Dotaz 1


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

Poznámka:

V současné době prostředek ADF CDC načítá čisté změny pouze pro operace vložení, aktualizace a odstranění.

Pokud chcete povolit CDC na úrovni databáze, spusťte následující dotaz:

Dotaz 2

EXEC sys.sp_cdc_enable_db

Pokud chcete povolit CDC na úrovni tabulky, spusťte následující dotaz:

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

Problém: Tabulky nejsou k dispozici pro výběr v procesu konfigurace prostředků CDC.

Pokud váš zdroj SQL nemá cdC SQL Serveru s povoleným net_changed nebo nemá žádné přírůstkové sloupce založené na čase, nebudou tabulky ve zdroji dostupné pro výběr.

Problém: Ladicí cluster není k dispozici z teplého fondu.

Ladicí cluster není dostupný z teplého fondu. Doba čekání bude v intervalu 1 až 1 minut.

Problém: Problémy se sledováním operací odstranění

V současné době prostředek CDC podporuje operace odstranění pro následující typy jímek – Azure SQL Database & Delta. Chcete-li toho dosáhnout na stránce mapování sloupců, vyberte sloupec klíčů , který lze použít k určení, zda řádek ze zdroje odpovídá řádku z jímky. 

Problém: Prostředek CDC selže, když cílová tabulka SQL obsahuje sloupce identity.

Při spuštění CDC dochází k následující chybě, pokud má cílová tabulka jímky sloupce identit.

Nelze vložit explicitní hodnotu pro sloupec identity v tabulce TableName, pokud je IDENTITY_INSERT nastavena na VYPNUTO.

Spuštěním následujícího dotazu určete, jestli máte ve svém cíli založeném na SQL sloupec identity.

Dotaz 4

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

Pokud chcete tento uživatel vyřešit, může postupovat podle některého z těchto kroků:

  1. Nastavte IDENTITY_INSERT na ZAPNUTO spuštěním následujícího dotazu na úrovni databáze a opětovným spuštěním mapovacího nástroje CDC

Dotaz 5

SET IDENTITY_INSERT dbo.TableName ON; 

(Nebo)

  1. Uživatel může odebrat konkrétní sloupec identity z mapování při vkládání.

Problém: Potíže s používáním místního prostředí Integration Runtime

V současné době se v prostředku CDC nepodporuje místní prostředí Integration Runtime. Pokud se pokoušíte připojit k místnímu zdroji, použijte prostředí Azure Integration Runtime se spravovanou virtuální sítí.