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 k nim dochází. Podpora kanálu změn ve službě Azure Cosmos DB funguje díky naslouchání změnám 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í.

Přečtěte si další informace o vzorech návrhu kanálu změn.

Podporovaná rozhraní API a klientské sady SDK

Funkce kanálu změn se v současné době podporuje v následujících sadách SDK služby Azure Cosmos DB.

Klientské ovladače NoSQL Apache Cassandra MongoDB Apache Gremlin Tabulka PostgreSQL
.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 s kanálem změn

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

Kanál změn je k dispozici pro rozsahy klíčů oddílů 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 obrázku níže.

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 FeedRanges 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 pro povolení.

  • Zřízenou propustnost můžete použít ke čtení z kanálu změn, stejně jako jakékoli jiné operace Azure Cosmos DB, v libovolné oblasti přidružené k vašemu účtu služby 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 vytváření kontrolních bodů. Pokud se chcete vyhnout složitosti správy kontrolních bodů, procesor kanálu změn poskytuje automatické sémantiky kontrolních bodů a sémantiku "alespoň jednou". Další informace najdete v článku o použití kanálu změn s procesorem kanálu změn.

  • 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 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í jejich času úpravy. Toto pořadí řazení je zaručené pro klíč oddílu a v hodnotách klíče oddílu neexistuje žádné zaručené pořadí.

Poznámka:

U účtů pro zápis do více oblastí 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 převzetí služeb při selhání oblasti zápisu, kanál změn funguje v rámci 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ěnit režimy informačního 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 kanálu změn nejnovější verze uvidíte nejnovější změnu z vložení nebo aktualizace všech položek v informačním kanálu a informační kanál je k dispozici pro životnost 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 se dají číst z libovolného bodu v čase, pokud jde o původ kontejneru. Pokud se ale položka odstraní, odebere se z kanálu změn. Další informace najdete v článku o nejnovější verzi režimu kanálu změn.

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 čtením kanálu 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 žádosti o podávání změn

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 ru pro každou žádost. Pomocí služby Azure Monitor můžete měřit spotřebu jednotek žádostí (RU) kanálu změn. Další informace najdete v tématu Monitorování propustnosti nebo využití jednotek žádostí ve službě Azure Cosmos DB.

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: