Změna zachytávání dat v analytickém úložišti Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB

Zachytávání dat změn (CDC) v analytickém úložišti Azure Cosmos DB umožňuje efektivně využívat průběžný a přírůstkový kanál změněných (vložených, aktualizovaných a odstraněných) dat z analytického úložiště. Bezproblémová integrace se službou Azure Synapse a Azure Data Factory poskytuje škálovatelné prostředí bez kódu pro velké objemy dat. Vzhledem k tomu, že funkce zachytávání dat změn je založená na analytickém úložišti, nevyužívají zřízené RU, neovlivňuje vaše transakční úlohy, poskytuje nižší latenci a má nižší celkové vlastnictví.

Funkce zachytávání dat změn v analytickém úložišti Azure Cosmos DB může zapisovat do různých jímek pomocí toku dat Azure Synapse nebo Azure Data Factory.

Diagram of the analytical store in Azure Cosmos DB and how it, with change data capture, can write to various first and third-party target services.

Další informace o podporovaných typech jímky v toku dat mapování najdete v tématu Podporované typy jímky toku dat.

Kromě poskytování přírůstkového datového kanálu z analytického úložiště do různorodých cílů podporuje zachytávání dat změn následující možnosti:

  • Podporuje zachytávání odstranění a průběžných aktualizací.
  • Možnost filtrovat informační kanál změn pro konkrétní typ operace (Vložit | hodnotu TTL pro odstranění | aktualizace) |
  • Podporuje použití filtrů, projekcí a transformací v kanálu změn prostřednictvím zdrojového dotazu.
  • Souběžné využití více kanálů změn ve stejném kontejneru
  • Každá změna v kontejneru se v informačním kanálu pro zachytávání dat změn zobrazuje přesně jednou a kontrolní body se spravují interně za vás.
  • Změny je možné synchronizovat "od začátku" nebo "z daného časového razítka" nebo "odteď".
  • Neexistuje žádné omezení týkající se pevného období uchovávání dat, pro které jsou k dispozici změny.

Efektivní přírůstkové zachytávání dat s interně spravovanými kontrolními body

Každá změna v kontejneru Cosmos DB se v informačním kanálu CDC zobrazí přesně jednou a kontrolní body se spravují interně za vás. To pomáhá řešit následující nevýhody běžného způsobu používání vlastních kontrolních bodů na základě hodnoty "_ts":

  • Filtr "_ts" se použije u datových souborů, což nezaručuje vždy minimální kontrolu dat. Interně spravované kontrolní body založené na GLSN v nové funkci CDC zajišťují, že se provádí přírůstková identifikace dat, a to pouze na základě metadat a zaručuje tak minimální kontrolu dat v každém datovém proudu.

  • Proces synchronizace analytického úložiště nezaručuje řazení založené na "_ts", což znamená, že může docházet k případům, kdy je "_ts" přírůstkového záznamu menší než poslední kontrolní bod "_ts" a v přírůstkovém datovém proudu by se mohlo vynechat. Nový CDC nepovažuje za účelem identifikace přírůstkových záznamů "_ts", a proto zaručuje, že se nezmešká žádný z přírůstkových záznamů.

Funkce

Změna zachytávání dat v analytickém úložišti Azure Cosmos DB podporuje následující klíčové funkce.

Zachycení změn od začátku

Start from beginning Při výběru této možnosti zahrnuje počáteční načtení úplný snímek dat kontejneru při prvním spuštění a změněná nebo přírůstková data se zaznamenávají v následných spuštěních. Tato vlastnost je omezená analytical TTL vlastností a dokumenty TTL odebrané z analytického úložiště nejsou zahrnuty do kanálu změn. Příklad: Představte si kontejner s nastaveným analytical TTL na 31536000 sekund, což odpovídá 1 rok. Pokud pro tento kontejner vytvoříte proces CDC, do počátečního načtení se zahrnou jenom dokumenty novější než 1 rok.

Zaznamenání změn z daného časového razítka

Start from timestamp Když je tato možnost vybraná, počáteční načtení zpracuje data z daného časového razítka a přírůstková nebo změněná data se zachytí v následných spuštěních. Tento proces je také omezen analytical TTL vlastností.

Zachytávání změn odteď

Start from timestamp Pokud je tato možnost vybraná, nezachytí se všechny předchozí operace kontejneru.

Zaznamenávání odstranění, průběžných aktualizací a seznamů TTL

Funkce zachytávání dat změn v analytickém úložišti zachycuje operace odstranění, průběžných aktualizací a operací TTL. Zachycené odstranění a aktualizace je možné použít u jímek, které podporují operace odstranění a aktualizace. Hodnota {_rid} jednoznačně identifikuje záznamy, takže zadáním sloupce {_rid} na straně jímky se operace aktualizace a odstranění projeví v jímce.

Všimněte si, že operace TTL se považují za odstranění. V části nastavení zdroje zkontrolujte podrobnosti o režimu a podporu průběžných aktualizací a odstraňování v jímkách.

Filtrování kanálu změn pro konkrétní typ operace

Kanál pro zachytávání dat změn můžete filtrovat pro konkrétní typ operace. Můžete například selektivně zachytit pouze operace vložení a aktualizace, a tím ignorovat operace odstranění uživatele a TTL-delete.

Použití filtrů, projekcí a transformací v kanálu změn prostřednictvím zdrojového dotazu

Volitelně můžete použít zdrojový dotaz k určení filtrů, projekcí a transformací, které by se všechny nasdílely do sloupcového analytického úložiště. Tady je ukázkový zdrojový dotaz, který by zaznamenával pouze přírůstkové záznamy s filtrem Category = 'Urban'. Tento ukázkový dotazuje pouze pět polí a použije jednoduchou transformaci:

SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c 
WHERE Category = 'Urban'

Několik procesů CDC

Můžete vytvořit několik procesů, které budou využívat CDC v analytickém úložišti. Tento přístup přináší flexibilitu pro podporu různých scénářů a požadavků. I když jeden proces nemusí mít žádné transformace dat a více jímek, druhý může obsahovat zploštěná data a jednu jímku. A můžou běžet paralelně.

Izolace propustnosti, nižší latence a nižší celkové náklady na vlastnictví

Operace v analytickém úložišti Cosmos DB nevyužívají zřízené ru, takže neovlivňují vaše transakční úlohy. Změna zachytávání dat v analytickém úložišti má také nižší latenci a nižší celkové vlastnictví. Nižší latence je přičítána analytickému úložišti, což umožňuje lepší paralelismus pro zpracování dat a snižuje celkové celkové náklady na vlastnictví, které vám umožní řídit efektivitu nákladů v těchto rychle se měnících ekonomických podmínkách.

Scénáře

Tady jsou běžné scénáře, ve kterých můžete použít zachytávání dat změn a analytické úložiště.

Využívání přírůstkových dat ze služby Cosmos DB

Pokud aktuálně používáte nebo plánujete použít zachytávání dat změn analytického úložiště, můžete použít:

  • Přírůstkové zachytávání dat pomocí služby Azure Data Factory Tok dat nebo aktivita Copy
  • Jednorázové dávkové zpracování pomocí Azure Data Factory
  • Streamování dat Cosmos DB
    • Analytické úložiště má až 2 minu latenci pro synchronizaci dat transakčního úložiště. V Azure Data Factory můžete naplánovat Tok dat každou minutu.
    • Pokud potřebujete streamovat bez výše uvedené latence, doporučujeme použít funkci kanálu změn v transakčním úložišti.
  • Zachytávání odstranění, přírůstkových změn a použití filtrů na data Cosmos DB
    • Pokud používáte triggery Azure Functions nebo jakoukoli jinou možnost s kanálem změn a chcete zachytit odstranění, přírůstkové změny, použít transformace atd.; doporučujeme změnit zachytávání dat v analytickém úložišti.

Přírůstkové informační kanály do analytické platformy podle vašeho výběru

Funkce zachytávání dat změn umožňuje komplexní analytické řešení, které poskytuje flexibilitu při používání dat Azure Cosmos DB s libovolnými podporovanými typy jímky. Další informace o podporovaných typech jímky najdete v tématu Podporované typy jímky toku dat. Zachytávání dat změn také umožňuje přenést data Azure Cosmos DB do centralizovaného datového jezera a spojit je s daty z jiných různorodých zdrojů. Data můžete zploštět, rozdělit na oddíly a použít další transformace buď ve službě Azure Synapse Analytics, nebo ve službě Azure Data Factory.

Změna zachytávání dat v kontejnerech Azure Cosmos DB pro MongoDB

Rozhraní propojené služby pro rozhraní API pro MongoDB zatím není dostupné v tocích dat Azure Data Factory. Koncové body účtu rozhraní API pro MongoDB můžete použít s propojeným rozhraním propojené služby Azure Cosmos DB for NoSQL , dokud nebude přímo podporovaná propojená služba Mongo.

V rozhraní nové propojené služby NoSQL vyberte Zadat ručně a zadejte informace o účtu služby Azure Cosmos DB. Tady použijte koncový bod dokumentu NoSQL účtu (příklad: https://<account-name>.documents.azure.com:443/) místo koncového bodu Mongo DB (příklad: mongodb://<account-name>.mongo.cosmos.azure.com:10255/)

Další kroky