Model prostředků Azure Cosmos DB

PLATÍ PRO: SQL API rozhraní API Cassandra rozhraní Gremlin API rozhraní API pro tabulky rozhraní API služby Azure Cosmos DB 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 vaší skupině prostředků Azure v požadovaném předplatném a pak databáze, kontejnery, položky pod ním. 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í Azure Portal nebo Azure CLI nebo pomocí různých sad SDK specifických pro jazyk. Další informace najdete v tématu o správě úč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 a odebrat oblasti Azure. Úč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 do vašeho úč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ělí 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 vytvořit maximálně 50 účtů Azure Cosmos v rámci předplatného Azure (jedná se o měkký limit, který je možné zvýšit prostřednictvím žádosti o podporu). Jeden účet Azure Cosmos může prakticky spravovat neomezený objem dat a zřízenou propustnost. Pokud chcete spravovat data a zřízenou propustnost, můžete vytvořit jednu nebo více databází Azure Cosmos pod vaším účtem 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:

Hierarchy of an Azure Cosmos account

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

Následující obrázek znázorňuje hierarchii různých entit v účtu azure Cosmos DB:

Azure Cosmos account entities

Databáze Azure Cosmos DB

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

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

Poznámka

Při rozhraní API pro tabulky účtech 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

S databází Azure Cosmos můžete pracovat s rozhraními API 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
Vytvoření 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 i úložiště. Kontejner se horizontálně rozdělí 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é se distribuují mezi fyzické oddíly na základě klíče oddílu. Propustnost kontejneru se rovnoměrně distribuuje mezi fyzické oddíly. Další informace o dělení a klíčích oddílů najdete v tématu Data oddílu.

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

  • Vyhrazený režim zřízené propustnosti: Propustnost zřízená v kontejneru je vyhrazená výhradně pro tento kontejner a je zajištěna smlouvami SLA. Další informace najdete v tématu Jak zřídit propustnost kontejneru.

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

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 služby Azure Cosmos DB.

Kontejner Azure Cosmos se může 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 nezávislý na schématu položek. Položky v kontejneru můžou mít libovolná schémata. Například položka, která představuje osobu a položku, která představuje automobil, se dá umístit 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í v kontejneru.

Hodnotu TTL (Time to Live) můžete nastavit u vybraných položek v kontejneru nebo pro celý kontejner, aby se tyto položky vyprázdnily z systému. Azure Cosmos DB automaticky odstraní položky, jakmile vyprší jejich platnost. Zaručuje také, že dotaz provedený v kontejneru nevrací položky s prošlou platností v rámci pevné vazby. Další informace najdete v tématu Konfigurace hodnoty TTL v kontejneru.

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

Uložené procedury, triggery, uživatelem definované funkce (UDF) můžete zaregistrovat a sloučit procedury pro váš kontejner.

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

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

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

Poznámka

Při vytváření kontejnerů se ujistěte, že nevytvoříte dva kontejnery se stejným názvem, ale s odlišným kontejnerem. Důvodem je to, že některé části platformy Azure nerozlišují malá a velká písmena a to může vést k nejasnostem nebo kolizi telemetrie a akcí u kontejnerů s těmito názvy.

Vlastnosti kontejneru Azure Cosmos

Kontejner Azure Cosmos má sadu systémově definovaných vlastností. V závislosti na používaném rozhraní API nemusí být některé vlastnosti přímo vystavené. Následující tabulka popisuje seznam systémově definovaných vlastností:

Systémově definovaná vlastnost Systémově vygenerované 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 Systémově vygenerovaný Jedinečný identifikátor kontejneru Yes No No No No
_etag Systémově vygenerovaný Značka entity používaná pro optimistickou kontrolu souběžnosti Yes No No No No
_ts Systémově vygenerovaný Poslední aktualizované časové razítko kontejneru Yes No No No No
_self Systémově vygenerovaný 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
indexingPolicy Konfigurovatelné uživatelem Poskytuje možnost změnit cestu indexu, typ indexu a režim indexu. Yes No No No Yes
TimeToLive Konfigurovatelné uživatelem Poskytuje možnost automaticky odstraňovat položky z kontejneru po nastaveném časovém období. Podrobnosti najdete v tématu Čas naživo. 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 Změna informačního kanálu. Yes No No No Yes
uniqueKeyPolicy Konfigurovatelné uživatelem Používá se 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ých klíčů. Yes No No No Yes
AnalyticalTimeToLive Konfigurovatelné uživatelem Poskytuje možnost automaticky odstraňovat položky z kontejneru po nastaveném časovém období. Podrobnosti najdete v tématu Čas k živému přenosu. Yes No Yes No No

Operace v kontejneru Azure Cosmos

Kontejner Azure Cosmos podporuje následující operace při použití některého z rozhraní API 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
Vytvoření 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 azure Cosmos

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

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

Vlastnosti položky

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

Vlastnost definovaná systémem Systémově vygenerovaný 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 Systémově vygenerovaný Jedinečný identifikátor položky Yes No No No No
_etag Systémově vygenerovaný Značka entity používaná pro optimistickou kontrolu souběžnosti Yes No No No No
_ts Systémově vygenerovaný Časové razítko poslední aktualizace položky Yes No No No No
_self Systémově vygenerovaný 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živatelem definované vlastnosti Definované uživatelem Uživatelem definované vlastnosti reprezentované v nativní reprezentaci rozhraní API (včetně JSON, BSON a CQL) Yes Yes Yes Yes Yes

Poznámka

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

Operace s položkami

Položky azure Cosmos podporují následující operace. K provádění operací můžete použít libovolná rozhraní API 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
Vložení, nahrazení, odstranění, upsert, čtení No Yes Yes Yes Yes Ano

Další kroky

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