Model prostředků Azure Cosmos DB

platí pro: SQL api rozhraní API Cassandra Gremlin api rozhraní API pro tabulky Azure Cosmos DB api pro MongoDB

Azure Cosmos DB je plně spravovaná platforma jako služba (PaaS). Pokud chcete začít používat Azure Cosmos DB, měli byste nejprve vytvořit účet Azure Cosmos ve skupině prostředků Azure v požadovaném předplatném a pak v rámci něj vytvořit databáze, kontejnery a položky. Tento článek popisuje model prostředků Azure Cosmos DB a různé entity v hierarchii modelu prostředků.

Účet Azure Cosmos je základní jednotkou globální distribuce a vysoké dostupnosti. Váš účet Azure Cosmos obsahuje jedinečný název DNS a účet můžete spravovat pomocí rozhraní příkazového řádku Azure Portal nebo Azure CLI nebo pomocí různých jazykových sdk. Další informace najdete v tématu správa účtu Azure Cosmos. Pokud chcete globálně distribuovat data a propustnost napříč několika oblastmi Azure, můžete do svého účtu kdykoli přidat oblasti Azure a odebrat je. Svůj účet můžete nakonfigurovat tak, aby měl jednu oblast nebo více oblastí zápisu. Další informace najdete v tématu přidání a odebrání oblastí Azure ve vašem účtu. U účtu můžete nakonfigurovat výchozí úroveň konzistence.

Prvky v účtu azure Cosmos

Kontejner azure Cosmos je základní jednotkou škálovatelnosti. V kontejneru můžete mít prakticky neomezenou zřízenou propustnost (RU/s) a úložiště. Azure Cosmos DB transparentně rozděluje kontejner pomocí klíče logického oddílu, který zadáte, aby bylo možné elasticky škálovat zřízenou propustnost a úložiště.

V současné době můžete v rámci předplatného Azure vytvořit maximálně 50 účtů Azure Cosmos (jedná se o omezení, které je možné prostřednictvím žádosti o podporu zvýšit). Jeden účet Azure Cosmos může prakticky spravovat neomezené množství dat a zřízenou propustnost. Pokud chcete spravovat data a zřízenou propustnost, můžete ve svém účtu vytvořit jednu nebo více databází Azure Cosmos a v rámci této databáze můžete vytvořit jeden nebo více kontejnerů. Následující obrázek znázorňuje hierarchii prvků v účtu azure Cosmos:

Hierarchie účtu azure Cosmos

Po vytvoření účtu v rámci předplatného Azure můžete spravovat data ve svém účtu vytvořením databází, kontejnerů a položek.

Následující obrázek ukazuje hierarchii různých entit v účtu Azure Cosmos DB:

Entity Cosmos účtu Azure

Databáze Azure Cosmos DB

Ve svém účtu můžete vytvořit jednu nebo Cosmos databází Azure. Databáze je obdobou oboru názvů. Databáze je jednotka správy pro sadu kontejnerů Azure Cosmos kontejnery. Následující tabulka ukazuje mapování databáze na různé entity specifické pro rozhraní API:

Entita Cosmos Azure SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
Azure Cosmos Database databáze Prostor klíčů databáze databáze NA

Poznámka

U rozhraní API pro tabulky účtů se při vytváření první tabulky automaticky vytvoří výchozí databáze ve vašem účtu azure Cosmos.

Operace s databází Azure Cosmos Database

S databází Azure Cosmos můžete pracovat s rozhraními API služby Azure Cosmos, jak je popsáno v následující tabulce:

Operace Azure CLI SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
Zobrazení výčtu všech databází Yes Yes Ano (databáze je namapovaná na prostor klíčů) Yes Není k dispozici Není k dispozici
Čtení databáze Yes Yes Ano (databáze je namapovaná na prostor klíčů) Yes Není k dispozici Není k dispozici
Vytvoření nové databáze Yes Yes Ano (databáze je namapovaná na prostor klíčů) Yes Není k dispozici Není k dispozici
Aktualizace databáze Yes Yes Ano (databáze je namapovaná na prostor klíčů) Yes Není k dispozici Není k dispozici

Kontejnery Azure Cosmos

Kontejner azure Cosmos je jednotka škálovatelnosti jak pro zřízenou propustnost, tak pro úložiště. Kontejner se horizontálně rozděluje na oddíly a pak se replikuje napříč několika oblastmi. Položky, které přidáte do kontejneru, se automaticky seskupí do logických oddílů, které jsou distribuované mezi fyzické oddíly na základě klíče oddílu. Propustnost v kontejneru se rovnoměrně distribuuje mezi fyzické oddíly. Další informace o dělení a klíčích oddílů najdete v tématu Dělení dat.

Při vytváření kontejneru konfigurujete propustnost v jednom z následujících režimů:

  • Vyhrazený režim zřízené propustnosti: Propustnost zřízená pro kontejner je vyhrazená výhradně pro tento kontejner a je zálohovaná na základě smluv SLA. Další informace najdete v tématu Zřízení propustnosti pro kontejner.

  • Režim sdílené zřízené propustnosti: Tyto kontejnery sdílejí zřízenou propustnost s ostatními kontejnery ve stejné databázi (s výjimkou kontejnerů, které jsou nakonfigurované s vyhrazenou zřízenou propustností). Jinými slovy, zřízená propustnost v databázi se sdílí mezi všemi kontejnery se sdílenou propustností. Další informace najdete v tématu Zřízení propustnosti databáze.

Poznámka

Sdílenou a vyhrazenou propustnost můžete nakonfigurovat jenom při vytváření databáze a kontejneru. Pokud chcete po vytvoření kontejneru přejít z režimu vyhrazené propustnosti na režim sdílené propustnosti (nebo naopak), musíte vytvořit nový kontejner a migrovat data do nového kontejneru. Data můžete migrovat pomocí funkce kanálu změn Azure Cosmos DB.

Kontejner Azure Cosmos elasticky škálovat bez ohledu na to, jestli vytváříte kontejnery pomocí vyhrazených nebo sdílených režimů zřízené propustnosti.

Kontejner je kontejner položek, které jsou bez schématu. Položky v kontejneru mohou mít libovolná schémata. Například položka představující osobu a položka představující automobil může být umístěna do stejného kontejneru. Ve výchozím nastavení se všechny položky, které přidáte do kontejneru, automaticky indexují bez nutnosti explicitní správy indexu nebo schématu. Chování indexování můžete přizpůsobit konfigurací zásad indexování pro kontejner.

Hodnotu TTL (Time to Live) můžete nastavit u vybraných položek v kontejneru nebo pro celý kontejner, aby se tyto položky řádně vyprázdnit ze systému. Azure Cosmos DB automaticky odstraní položky po vypršení jejich platnosti. Také zaručuje, že dotaz provedený v kontejneru nevrací položky, jejichž platnost vypršela, v rámci pevné vázané položky. Další informace najdete v tématu Konfigurace TTL pro kontejner.

Kanál změn můžete použít k přihlášení k odběru provozního protokolu spravovaného pro každý logický oddíl kontejneru. Kanál změn poskytuje protokol všech aktualizací provedených v kontejneru spolu s obrázky položek před a po. Další informace najdete v tématu Vytváření reaktivních aplikací pomocí kanálu změn. Dobu uchovávání kanálu změn můžete také nakonfigurovat pomocí zásad kanálu změn v kontejneru.

Můžete registrovat uložené procedury, triggery, uživatelem definované funkce (UDF)a procedury sloučení pro váš kontejner.

Můžete zadat omezení jedinečného klíče pro váš kontejner azure Cosmos klíč. Vytvořením zásady jedinečného klíče zajistíte jedinečnost jedné nebo více hodnot na klíč logického oddílu. Pokud vytvoříte kontejner pomocí zásad jedinečného klíče, není možné vytvořit žádné nové nebo aktualizované položky s hodnotami, které duplikují hodnoty určené omezením jedinečného klíče. Další informace najdete v tématu Omezení jedinečného klíče.

Kontejner je specializovaný na entity specifické pro rozhraní API, jak je znázorněno v následující tabulce:

Entita Cosmos Azure SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
Kontejner Cosmos Azure Kontejner Table Kolekce Graph Tabulka

Poznámka

Při vytváření kontejnerů se ujistěte, že nevytváříte dva kontejnery se stejným názvem, ale s různými velikostmi kaskádových velikostí. Je to proto, že některé části platformy Azure rozlišují malá a velká písmena, a to může vést k záměně nebo kolizím telemetrie a akcí u kontejnerů s takovými názvy.

Vlastnosti kontejneru azure Cosmos

Kontejner Cosmos Azure má sadu systémem definovaných vlastností. V závislosti na tom, které rozhraní API používáte, nemusí být některé vlastnosti přímo zpřístupněny. Následující tabulka popisuje seznam systémem definovaných vlastností:

Vlastnost definovaná systémem Generované systémem nebo konfigurovatelné uživatelem Účel SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
_rid Generovaný systémem Jedinečný identifikátor kontejneru Yes No No No No
_Etag Generovaný systémem Značka entity použitá pro řízení optimistické souběžnosti Yes No No No No
_Ts Generovaný systémem Časové razítko poslední aktualizace kontejneru Yes No No No No
_Vlastní Generovaný systémem Adresovatelný identifikátor URI kontejneru Yes No No No No
id Konfigurovatelné uživatelem Jedinečný název kontejneru definovaný uživatelem Yes Yes Yes Yes Yes
Zásady indexingPolicy Konfigurovatelné uživatelem Umožňuje změnit cestu indexu, typ indexu a režim indexu. Yes No No No Yes
TimeToLive Konfigurovatelné uživatelem Umožňuje automaticky odstraňovat položky z kontejneru po nastaveném časovém období. Podrobnosti najdete v tématu Time to Live. Yes No No No Yes
changeFeedPolicy Konfigurovatelné uživatelem Slouží ke čtení změn provedených u položek v kontejneru. Podrobnosti najdete v tématu Kanál změn. Yes No No No Yes
uniqueKeyPolicy Konfigurovatelné uživatelem Slouží k zajištění jedinečnosti jedné nebo více hodnot v logickém oddílu. Další informace najdete v tématu Omezení jedinečného klíče. Yes No No No Yes

Operace s kontejnerem azure Cosmos

Kontejner Azure Cosmos podporuje následující operace při použití libovolného rozhraní API služby Azure Cosmos:

Operace Azure CLI SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
Zobrazení výčtu kontejnerů v databázi Yes Yes Yes Yes Není k dispozici Není k dispozici
Čtení kontejneru Yes Yes Yes Yes Není k dispozici Není k dispozici
Vytvoření nového kontejneru Yes Yes Yes Yes Není k dispozici Není k dispozici
Aktualizace kontejneru Yes Yes Yes Yes Není k dispozici Není k dispozici
Odstranění kontejneru Yes Yes Yes Yes Není k dispozici Není k dispozici

Položky Cosmos Azure

V závislosti na tom, které rozhraní API použijete, může položka Azure Cosmos představovat dokument v kolekci, řádek v tabulce nebo uzel nebo hranu v grafu. Následující tabulka ukazuje mapování entit specifických pro rozhraní API na Cosmos Azure:

Cosmos entity SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
Položka Cosmos Azure Položka Řádek Dokument Uzel nebo hrana Položka

Vlastnosti položky

Každá položka Cosmos Azure má následující systémem definované vlastnosti. V závislosti na tom, které rozhraní API používáte, nemusí být některé z nich přímo zpřístupněny.

Vlastnost definovaná systémem Generované systémem nebo konfigurovatelné uživatelem Účel SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
_rid Generovaný systémem Jedinečný identifikátor položky Yes No No No No
_Etag Generovaný systémem Značka entity použitá pro řízení optimistické souběžnosti Yes No No No No
_Ts Generovaný systémem Časové razítko poslední aktualizace položky Yes No No No No
_Vlastní Generovaný systémem Adresovatelný identifikátor URI položky Yes No No No No
id Kteroukoli Jedinečný název definovaný uživatelem v logickém oddílu. Yes Yes Yes Yes Yes
Libovolné uživatelsky definované vlastnosti Definované uživatelem Uživatelem definované vlastnosti reprezentované v reprezentaci nativní pro rozhraní API (včetně JSON, BSON a CQL) Yes Yes Yes Yes Yes

Poznámka

Jedinečnost vlastnosti id se vynucuje pouze v rámci každého logického oddílu. Více dokumentů může mít stejnou vlastnost id s různými hodnotami klíče oddílu.

Operace s položkami

Položky Cosmos Azure podporují následující operace. K provedení těchto operací můžete použít Cosmos rozhraní API služby Azure.

Operace Azure CLI SQL API Rozhraní Cassandra API Rozhraní API služby Azure Cosmos DB pro MongoDB Rozhraní Gremlin API Rozhraní Table API
Insert, Replace, Delete, Upsert, Read No Yes Yes Yes Yes Ano

Další kroky

Zjistěte, jak spravovat účet Azure Cosmos a další koncepty: