Komponenty toku CDC
platí pro:SQL Server SSIS Integration Runtime ve službě Azure Data Factory
Důležitý
Součásti toku CDC, včetně úlohy řízení CDC, zdroje CDC a rozdělovače CDC, jsou zastaralé. Podrobnosti najdete v oznámení.
Komponenty Change Data Capture od Společnosti Attunity pro Microsoft SQL Server 2019 Integration Services (SSIS) pomáhají vývojářům SSIS pracovat s CDC a snížit složitost balíčků CDC.
Komponenty SSIS CDC jsou navržené tak, aby fungovaly s funkcí CDC SQL Serveru, kde jsou zdrojové tabulky buď stejnou databází SQL Serveru, nebo databází Oracle (při použití služby Oracle CDC pro SQL Server). Rozdělené tabulky jsou podporovány.
Součástí součástí jsou komponenty řízení a toku dat, které zjednodušují čtení a zpracování dat změn v balíčcích SSIS. Komponenty lze přidat do knihovny komponent v Microsoft SQL Serveru, ale jsou nainstalovány samostatně.
Následující jsou komponenty Change Data Capture od společnosti Attunity:
Řídící komponent toku CDC:
komponent toku dat CDC:
Instalace
Tato část popisuje postupy instalace komponent CDC pro Microsoft SQL Server 2019 Integration Services (SSIS).
Komponenty CDC pro SSIS jsou zabalené s Návrhářem a službou Microsoft Change Data Capture pro Oracle od společnosti Attunity pro SQL Server. Tento soubor ke stažení je součástí sady SQL Server Feature Pack. Stáhněte součásti Feature Packu z webové stránky SQL Server 2016 Feature Pack.
Podpora verzí
Podpora verzí SQL Serveru
Komponenty CDC pro SSIS jsou podporovány ve všech podporovaných verzích Microsoft SQL Serveru. Podporované verze SQL Serveru v současné době zahrnují SQL Server 2012 až SQL Server 2017.
Podpora verzí operačního systému
Komponenty CDC pro SSIS jsou podporovány na následujících operačních systémech a platformách:
- Windows 8 a 8.1
- Windows 10
- Windows Server 2012 a 2012 R2
- Windows Server 2016
Spuštění instalačního programu
Než spustíte průvodce instalací, ujistěte se, že jsou sql Server SQL Server Data Tools zavřené. Pak postupujte podle pokynů průvodce instalací.
Restartování služby SSIS
Po instalaci komponent CDC je nutné restartovat službu SSIS, abyste měli jistotu, že součásti při vývoji balíčků v sql SQL Server Data Tools správně fungují.
Po instalaci komponent se zobrazí zpráva. Po zobrazení výzvy klikněte na Ano.
Odinstalace komponent Microsoft CDC
Zdroj CDC, rozdělovač CDC nebo úlohu ovládacího prvku CDC odinstalujte pomocí průvodce odinstalací. Pokud používáte SQL Server SQL Server Data Tools pro vývoj balíčků, před spuštěním průvodce odinstalací se ujistěte, že jsou nástroje SQL Server Data Tools zavřené.
Výhody
Komponenty CDC pro součásti služby SQL Server Integration Services umožňují vývojářům SSIS snadno vytvářet balíčky SSIS, které zpracovávají data změn. Tyto komponenty zlepšují schopnost vývojářů SSIS zabývat se CDC a snižují složitost balíčků CDC.
Komponenty SSIS CDC slouží k poskytování dat změn způsobem, který je snadno zpracovat pro replikaci, načítání datového skladu, aktualizaci pomalu se měnících dimenzí pro OLAP, auditování změn nebo pro další možná použití. Typ dalšího zpracování určuje vývojář SSIS.
Komponenty SSIS CDC jsou navržené tak, aby fungovaly s funkcí CDC SQL Serveru s tabulkami změn, které jsou ve stejné databázi SQL Serveru.
Začínáme s komponentami zachycení změn dat
Typický balíček CDC zpracovává změny ve skupině tabulek. Základní část toku řízení tohoto typu balíčku CDC je znázorněna na následujícím obrázku. Tento balíček se nazývá balíček zpracování trikle-feed.
Tento tok řízení integračních služeb SQL Serveru obsahuje dva úlohy řízení CDC a úlohu toku dat. První úloha s názvem Get CDC Processing Range vytvoří rozsah LSN pro změny zpracovávané v úloze toku dat s názvem Process Changes. Tento rozsah je stanoven na základě zpracovaných údajů při posledním spuštění balíčku a uložených v trvalém úložišti.
Další informace o používání řídicí úlohy CDC naleznete v tématu řídicí úloha CDC a Editor řídicí úlohy CDC.
Následující obrázek znázorňuje Proces změny toku dat, který koncepčně ukazuje, jak se změny zpracovávají.
Kroky znázorněné na tomto obrázku jsou:
Změny pro tabulku X je zdroj CDC, který přečte změny provedené v tabulce X během zpracování v rozsahu CDC, který je určen v nadřazeném toku řízení.
CDC Splitter X slouží k rozdělení změn na vložení, odstranění a aktualizace. V tomto scénáři se předpokládá, že zdroj CDC je nakonfigurovaný tak, aby vytvářel čisté změny, aby bylo možné zpracovávat různé typy změn paralelně.
Konkrétní změny se pak dále zpracovávají v podřízené části. Na tomto obrázku se změny vloží do tabulek pomocí více cílů ODBC, ale ve skutečných případech se zpracování může lišit.
Další informace o zdroji CDC najdete tady:
Editor zdrojů CDC (stránka Správce připojení)
Editor zdrojového kódu CDC (stránka sloupců)
Editor zdrojů CDC (Stránka výstupu chyby)
Další informace o rozdělovači CDC najdete tady:
Jedním ze základních problémů, které vyžadují pozornost při vytváření balíčků CDC, je způsob, jakým zpracování změn komunikuje s počátečním načítáním (nebo počátečním zpracováním) dat.
Komponenty CDC podporují tři různé scénáře počátečního načítání a zpracování změn:
Počáteční načítání se provádí se snímkem databáze. V tomto případě zpracování změn začíná LSN události snímku.
Počáteční načítání z klidné databáze. V tomto případě se během počátečního načítání neprovedou žádné změny, takže aktuální LSN je odebrán v určitém okamžiku během počátečního načítání a zpracování změn začíná tímto LSN.
Počáteční načítání z aktivní databáze. V takovém případě, protože probíhá počáteční načtení, se změny v databázi provádějí a neexistuje žádný jediný LSN, ze kterého může být zpracování změn přesně zahájeno. V tomto případě může vývojář počátečního balíčku pro načtení odebrat vzorek aktuálního stavu LSN ze zdrojové databáze před a po počátečním načtení. Při zpracování změn je potřeba být opatrný při zpracování změn prováděných paralelně s počátečním načtením, protože některé z provedených změn jsou již součástí počátečního načtení (například může u vložené změny dojít k chybě duplicitního klíče, protože vložený řádek byl načten procesem počátečního načítání).
Následující obrázek znázorňuje balíček SSIS, který by mohl zpracovat první dva scénáře:
Následující obrázek znázorňuje balíček SSIS, který by mohl zpracovat třetí scénář:
Po načtení počátečního balíčku se balíček průběžných aktualizací opakovaně spouští podle plánu ke zpracování změn, jakmile jsou dostupné ke spotřebě.
Předání stavu zpracování CDC z počátečního balíčku načítání do balíčku postupného napájení a mezi různými úlohami v rámci každého balíčku probíhá prostřednictvím speciální proměnné řetězce SSIS balíčku. Hodnota této proměnné se označuje jako stav CDC, který odráží aktuální stav zpracování CDC pro skupiny tabulek spravované počátečním načítáním a postupným aktualizačním balíčkem.
Hodnota proměnné stavu CDC musí být udržována v trvalém úložišti. Před spuštěním zpracování CDC by měla být přečtená a po dokončení zpracování by se měla uložit s aktuálním stavem. Úloha načítání a ukládání stavu CDC může zpracovat vývojář služby SSIS, ale komponenta ŘÍZENÍ CDC může tuto úlohu automatizovat udržováním hodnoty stavu CDC v tabulce databáze.
Důležité informace o zabezpečení
Tato část uvádí některé aspekty zabezpečení související s používáním komponent CDC ve službě SSIS.
Autorizace přístupu ke změně dat
Balíčky aktualizací trickle-feed potřebují přístup k funkcím CDC SQL Serveru. Tento přístup je standardně udělen členům db_owner pevné databázové role. Vzhledem k tomu, že db_owner je výkonná role, doporučujeme při definování instancí zachycení v RÁMCI SQL Serveru přidružit roli zabezpečení ke každé instanci zachycení, která umožňuje balíčku SSIS CDC používat mnohem omezenějšího uživatele ke zpracování změn.
Přístup k databázi CDC – aktuální LSN
Operace úkolů řízení CDC pro určení počátku LSN pro zpracování změn musí být schopny najít aktuální LSN databáze CDC. Komponenty najdou LSN pomocí postupu sp_replincrementlsn z hlavní databáze. Oprávnění ke spuštění tohoto postupu musí být uděleno přihlašovacímu jménu použitému pro připojení k databázi SQL Server CDC.
Přístup k tabulce stavů CDC
Tabulka STAVŮ CDC slouží k automatickému zachování stavů CDC, které musí být aktualizovatelné přihlášením použitým pro připojení k databázi CDC SQL Serveru. Vzhledem k tomu, že tuto tabulku vytvořil vývojář SSIS, nastavte správce systému SQL Server jako uživatele, který má oprávnění vytvářet databáze SQL Serveru a provádět úlohy správy a údržby. Kromě toho musí mít správce systému SQL Server, který pracuje s databázemi s podporou CDC, znalosti o technologii a implementaci SQL Serveru CDC.
Seskupení tabulek pro zpracování CDC
Databázové projekty mají velikost od několika tabulek až po mnoho tisíc tabulek. Při navrhování počátečního zatížení a balíčků CDC je vhodné seskupit tabulky v mnohem menších skupinách, aby se usnadnila správa a efektivita. V této části jsou uvedeny různé aspekty, které mají vliv na řazení tabulek do malých skupin, kde se tabulky v jednotlivých skupinách zpočátku načtou a pak se aktualizují jako skupina.
Vzory CDC podporované komponentami CDC předpokládají, že toto seskupení je již určeno. Každá skupina definuje samostatný kontext CDC, který se udržuje odděleně od ostatních skupin. Pro každou skupinu se vytvoří balíčky aktualizací pro počáteční nahrání a postupné doplňování dat. Aktualizace kanálu Trickle jsou naplánované pro pravidelná spuštění na základě míry omezení zpracování změn (například využití procesoru a vstupně-výstupních operací, dopadu na jiné systémy) a požadované latence.
Tabulky jsou seskupené na základě následujících aspektů:
Podle cílové databáze. Všechny tabulky, které jsou zapsány do různých cílových databází nebo procházejí jiným zpracováním, by měly být přiřazeny různým skupinám CDC.
Tabulky, které souvisejí s omezeními referenční integrity, by měly být přiřazeny stejné skupině, aby nedocházelo k problémům referenční integrity v cíli.
Tabulky, u kterých je možné tolerovat vyšší latenci, je možné seskupit, aby je bylo možné zpracovávat méně často a snižovat celkové zatížení systému.
Tabulky, u kterých existuje vyšší míra změn, by měly být v menších skupinách a tabulky s nízkou mírou změn je možné seskupit ve větších skupinách.
Pro každou skupinu CDC se vytvoří následující dva balíčky:
Balíček počátečního načtení, který čte celý rozsah dat ze zdrojových tabulek a použije ho na cílové tabulky.
Balíček aktualizací s postupným přenosem dat, který zaznamenává změny provedené ve zdrojových tabulkách a aplikuje je na cílové tabulky. Tento balíček by se měl spouštět pravidelně podle plánu.
Stav organizace CDC
Každá skupina CDC má přidružený stav, který je reprezentován řetězcem s určitým formátem. Další informace najdete v tématu úlohy řízení CDC . Následující tabulka uvádí možné hodnoty stavu CDC.
Stát | Popis |
---|---|
0–(POČÁTEČNÍ) | Stav, který existuje před spuštěním všech balíčků v aktuální skupině CDC. To je také stav, kdy je stav CDC prázdný. Další informace o operacích úloh řízení CDC naleznete v tématu úlohy řízení CDC. |
1-ILSTART (Initial-Load-Started) | Jedná se o stav, který existuje při spuštění počátečního balíčku pro načtení. K tomu dochází po volání operace MarkInitialLoadStart úlohy řízení CDC. Další informace o operacích úloh řízení CDC naleznete v tématu úlohy řízení CDC. |
2- ILEND (počáteční-Load-Ended) | Jedná se o stav, který existuje, když počáteční balíček načítání úspěšně skončí. K tomu dochází po volání operace MarkInitialLoadEnd v rámci kontrolního úkolu CDC. Další informace o operacích úloh řízení CDC naleznete v tématu úlohy řízení CDC. |
3-ILUPDATE (počáteční aktualizace dat načtení) | Jedná se o stav, který existuje po prvním spuštění balíčku aktualizace po počátečním načtení, zatímco stále zpracovává počáteční rozsah zpracování. K tomu dochází po volání operace GetProcessingRange úlohy ovládacího prvku CDC. Pokud používáte sloupec _$reprocesing, nastaví se hodnota 1, která označuje, že balíček může znovu zpracovat řádky již v cíli. Další informace o operacích úloh řízení CDC naleznete v tématu úlohy řízení CDC. |
4-TFEND (Trickle-Feed-Update-Ended) | Jedná se o očekávaný stav pro běžné spuštění CDC. Označuje, že předchozí spuštění bylo úspěšně dokončeno a že je možné spustit nové spuštění s novým rozsahem zpracování. |
5-TFSTART (Trickle-Feed-Update-Started) | Jedná se o stav, který vzniká při následných spuštěních balíčku aktualizace po volání operace GetProcessingRange ke CDC řízení úlohy. To znamená, že je spuštěno běžné spuštění procesu CDC, ale není dokončeno nebo ještě není dokončeno bez problémů (MarkProcessedRange). Další informace o operacích úloh řízení CDC naleznete v tématu úlohy řízení CDC. |
6-TFREDO (Přepracování-Trickle-Feed-Updates) | Toto je stav GetProcessingRange, ke kterému dochází po TFSTART. To znamená, že předchozí spuštění nebylo úspěšně dokončeno. Pokud používáte sloupec __$reprocessing, nastaví se na hodnotu 1, aby to označovalo, že balíček může znovu zpracovat řádky, které jsou již v cíli. |
7-ERROR | Skupina CDC je ve stavu CHYBA. |
Tady je stavový diagram komponent CDC. Stav CHYBY se dosáhne, když dojde k dosažení stavu, který není očekávaný. Očekávané stavy jsou znázorněny v následujícím diagramu. Diagram ale nezobrazuje stav ERROR.
Například na konci počátečního načítacího balíčku, když se pokoušíte nastavit stav na ILEND, pokud je stav TFSTART, je skupina CDC v chybovém stavu a balíček Trickle-Feed Update se nespustí (počáteční načítací balíček se spustí).
Po úspěšném spuštění balíčku počátečního načtení se balíček Trickle-Feed Update spustí opakovaně pod předem určeným plánem pro zpracování změn ve zdrojových tabulkách. Každé spuštění balíčku Trickle-Feed Update je spuštění CDC.
V této části
Související úkoly
Související obsah
Technický článek, Instalace Microsoft SQL Server 2012, Change Data Capture for Oracle by Attunity, na social.technet.microsoft.com.
Technický článek, Řešení potíží s konfigurací v nástroji Microsoft Change Data Capture for Oracle by Attunity, na social.technet.microsoft.com.
Technický článek, Řešení chyb instance CDC v nástroji Microsoft Change Data Capture pro Oracle by Attunity, na social.technet.microsoft.com.
Video, CDC pro databáze Oracle pomocí SQL Server Integration Services 2012 (SQL Server Video), na technet.microsoft.com.