Ř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ů:
- 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)
- 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í.