Sdílet prostřednictvím


Kanál změn ve službě Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek

Kanál změn ve službě Azure Cosmos DB je trvalý záznam změn v kontejneru v pořadí, v jakém se změny vyskytují. Podpora kanálu změn ve službě Azure Cosmos DB funguje tím, že sleduje změny v kontejneru Azure Cosmos DB. Výstupem je pak seznam změněných dokumentů v pořadí podle času úprav. Trvalé změny je možné zpracovat asynchronně a přírůstkově a výstup lze distribuovat mezi jednoho nebo více příjemců pro paralelní zpracování.

Další informace najdete v tématu Vzory návrhu kanálu změn ve službě Azure Cosmos DB.

Podporovaná rozhraní API a klientské sady SDK

Funkce kanálu změn je aktuálně podporována v následujících sadách SDK služby Azure Cosmos DB.

Klientské ovladače NoSQL Apache Cassandra MongoDB Apache Gremlin Tabulka PostgreSQL
platforma .NET Ikona označující, že tato funkce je podporována v sadě .NET SDK pro rozhraní API for NoSQL. Ikona označující, že tato funkce je podporována v sadě .NET SDK pro rozhraní API pro Apache Cassandra. Ikona označující, že tato funkce je podporována v sadě .NET SDK pro rozhraní API pro MongoDB. Ikona označující, že tato funkce je podporována v sadě .NET SDK pro rozhraní API pro Apache Gremlin. Ikona označující, že tato funkce není podporována v sadě .NET SDK pro rozhraní API pro tabulku. Ikona označující, že tato funkce není podporována v sadě .NET SDK pro rozhraní API for PostgreSQL.
Java Ikona označující, že tato funkce je podporována v sadě Java SDK pro rozhraní API for NoSQL. Ikona označující, že tato funkce je podporována v sadě Java SDK pro rozhraní API pro Apache Cassandra. Ikona označující, že tato funkce je podporována v sadě Java SDK pro rozhraní API pro MongoDB. Ikona označující, že tato funkce je podporována v sadě Java SDK pro rozhraní API pro Apache Gremlin. Ikona označující, že tato funkce není podporována v sadě Java SDK pro rozhraní API pro tabulku. Ikona označující, že tato funkce není podporována v sadě Java SDK pro rozhraní API for PostgreSQL.
Python Ikona označující, že tato funkce je podporována v sadě Python SDK pro rozhraní API for NoSQL. Ikona označující, že tato funkce je podporována v sadě Python SDK pro rozhraní API pro Apache Cassandra. Ikona označující, že tato funkce je podporována v sadě Python SDK pro rozhraní API pro MongoDB. Ikona označující, že tato funkce je podporována v sadě Python SDK pro rozhraní API pro Apache Gremlin. Ikona označující, že tato funkce není podporována v sadě Python SDK pro rozhraní API pro tabulku. Ikona označující, že tato funkce není podporována v sadě Python SDK pro rozhraní API for PostgreSQL.
Node/JavaScript Ikona označující, že tato funkce je podporována v sadě JavaScript SDK pro rozhraní API for NoSQL. Ikona označující, že tato funkce je podporována v sadě JavaScript SDK pro rozhraní API pro Apache Cassandra. Ikona označující, že tato funkce je podporována v sadě JavaScript SDK pro rozhraní API pro MongoDB. Ikona označující, že tato funkce je podporována v sadě JavaScript SDK pro rozhraní API pro Apache Gremlin. Ikona označující, že tato funkce není podporována v sadě JavaScript SDK pro rozhraní API pro tabulku. Ikona označující, že tato funkce není podporována v sadě JavaScript SDK pro rozhraní API for PostgreSQL.

Práce se změnovým proudem

S informačním kanálem změn můžete pracovat pomocí následujících možností:

Kanál změn je k dispozici pro rozsahy klíčů rozdělení kontejneru Azure Cosmos DB. To umožňuje distribuci mezi jednoho nebo více příjemců pro paralelní zpracování, jak je znázorněno na následujícím obrázku.

Diagram znázorňující distribuované zpracování kanálu změn služby Azure Cosmos DB

Poznámka:

Rozsahy klíčů oddílů se mapují na fyzické oddíly při použití procesoru kanálu změn a při použití modelu vyžádané replikace.

Funkce kanálu změn

  • Kanál změn je ve výchozím nastavení povolený pro všechny účty služby Azure Cosmos DB.

  • Existuje několik režimů kanálu změn, z nichž některé vyžadují další konfiguraci k aktivaci.

  • Zřízenou propustnost můžete využít ke čtení z kanálu změn, stejně jako v případě ostatních operací služby Azure Cosmos DB v libovolné oblasti přidružené k vašemu účtu Azure Cosmos DB.

  • Kanál změn obsahuje operace vložení a aktualizace provedené u položek v kontejneru. Pokud používáte všechny verze a režim odstranění (Preview), získáte také změny z operací odstranění a vypršení platnosti hodnoty TTL.

  • Každá změna se v kanálu změn zobrazí přesně jednou a klienti musí spravovat logiku zaznamenávání kontrolních bodů. Pokud se chcete vyhnout složitosti správy kontrolních bodů, procesor kanálu změn poskytuje automatické kontrolování a sémantiku 'alespoň jednou'. Další informace najdete v tématu Procesor kanálu změn ve službě Azure Cosmos DB.

  • Změny jsou k dispozici paralelně pro rozsahy klíčů oddílů kontejneru Azure Cosmos DB. Tato funkce umožňuje více příjemcům zpracovávat změny z velkých kontejnerů paralelně.

  • Aplikace mohou požadovat více kanálů změn použitím libovolného režimu ve stejném kontejneru současně.

  • Výchozí bod kanálu změn lze přizpůsobit a pro každý režim jsou k dispozici různé možnosti.

Pořadí řazení položek v kanálu změn

Položky kanálu změn přicházejí v pořadí času úprav. Toto pořadí řazení je zaručené pro klíč oddílu, ale mezi hodnotami klíčů oddílu neexistuje žádné zaručené pořadí. Položky napsané v rozsahu transakční dávky, uložených procedur nebo požadavku na hromadný režim mají stejnou dobu úprav a změny v tomto rozsahu mohou být doručeny v libovolném pořadí.

Poznámka:

Pro účty s multiregionálním zápisem existují dvě časová razítka:

  • Epocha serveru, ve které byl záznam napsán v místní oblasti. To je zaznamenáno jako _ts.
  • Epocha, kdy byla potvrzena absence konfliktu, nebo byl konflikt vyřešen v centrální oblasti tohoto záznamu. To je zaznamenáno jako crts.

Položky kanálu změn přicházejí v pořadí zaznamenaném uživatelem crts.

Kanál změn v účtech Azure Cosmos DB ve více oblastech

V účtu Azure Cosmos DB ve více oblastech jsou změny v jedné oblasti dostupné ve všech oblastech. Pokud dojde k selhání oblasti zápisu, kanál změn je funkční během operace ručního převzetí služeb při selhání a je souvislý. U účtů s více oblastmi zápisu není zaručeno, kdy budou změny k dispozici. Příchozí změny ve stejném dokumentu můžou být vyřazeny v režimu nejnovější verze, pokud došlo k novější změně v jiné oblasti a všechny změny se zachytí ve všech verzích a režimu odstranění.

Změna režimů kanálu

K dispozici jsou dva režimy kanálu změn : režim nejnovější verze a všechny verze a režim odstranění . Režim, ve kterém se informační kanál změn čte, určuje, ze kterých operací se zachytávají změny, a metadata dostupná pro každou změnu. Kanál změn je možné využívat v různých režimech napříč více aplikacemi pro stejný kontejner Azure Cosmos DB.

Režim nejnovější verze

V režimu nejnovější verze kanálu změn uvidíte nejnovější změnu z vložení či aktualizace všech položek v kanálu a kanál je k dispozici pro celou dobu životnosti kontejneru. Neexistuje žádný údaj o tom, jestli daná změna pochází z operace vložení nebo aktualizace, a odstranění se nezachytí. Změny lze číst z libovolného bodu v čase až do okamžiku vzniku vašeho kontejneru. Pokud je ale položka odstraněna, odebere se z kanálu změn. Další informace naleznete v režimu změnového kanálu nejnovější verze.

Všechny verze a režim odstranění (Preview)

Režim všech verzí a odstranění umožňuje zobrazit všechny změny položek z vytváření, aktualizací a odstraňování. Získáte záznam o každé změně položek v pořadí, v jakém k ní došlo, včetně přechodných změn položky mezi jednotlivými čteními zdroje změn. Pokud chcete číst z kanálu změn ve všech verzích a režimu odstraňování, musíte mít nakonfigurované průběžné zálohy pro účet služby Azure Cosmos DB, který vytvoří databáze Azure Cosmos DB všechny verze a odstraní kanál změn. V tomto režimu můžete číst pouze změny, ke kterým došlo během období průběžného zálohování nakonfigurovaného pro účet. Další informace o tom, jak se zaregistrovat ve verzi Preview, najdete v článku o všech verzích a odstranění režimu kanálu změn.

Kanál změn v rozhraních API pro Cassandra a MongoDB

Funkce kanálu změn se zobrazí jako stream změn v rozhraní API pro MongoDB a dotazování s predikátem v rozhraní API for Cassandra. Další informace o podrobnostech implementace rozhraní API pro MongoDB najdete v datových proudech změn v rozhraní API služby Azure Cosmos DB pro MongoDB.

Nativní Apache Cassandra poskytuje zachytávání dat změn (CDC), mechanismus označení konkrétních tabulek pro archivaci a odmítnutí zápisů do těchto tabulek po dosažení konfigurovatelné velikosti na disku pro protokol CDC. Funkce kanálu změn ve službě Azure Cosmos DB pro Apache Cassandra vylepšuje schopnost dotazovat se na změny pomocí predikátu prostřednictvím jazyka CQL. Další informace o podrobnostech implementace najdete v kanálu změn ve službě Azure Cosmos DB pro Apache Cassandra.

Měření spotřeby jednotek žádostí změnového kanálu

Kanál změn je k dispozici v každém kontejneru bez ohledu na to, jestli se využívá. Jedinými náklady na kanál změn je zřízená propustnost kontejneru zapůjčení a jednotky žádostí (RU) pro každý požadavek. Pomocí služby Azure Monitor můžete měřit spotřebu RU kanálu změn. Další informace najdete v tématu Jak monitorovat propustnost nebo využití jednotky žádostí při operaci.

Další kroky

Teď můžete pokračovat a získat další informace o kanálu změn v následujících článcích: