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:
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:
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:
- Další informace najdete v modulu Learn k rozhraní SQL API služby Azure Cosmos DB.
- Správa účtu Azure Cosmos
- Globální distribuce
- Úrovně konzistence
- Koncový bod služby virtuální sítě pro váš Cosmos Azure
- Brána firewall protokolu IP pro váš Cosmos Azure
- Postup přidání a odebrání oblastí Azure do účtu azure Cosmos
- Smlouvy SLA pro Azure Cosmos DB