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.
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/
)