Sdílet prostřednictvím


Kvóty služby Azure Cosmos DB a výchozí limity

Tento článek vysvětluje výchozí kvóty a limity pro prostředky Azure Cosmos DB. Pomáhá efektivně spravovat operace, úložiště a propustnost.

Operace úložiště a databáze

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

Zřízená propustnost

Propustnost přidělujete na úrovni kontejneru nebo na úrovni databáze z hlediska jednotek žádostí (RU) nebo jednotek žádostí za sekundu (RU/s). Následující tabulka uvádí omezení úložiště a propustnosti na kontejner nebo databázi. Úložiště odkazuje na kombinované množství dat a úložiště indexů.

Prostředek Omezení
Maximální počet RU na kontejner (zřízený režim vyhrazené propustnosti) 1 000 000 ¹
Maximální počet RU na databázi (zřízený režim sdílené propustnosti) 1 000 000 ¹
Maximální počet RU na oddíl (logický a fyzický) 10,000
Maximální velikost úložiště napříč všemi položkami na (logický) oddíl 20 GB ²
Maximální počet jedinečných (logických) klíčů oddílů Bez omezení
Maximální velikost úložiště na kontejner Bez omezení
Maximální velikost přílohy na účet (funkce Příloha je zastaralá) 2 GB
Minimální požadovaný počet RU/s za 1 GB 1 RU/s

¹ Zvýšení maximálního počtu RU na kontejner nebo databázi vytvořením lístku podpory Azure

² Informace o osvědčených postupech pro správu úloh, které mají klíče oddílů vyžadující vyšší limity úložiště nebo propustnosti, najdete v tématu Vytvoření syntetického klíče oddílu. Pokud vaše úloha dosáhne limitu logického oddílu 20 GB v produkčním prostředí, doporučuje se jako dlouhodobé řešení změnit architekturu aplikace jiným klíčem oddílu. Pokud chcete dát čas na změna architektury aplikace, požádejte o dočasné zvýšení limitu klíče logického oddílu pro stávající aplikaci. Vytvořte lístek podpora Azure a vyberte dočasné zvýšení velikosti klíče logického oddílu kontejneru. Žádost o dočasné zvýšení je určená jako dočasné zmírnění rizik a nedoporučuje se jako dlouhodobé řešení, protože při zvýšení limitu nejsou dodrženy záruky SLA. Pokud chcete konfiguraci odebrat, vytvořte lístek podpory a jako typ kvóty vyberte Obnovení velikosti klíče logického oddílu kontejneru na výchozí hodnotu (20 GB). Tento lístek podpory můžete vytvořit po odstranění dat tak, aby odpovídal limitu logického oddílu 20 GB nebo aby se vaše aplikace měnila jiným klíčem oddílu.

Omezení minimální propustnosti

Kontejner Azure Cosmos DB (nebo databáze se sdílenou propustností) využívající ruční propustnost musí mít minimální propustnost 400 RU/s. S růstem kontejneru služba Azure Cosmos DB vyžaduje minimální propustnost, aby se zajistilo, že prostředek (databáze nebo kontejner) má pro své operace dostatečný prostředek.

Načtěte aktuální a minimální propustnost kontejneru nebo databáze z webu Azure Portal nebo sad SDK (Software Development Kit). Další informace najdete v tématu Přidělení propustnosti pro kontejnery a databáze.

Skutečné minimum RU/s se může lišit v závislosti na konfiguraci vašeho účtu. Metriky služby Azure Monitor můžete použít k zobrazení historie zřízené propustnosti (RU/s) a úložiště v prostředku.

Minimální propustnost kontejneru

Pomocí této části odhadněte minimální propustnost kontejneru.

Ruční propustnost

Pokud chcete odhadnout minimální počet RU/s požadovaných pro kontejner s ruční propustností, vyhledejte maximální hodnotu:

  • 400 RU/s
  • Aktuální velikost úložiště v GB × 1 RU/s
  • Nejvyšší počet RU/s kdy zřízených pro kontejner / 100

Kontejner je například zřízený s 400 RU/s a 0 GB úložištěm. Zvýšíte propustnost na 50 000 RU/s a importujete 20 GB dat. Minimální počet RU/s je teď MAX(400, 20 * 1 RU/s per GB, 50,000 RU/s / 100) = 500 RU/s. V průběhu času se úložiště zvětšuje na 2 000 GB. Minimální počet RU/s je nyní MAX(400, 2000 * 1 RU/s per GB, 50,000 / 100) = 2000 RU/s.

Propustnost s automatickým škálováním

Pokud chcete odhadnout minimální maximální počet RU/s automatického škálování požadovaného kontejneru s propustností automatického škálování, vyhledejte maximální počet:

  • 1 000 RU/s
  • Aktuální velikost úložiště v GB × 10 RU/s
  • Nejvyšší počet RU/s, které se kdy zřídily v kontejneru / 10

Máte například kontejner zřízený s 1 000 RU/s a 0 GB úložiště. Zvýšíte propustnost na 50 000 RU/s a importujete 20 GB dat. Minimální maximální počet RU/s je teď MAX(1000, 20 * 10 RU/s per GB, 50,000 RU/s / 10) = 5000 RU/s. V průběhu času se úložiště zvětšuje na 2 000 GB. Minimální maximální počet RU/s je teď MAX(1000, 2000 * 10 RU/s per GB, 50,000 / 10) = 20 000 RU/s.

Minimální propustnost databáze se sdílenou propustností

V této části můžete odhadnout minimální propustnost pro propustnost sdílení databáze mezi kontejnery.

Ruční propustnost

Pokud chcete odhadnout minimální počet RU/s vyžadovaných pro databázi se sdílenou propustností s ruční propustností, vyhledejte maximální hodnotu:

  • 400 RU/s
  • Aktuální velikost úložiště v GB × 1 RU/s
  • Nejvyšší počet RU/s kdy zřízených pro databázi / 100
  • 400 + MAX(počet kontejnerů − 25, 0) × 100 RU/s

Máte například databázi zřízenou s 400 RU/s, 15 GB úložiště a 10 kontejnerů. Minimální počet RU/s je MAX(400, 15 * 1 RU/s per GB, 400 / 100, 400 + 0 ) = 400 RU/s. Pokud by v databázi existovalo 30 kontejnerů, minimální počet RU/s by byl 400 + MAX(30 - 25, 0) * 100 RU/s = 900 RU/s.

Propustnost s automatickým škálováním

Pokud chcete odhadnout minimální maximální počet RU/s automatického škálování požadované pro databázi se sdílenou propustností s propustností automatického škálování, vyhledejte maximální hodnotu:

  • 1 000 RU/s
  • Aktuální velikost úložiště v GB × 10 RU/s
  • Nejvyšší počet RU/s, které se kdy zřídily v databázi / 10
  • 1000 + MAX(počet kontejnerů - 25, 0) * 1000 RU/s

Máte například databázi zřízenou s 1000 RU/s, 15 GB úložiště a 10 kontejnerů. Minimální maximální počet RU/s pro databázi automatického škálování je MAX(1000, 15 * 10 RU/s per GB, 1000 / 10, 1000 + 0 ) = 1000 RU/s. Pokud by v databázi bylo 30 kontejnerů, minimální maximální počet RU/s by byl 1000 + MAX(30 - 25, 0) * 1000 RU/s = 5000 RU/s.

Tady jsou minimální zřízená omezení RU při použití zřízené propustnosti.

Typ zřizování Prostředek Omezení
Ruční propustnost Minimální počet RU na kontejner (vyhrazený režim zřízené propustnosti s ruční propustností) 400
Ruční propustnost Minimální počet RU na databázi (zřízený režim sdílené propustnosti s ruční propustností 400 RU/s pro prvních 25 kontejnerů.
Propustnost s automatickým škálováním Minimální maximální počet RU na kontejner (vyhrazený režim zřízené propustnosti s propustností automatického škálování) 1000
Propustnost s automatickým škálováním Minimální maximální počet RU na databázi (zřízený režim sdílené propustnosti s propustností automatického škálování) 1000 RU/s pro prvních 25 kontejnerů.

Azure Cosmos DB podporuje programové škálování propustnosti (RU/s) na kontejner nebo databázi prostřednictvím sad SDK nebo portálu.

Každý prostředek se škáluje synchronně a okamžitě mezi minimálními RU/s a až 100krát minimálními RU/s v závislosti na aktuálním zřízeném počtu RU/s a nastavením prostředků. Pokud je požadovaná hodnota propustnosti mimo rozsah, škálování se provádí asynchronně. Dokončení asynchronního škálování může trvat minuty až hodiny v závislosti na požadované propustnosti a velikosti úložiště dat v kontejneru. Další informace.

Bezserverová architektura

Bezserverová služba umožňuje používat prostředky služby Azure Cosmos DB způsobem založeným na spotřebě. Následující tabulka uvádí omezení pro úložiště a nárazovou propustnost na kontejner/databázi. Tato omezení není možné zvýšit. Přidělte další bezserverové účty pro větší potřeby úložiště.

Prostředek Omezení
Maximální počet RU/s na kontejner 20,000*
Maximální velikost úložiště napříč všemi položkami na (logický) oddíl 20 GB
Maximální velikost úložiště na kontejner 1 TB

*Maximální dostupnost RU/s závisí na datech uložených v kontejneru. Viz, bezserverový výkon

Řídicí rovina

Azure Cosmos DB má poskytovatele prostředků, který umožňuje vytvářet, aktualizovat a odstraňovat prostředky v účtu služby Azure Cosmos DB. Poskytovatel prostředků používá rozhraní s celkovou vrstvou správy prostředků Azure, což je služba pro nasazení a správu pro Azure.

Vytváření a správa prostředků Azure Cosmos DB pomocí:

  • Azure Portal
  • Azure PowerShell
  • Azure CLI (příkazový řádek nástroje Azure)
  • Šablony JSON/Bicep v Azure Resource Manageru
  • Azure REST API
  • Sady SDK pro správu Azure
  • Terraform
  • Pulumi

K této vrstvě správy můžete přistupovat také ze sad SDK roviny dat Azure Cosmos DB, které se používají ve vašich aplikacích k vytváření a správě prostředků v rámci účtu. Sady SDK roviny dat také během počátečního připojení ke službě žádají o žádosti o řídicí rovinu, aby dělaly věci, jako je výčet databází a kontejnerů, a žádosti o klíče účtu pro ověřování.

Každý účet služby Azure Cosmos DB má primární oddíl , který obsahuje všechna metadata účtu. Má také malou propustnost pro podporu operací řídicí roviny. Žádosti řídicí roviny, které vytvářejí, čtou, aktualizují nebo odstraňují tato metadata, spotřebovávají tuto propustnost. Pokud množství propustnosti spotřebované operacemi řídicí roviny překročí tuto částku, operace jsou omezené rychlostí, stejně jako operace roviny dat v rámci služby Azure Cosmos DB. Na rozdíl od propustnosti datových operací ale nejde zvýšit propustnost primárního oddílu.

Některé operace řídicí roviny nevyužívají propustnost primárního oddílu, jako je získání nebo výpis klíčů. Na rozdíl od požadavků na data v rámci účtu služby Azure Cosmos DB ale poskytovatelé prostředků v Azure nejsou navržení pro velké objemy požadavků. Operace řídicí roviny, které překračují zdokumentované limity na trvalých úrovních po sobě jdoucích 5minutových období, můžou zaznamenat omezování požadavků a také neúspěšné nebo neúplné operace s prostředky Azure Cosmos DB.

Operace řídicí roviny je možné monitorovat tak, že přejdete na kartu Přehledy pro účet služby Azure Cosmos DB. Další informace naleznete v tématu Monitorování žádostí roviny řízení. Tyto přehledy můžete přizpůsobit, použít Azure Monitor a vytvořit sešit pro monitorování žádostí o metadata a nastavení upozornění.

Omezení prostředků

Následující tabulka uvádí omezení prostředků na předplatné nebo účet.

Prostředek Omezení
Maximální počet účtů na předplatné Ve výchozím nastavení 250 ¹
Maximální počet databází a kontejnerů na účet 500 ²
Maximální propustnost podporovaná účtem pro operace metadat 240 RU/s

¹ Výchozí limity se liší pro interní zákazníky Microsoftu. Zvyšte tato omezení vytvořením žádosti o podporu Azure až na 1 000. Cosmos DB si vyhrazuje právo odstranit všechny prázdné databázové účty, tj. žádné databáze nebo kolekce. ² Tento limit nelze zvýšit. Celkový počet zahrnuje databáze i kontejnery v rámci účtu (například 1 databáze a 499 kontejnerů nebo 250 databází a 250 kontejnerů).

Omezení pro žádosti

Následující tabulka uvádí omezení požadavků na 5minutový interval na účet, pokud není uvedeno jinak.

Operace Omezení
Maximální počet seznamů nebo získání klíčů 500 ¹
Maximální počet vytvoření databáze a kontejneru 500
Maximální počet získání nebo výpisu databáze a kontejneru 500 ¹
Maximální zřízená propustnost aktualizace 25
Maximální regionální převzetí služeb při selhání 10 (za hodinu) ²
Maximální počet všech operací (PUT, POST, PATCH, DELETE, GET), které nebyly definovány dříve 500

¹ Použijte jednoúčelového klienta pro instance sady SDK a klíče mezipaměti, databáze a odkazy na kontejnery mezi požadavky po dobu životnosti této instance. ² Regionální převzetí služeb při selhání se vztahuje pouze na účty zápisu do jedné oblasti. Účty pro zápis do více oblastí nevyžadují ani neumožňují změnu oblasti zápisu.

Azure Cosmos DB automaticky zálohuje vaše data v pravidelných intervalech. Podrobnosti o intervalech uchovávání záloh a o oknech najdete v tématu Online zálohování a obnovení dat na vyžádání ve službě Azure Cosmos DB.

Limity pro jednotlivé účty

Tady jsou omezení pro jednotlivé účty.

Zřízená propustnost

Prostředek Omezení
Maximální počet databází a kontejnerů na účet 500
Maximální počet kontejnerů na databázi se sdílenou propustností 25
Maximální počet oblastí Bez limitu (všechny oblasti Azure)

Bezserverová architektura

Prostředek Omezení
Maximální počet databází a kontejnerů na účet 500
Maximální počet oblastí 1 (libovolná oblast Azure)

Omezení pro jednotlivé kontejnery

V závislosti na rozhraní API, které používáte, může kontejner Azure Cosmos DB představovat kolekci, tabulku nebo graf. Kontejnery podporují konfigurace jedinečných klíčových omezení, uložených procedur, triggerů a uživatelem definovaných funkcí (UDF) a zásad indexování. Následující tabulka uvádí omezení specifická pro konfigurace v rámci kontejneru.

Prostředek Omezení
Maximální délka názvu databáze nebo kontejneru 255
Maximální počet uložených procedur na kontejner 100 ¹
Maximální počet definovaných uživatelem na kontejner 50 ¹
Maximální počet jedinečných klíčů na kontejner 10 ¹
Maximální počet cest na omezení jedinečného klíče 16 ¹
Maximální hodnota TTL (Time to Live) 2,147,483,647

¹ Zvýšení jakéhokoli z těchto limitů pro jednotlivé kontejnery vytvořením žádosti o podporu Azure.

Limity pro jednotlivé položky

Položka služby Azure Cosmos DB může představovat dokument v kolekci, řádek v tabulce nebo uzel nebo okraj grafu v závislosti na tom, které rozhraní API používáte. Následující tabulka uvádí omezení pro jednotlivé položky ve službě Azure Cosmos DB.

Prostředek Omezení
Maximální velikost položky 2 MB (UTF-8 délka reprezentace JSON) ¹
Maximální délka hodnoty klíče oddílu 2 048 bajtů (101 bajtů, pokud není povolený velký klíč oddílu)
Maximální délka hodnoty ID 1 023 bajtů
Povolené znaky pro hodnotu ID Všechny znaky Unicode na straně služby kromě znaků /a \jsou povolené. UPOZORNĚNÍ: Pro nejlepší interoperabilitu DŮRAZNĚ DOPORUČUJEME používat pouze alfanumerní znaky ASCII pouze v hodnotě ID. V některých verzích sady SDK služby Cosmos DB existují známá omezení a konektory (Azure Data Factory, Spark, Kafka atd.) a ovladače HTTP nebo knihovny. Tato omezení mohou zabránit úspěšnému zpracování, pokud hodnota ID obsahuje neosamocené znaky ASCII. Pokud tedy chcete zvýšit interoperabilitu, zakódujte hodnotu ID – například prostřednictvím kódování Base64 + vlastního kódování speciálních znaků povolených v Base64. – pokud ve službě nebo aplikaci potřebujete podporovat neosamocené znaky ASCII.
Maximální počet vlastností na položku Žádný praktický limit
Maximální délka názvu vlastnosti Žádný praktický limit
Maximální délka hodnoty vlastnosti Žádný praktický limit
Maximální délka hodnoty vlastnosti řetězce Žádný praktický limit
Maximální délka číselné hodnoty vlastnosti IEEE754 64bitová verze s dvojitou přesností
Maximální úroveň vnoření pro vložené objekty / pole 128
Maximální hodnota TTL 2147483647
Maximální přesnost a rozsah čísel ve formátu JSON (pro zajištění bezpečné interoperability) IEEE (Institute of Electrical and Electronics Engineers) 754 binary64

¹ Velké velikosti dokumentů až 16 MB jsou podporovány pouze se službou Azure Cosmos DB pro MongoDB. Další informace najdete v dokumentaci k funkcím MongoDB 4.2.

Neexistují žádná omezení datových částí položek (například počet vlastností a hloubky vnoření), s výjimkou omezení délky pro hodnoty klíče oddílu a ID a celkového omezení velikosti 2 MB. Možná budete muset nakonfigurovat zásady indexování pro kontejnery s velkými nebo složitými strukturami položek, aby se snížila spotřeba RU. V tématu Modelování položek ve službě Azure Cosmos DB najdete příklad a vzory pro správu velkých položek.

Omezení pro jednotlivé požadavky

Azure Cosmos DB podporuje operace CRUD a dotazování pro prostředky, jako jsou kontejnery, položky a databáze. Podporuje také transakční dávkové požadavky na položky se stejným klíčem oddílu v kontejneru.

Prostředek Omezení
Maximální doba provádění jedné operace (například spuštění uložené procedury nebo načtení jedné stránky dotazu) 5 s
Maximální velikost požadavku (například uložená procedura, CRUD) 2 MB
Maximální velikost odpovědi (například stránkovaný dotaz) 4 MB
Maximální počet operací v transakční dávce 100

Azure Cosmos DB podporuje triggery během zápisu. Služba umožňuje jeden pretrigger a jeden post-trigger na operaci zápisu.

Když operace dotazu dosáhne časového limitu spuštění nebo limitu velikosti odpovědi, vrátí klientovi stránku s výsledky a token pokračování, aby bylo možné pokračovat v provádění. Neexistuje žádný praktický limit doby trvání, po které může jeden dotaz běžet napříč stránkami nebo pokračováními.

Azure Cosmos DB k autorizaci používá kódy ověřování zpráv založené na hodnotě hash (HMAC). Primární klíč použijte k jemně odstupňovanému řízení přístupu k prostředkům. Tyto prostředky můžou zahrnovat kontejnery, klíče oddílů nebo položky. Následující tabulka uvádí omezení pro autorizační tokeny ve službě Azure Cosmos DB.

Prostředek Omezení
Maximální doba vypršení platnosti primárního tokenu 15 min.
Minimální doba vypršení platnosti tokenu prostředku 10 minut
Maximální doba vypršení platnosti tokenu prostředku 24 h ve výchozím nastavení ¹
Maximální nerovnoměrná distribuce hodin pro autorizaci tokenů 15 min.

¹ Zvyšte ho vytvořením lístku podpory Azure.

Limity zřízené propustnosti automatického škálování

Podrobné vysvětlení limitů propustnosti a úložiště s automatickým škálováním najdete v článku věnovaném automatickému škálování a nejčastějším dotazům .

Prostředek Omezení
Maximální počet RU/s, na které se systém může škálovat Tmax, maximální počet RU/s automatického škálování nastavený uživatelem
Minimální počet RU/s, na které se systém může škálovat 0.1 * Tmax
Aktuální RU/s, na který se systém škáluje 0.1*Tmax <= T <= Tmaxna základě využití
Minimální fakturovatelné RU/s za hodinu 0.1 * Tmax

Fakturace je každou hodinu na základě nejvyšších RU/s, na které se systém škáloval během hodiny, nebo 0.1*Tmaxpodle toho, která hodnota je vyšší.
Minimální maximální počet RU/s automatického škálování pro kontejner MAX(1000, highest max RU/s ever provisioned / 10, current storage in GB * 10) zaokrouhleno nahoru na nejbližší 1000 RU/s
Minimální maximální počet RU/s automatického škálování pro databázi MAX(1000, highest max RU/s ever provisioned / 10, current storage in GB * 10, 1000 + (MAX(Container count - 25, 0) * 1000)) zaokrouhlí nahoru na nejbližší 1000 RU/s.

Pokud má vaše databáze více než 25 kontejnerů, zvýší systém minimální maximální počet RU/s automatického škálování o 1 000 RU/s pro každý další kontejner. Pokud máte například 30 kontejnerů, můžete nastavit nejnižší maximální počet RU/s automatického škálování 6000 RU/s (škálování mezi 600 a 6000 RU/s).

Omezení dotazů SQL

Azure Cosmos DB podporuje dotazování položek pomocí SQL. Následující tabulka popisuje omezení v příkazech dotazů, jako je počet klauzulí nebo délka dotazu.

Prostředek Omezení
Maximální délka dotazu SQL 512 kB
Maximální počet JOIN příkazů na dotaz 10¹
Maximální počet definovaných funkcí na dotaz 10 ¹
Maximální počet bodů na mnohoúhelník 4096
Maximální explicitně zahrnuté cesty na kontejner 1500 ¹
Maximální explicitně vyloučené cesty na kontejner 1500 ¹
Maximální počet vlastností ve složeného indexu 8
Maximální počet cest ve složeného indexu 100

¹ Tyto limity dotazů SQL můžete zvýšit vytvořením žádosti o podporu Azure.

Omezení specifická pro rozhraní API pro MongoDB

Azure Cosmos DB podporuje přenosové protokoly MongoDB pro aplikace napsané pomocí MongoDB. Podporované příkazy a verze protokolů najdete v podporovaných funkcích a syntaxi MongoDB.

Následující tabulka uvádí omezení specifická pro podporu funkcí MongoDB. Pro rozhraní API for NoSQL platí také další omezení služby uvedené v rozhraní API pro MongoDB.

Prostředek Omezení
Maximální velikost dokumentu 16 MB (délka reprezentace UTF-8) ¹
Maximální velikost paměti dotazu MongoDB (platí pouze pro verzi serveru 3.2) 40 MB
Maximální doba provádění operací MongoDB (platí pro verzi serveru 3.2) 15 sekund
Maximální doba provádění operací MongoDB (platí pro verze serveru 3.6 a 4.0) 60 sekund
Maximální úroveň vnoření pro vložené objekty / pole v definicích indexu 6
Vypršení časového limitu nečinnosti připojení pro uzavření připojení na straně serveru ² 30 minut
Časový limit pro prostředí MongoDB na webu Azure Portal 120 minut v 24hodinovém období

¹ Velké velikosti dokumentů o velikosti až 16 MB vyžadují povolení funkcí na webu Azure Portal. Další informace najdete v dokumentaci k funkcím.

² Nastavte časový limit nečinnosti připojení v nastavení ovladače na 2 až 3 minuty, protože výchozí časový limit pro Azure LoadBalancer je 4 minuty. Tento časový limit zajišťuje, že nečinný zprostředkující nástroj pro vyrovnávání zatížení nezavře připojení mezi klientským počítačem a službou Azure Cosmos DB.

Limity účtů úrovně Free služby Azure Cosmos DB

Následující tabulka uvádí omezení pro účty úrovně Free služby Azure Cosmos DB.

Prostředek Omezení
Počet účtů úrovně Free na předplatné Azure 0
Doba trvání slevy na úrovni Free Doba života účtu. Při vytváření účtu se musíte přihlásit.
Maximální počet RU/s zdarma 1 000 RU/s
Maximální velikost úložiště zdarma 25 GB
Maximální počet kontejnerů v databázi se sdílenou propustností 25

Kromě předchozí tabulky platí limity pro jednotlivé účty také pro účty úrovně Free. Další informace najdete v článku o tom, jak vytvořit účet úrovně Free.