Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs standardkvoter och gränser för Azure Cosmos DB-resurser. Det hjälper dig att hantera åtgärder, lagring och dataflöde effektivt.
Lagrings- och databasåtgärder
När du har skapat ett Azure Cosmos DB-konto under din prenumeration kan du hantera data i ditt konto genom att skapa databaser, containrar och objekt.
Etablerat dataflöde
Du allokerar dataflöde på containernivå eller databasnivå när det gäller enheter för begäran (RU) eller enheter för begäranden per sekund (RU/s). I följande tabell visas gränserna för lagring och dataflöde per container/databas. Lagring avser den kombinerade mängden data och indexlagring.
| Resurs | Gräns | 
|---|---|
| Maximalt antal RU:er per container (etablerat dedikerat dataflödesläge) | 1 000 000 ¹ | 
| Maximalt antal RU:er per databas (etablerat dataflöde för delat dataflöde) | 1 000 000 ¹ | 
| Maximalt antal RU:er per partition (logisk och fysisk) | 10,000 | 
| Maximal lagring för alla objekt per (logisk) partition | 20 GB ² | 
| Maximalt antal distinkta (logiska) partitionsnycklar | Obegränsat | 
| Maximalt lagringsutrymme per container | Obegränsat | 
| Maximal storlek på bifogade filer per konto (funktionen bifogad fil är inaktuell) | 2 GB | 
| Minsta antal RU/s som krävs per 1 GB | 1 RU/s | 
¹ Öka maximalt antal RU:er per container eller databas genom att skicka in ett Azure-supportärende.
² Mer information om metodtips för att hantera arbetsbelastningar som har partitionsnycklar som kräver högre gränser för lagring eller dataflöde finns i Skapa en syntetisk partitionsnyckel. Om din arbetsbelastning når den logiska partitionsgränsen på 20 GB i produktion rekommenderar vi att du utför omarbetning av ditt program med en annan partitionsnyckel som en långsiktig lösning. Om du vill ge dig tid att göra om programmet begär du en tillfällig ökning av den logiska partitionsnyckelgränsen för ditt befintliga program. Skicka ett Azure Support-ärende och välj kvottyp Tillfällig ökning av containerns nyckelstorlek för logisk partition. Att begära en tillfällig ökning är avsett som en tillfällig åtgärd och rekommenderas inte som en långsiktig lösning, eftersom SLA-garantier inte uppfylls när gränsen ökas. Om du vill ta bort konfigurationen skapar du ett supportärende och väljer kvottypen Återställ containerns nyckelstorlek för logisk partition till standardvärdet (20 GB) . Du kan skicka det här supportärendet när du har raderat data så att de passar den logiska partitionsgränsen på 20 GB eller omkonsekterar ditt program med en annan partitionsnyckel.
Minsta dataflödesgränser
En Azure Cosmos DB-container (eller databas med delat dataflöde) med manuellt dataflöde måste ha ett minsta dataflöde på 400 RU/s. När containern växer kräver Azure Cosmos DB ett minsta dataflöde för att säkerställa att resursen (databasen eller containern) har tillräckligt med resurser för sina åtgärder.
Hämta aktuellt och minsta dataflöde för en container eller en databas från Azure-portalen eller programutvecklingspaketen (SDK:er). Mer information finns i Allokera dataflöde för containrar och databaser.
Den faktiska lägsta RU/s kan variera beroende på din kontokonfiguration. Du kan använda Azure Monitor-mått för att visa historiken för etablerat dataflöde (RU/s) och lagring på en resurs.
Minsta dataflöde för container
Beräkna det minsta dataflödet för en container med hjälp av det här avsnittet.
Manuellt dataflöde
Om du vill beräkna den minsta RU/s som krävs för en container med manuellt dataflöde letar du reda på maximalt:
- 400 RU/s
- Aktuell lagring i GB * 1 RU/s
- Högsta RU/s som någonsin etablerats på containern / 100
Till exempel etableras en container med 400 RU/s och 0 GB lagring. Du ökar dataflödet till 50 000 RU/s och importerar 20 GB data. Den minsta RU/s är nu MAX(400, 20 * 1 RU/s per GB, 50,000 RU/s / 100) = 500 RU/s. Med tiden växer lagringen till 2 000 GB. Minsta RU/s är nu MAX(400, 2000 * 1 RU/s per GB, 50,000 / 100) = 2 000 RU/s.
Dataflöde för autoskalning
Om du vill uppskatta det minsta antalet RU/s för automatisk skalning som krävs för en container med autoskalningsdataflöde letar du reda på det maximala värdet:
- 1 000 RU/s
- Aktuell lagring i GB * 10 RU/s
- Högsta RU/s som någonsin etablerats på containern /10
Du har till exempel en container etablerad med 1 000 RU/s och 0 GB lagringsutrymme. Du ökar dataflödet till 50 000 RU/s och importerar 20 GB data. Det minsta antalet RU/s är nu MAX(1000, 20 * 10 RU/s per GB, 50,000 RU/s / 10) = 5 000 RU/s. Med tiden växer lagringen till 2 000 GB. Det minsta antalet RU/s är nu MAX(1000, 2000 * 10 RU/s per GB, 50,000 / 10) = 20 000 RU/s.
Minsta dataflöde för databas med delat dataflöde
Använd det här avsnittet för att beräkna det minsta dataflödet för ett databasdelningsdataflöde mellan containrar.
Manuellt dataflöde
Om du vill uppskatta det minsta antal RU/s som krävs för en databas med delat dataflöde med manuellt dataflöde hittar du det maximala värdet:
- 400 RU/s
- Aktuell lagring i GB * 1 RU/s
- Högsta RU/s som någonsin etablerats på databasen / 100
- 400 + MAX(antal containrar - 25, 0) * 100 RU/s
Du har till exempel en databas etablerad med 400 RU/s, 15 GB lagring och 10 containrar. Minsta RU/s är MAX(400, 15 * 1 RU/s per GB, 400 / 100, 400 + 0 ) = 400 RU/s. Om det fanns 30 containrar i databasen skulle den minsta RU/s vara 400 + MAX(30 - 25, 0) * 100 RU/s = 900 RU/s.
Dataflöde för autoskalning
Om du vill uppskatta det minsta antalet RU/s för automatisk skalning som krävs för en databas med delat dataflöde med autoskalningsdata, hittar du det maximala värdet:
- 1 000 RU/s
- Aktuell lagring i GB * 10 RU/s
- Högsta RU/s som någonsin etablerats i databasen /10
- 1 000 + MAX(Antal containrar – 25, 0) * 1 000 RU/s
Du har till exempel en databas etablerad med 1 000 RU/s, 15 GB lagring och 10 containrar. Det minsta antalet RU/s för autoskalningsdatabasen är MAX(1000, 15 * 10 RU/s per GB, 1000 / 10, 1000 + 0 ) = 1 000 RU/s. Om det fanns 30 containrar i databasen skulle det minsta antalet RU/s vara 1000 + MAX(30 - 25, 0) * 1000 RU/s = 5 000 RU/s.
Sammanfattningsvis är här de minsta etablerade RU-gränserna när du använder etablerat dataflöde.
| Etableringstyp | Resurs | Gräns | 
|---|---|---|
| Manuellt dataflöde | Minsta antal RU:er per container (etablerat dedikerat dataflödesläge med manuellt dataflöde) | 400 | 
| Manuellt dataflöde | Minsta antal RU:er per databas (etablerat läge för delat dataflöde med manuellt dataflöde | 400 RU/s för de första 25 containrarna. | 
| Dataflöde för autoskalning | Minsta maximalt antal RU:er per container (etablerat dedikerat dataflödesläge med autoskalningsdataflöde) | 1000 | 
| Dataflöde för autoskalning | Minsta maximalt antal RU:er per databas (etablerat läge för delat dataflöde med autoskalningsdataflöde) | 1 000 RU/s för de första 25 containrarna. | 
Azure Cosmos DB stöder programmatisk skalning av dataflöde (RU/s) per container eller databas via SDK:er eller portalen.
Varje resurs skalar synkront och omedelbart mellan de minsta RU/s och upp till 100 x minsta RU/s, beroende på aktuella RU/s-etablerade och resursinställningar. Om det begärda dataflödesvärdet ligger utanför intervallet utförs skalning asynkront. Asynkron skalning kan ta minuter till timmar att slutföra beroende på det begärda dataflödet och datalagringsstorleken i containern. Läs mer.
Utan server
Med Serverless kan du använda dina Azure Cosmos DB-resurser på ett konsumtionsbaserat sätt. I följande tabell visas gränserna för lagring och dataflöde med burst-kapacitet per container/databas. Det går inte att höja dessa gränser. Allokera extra serverlösa konton för fler lagringsbehov.
| Resurs | Gräns | 
|---|---|
| Maximalt antal RU/s per container | 20,000* | 
| Maximal lagring för alla objekt per (logisk) partition | 20 GB | 
| Maximalt lagringsutrymme per container | 1 TB | 
*Maximal RU/sek-tillgänglighet är beroende av data som lagras i containern. Se Serverlös prestanda
Kontrollplan
Azure Cosmos DB har en resursprovider som gör att du kan skapa, uppdatera och ta bort resurser i ditt Azure Cosmos DB-konto. Resursproviderns gränssnitt med det övergripande Azure Resource Management-lagret, som är distributions- och hanteringstjänsten för Azure.
Skapa och hantera Azure Cosmos DB-resurser med hjälp av:
- Azure-portalen
- Azure PowerShell
- Azure CLI (kommandoradsgränssnittet för Azure)
- Azure Resource Manager JSON/Bicep-mallar
- REST-API för Azure
- Azure Management SDK:er
- Terraform
- Pulumi
Det här hanteringslagret kan också nås från Azure Cosmos DB-dataplans-SDK:er som används i dina program för att skapa och hantera resurser i ett konto. SDK:er för dataplan gör också kontrollplansbegäranden under den inledande anslutningen till tjänsten för att göra saker som att räkna upp databaser och containrar och begära kontonycklar för autentisering.
Varje Azure Cosmos DB-konto har en primär partition som innehåller alla metadata för kontot. Den har också en liten mängd dataflöde som stöd för kontrollplansåtgärder. Kontrollplansbegäranden som skapar, läser, uppdaterar eller tar bort dessa metadata förbrukar det här dataflödet. När mängden dataflöde som förbrukas av kontrollplansåtgärder överskrider den här mängden är åtgärderna hastighetsbegränsade, samma som dataplansåtgärder i Azure Cosmos DB. Men till skillnad från dataflödet för dataåtgärder kan dataflödet för den primära partitionen inte ökas.
Vissa kontrollplansåtgärder förbrukar inte primärt partitionsdataflöde, till exempel Hämta eller Lista nycklar. Men till skillnad från begäranden om data i ditt Azure Cosmos DB-konto är resursprovidrar i Azure inte utformade för stora begärandevolymer. Kontrollplansåtgärder som överskrider de dokumenterade gränserna på varaktiga nivåer under på varandra följande 5-minutersperioder kan uppleva begränsning av begäranden samt misslyckade eller ofullständiga åtgärder på Azure Cosmos DB-resurser.
Kontrollplansåtgärder kan övervakas genom att navigera på fliken Insikter för ett Azure Cosmos DB-konto. Mer information finns i Övervaka kontrollplansbegäranden. Du kan anpassa dessa insikter, använda Azure Monitor och skapa en arbetsbok för att övervaka metadatabegäranden och ange aviseringar.
Resursgränser
I följande tabell visas resursbegränsningar per prenumeration eller konto.
| Resurs | Gräns | 
|---|---|
| Maximalt antal konton per prenumeration | 250 som standard ¹ | 
| Maximalt antal databaser och containrar per konto | 500 ² | 
| Maximalt dataflöde som stöds av ett konto för metadataåtgärder | 240 RU/s | 
¹ Standardgränserna skiljer sig åt för Microsofts interna kunder. Öka dessa gränser genom att skapa en Azure-supportbegäran upp till högst 1 000. Cosmos DB förbehåller sig rätten att ta bort tomma databaskonton, dvs. inga databaser/samlingar. ² Den här gränsen kan inte ökas. Det totala antalet inkluderar både databaser och containrar i ett konto (till exempel 1 databas och 499 containrar, eller 250 databaser och 250 containrar).
Frågebegränsningar
I följande tabell visas begärandebegränsningar per 5 minuters intervall, per konto, om inget annat anges.
| Åtgärd | Gräns | 
|---|---|
| Maximal lista eller Hämta nycklar | 500 ¹ | 
| Maximalt antal skapa databaser och containrar | 500 | 
| Maximalt antal hämtar eller listdatabaser och containrar | 500 ¹ | 
| Maximalt etablerat dataflöde för uppdatering | 25 | 
| Maximal regional redundans | 10 (per timme) ² | 
| Maximalt antal åtgärder ( PUT, ,POSTPATCH,DELETE, )GETsom inte har definierats tidigare | 500 | 
¹ Använd en singleton-klient för SDK-instanser och cachenycklar, databas- och containerreferenser mellan begäranden under den instansens livslängd. ² Regionala redundansväxlingar gäller endast för skrivkonton i en enda region. Skrivkonton i flera regioner kräver inte eller tillåter inte ändring av skrivregionen.
Azure Cosmos DB säkerhetskopierar automatiskt dina data med jämna mellanrum. Mer information om kvarhållningsintervall och fönster för säkerhetskopiering finns i Online backup and on-demand data restore in Azure Cosmos DB (Online backup and on-demand data restore in Azure Cosmos DB).
Gränser per konto
Här är gränserna per konto.
Etablerat dataflöde
| Resurs | Gräns | 
|---|---|
| Maximalt antal databaser och containrar per konto | 500 | 
| Maximalt antal containrar per databas med delat dataflöde | 25 | 
| Maximalt antal regioner | Ingen gräns (alla Azure-regioner) | 
Utan server
| Resurs | Gräns | 
|---|---|
| Maximalt antal databaser och containrar per konto | 500 | 
| Maximalt antal regioner | 1 (alla Azure-regioner) | 
Gränser per container
Beroende på vilket API du använder kan en Azure Cosmos DB-container representera en samling, en tabell eller ett diagram. Containrar stöder konfigurationer för unika nyckelbegränsningar, lagrade procedurer, utlösare och användardefinierade funktioner (UDF:er) och indexeringsprinciper. I följande tabell visas de begränsningar som är specifika för konfigurationer i en container.
| Resurs | Gräns | 
|---|---|
| Maximal längd på databas- eller containernamn | 255 | 
| Maximalt antal lagrade procedurer per container | 100 ¹ | 
| Maximalt antal UDF:er per container | 50 ¹ | 
| Maximalt antal unika nycklar per container | 10 ¹ | 
| Maximalt antal sökvägar per unik nyckelbegränsning | 16 ¹ | 
| Högsta TTL-värde (time to live) | 2,147,483,647 | 
¹ Öka någon av dessa gränser per container genom att skapa en Azure-supportbegäran.
Gränser per objekt
Ett Azure Cosmos DB-objekt kan representera ett dokument i en samling, en rad i en tabell eller en nod eller kant i en graf, beroende på vilket API du använder. I följande tabell visas gränserna per objekt i Azure Cosmos DB.
| Resurs | Gräns | 
|---|---|
| Maximal storlek på ett objekt | 2 MB (UTF-8 längd på JSON-representation) ¹ | 
| Maximal längd på partitionsnyckelvärde | 2 048 byte (101 byte om stor partitionsnyckel inte är aktiverad) | 
| Maximal längd på ID-värde | 1 023 byte | 
| Tillåtna tecken för ID-värde | Alla Unicode-tecken på tjänstsidan förutom "/" och "\" tillåts. VARNING! Men för bästa samverkan rekommenderar vi starkt att endast använda alfanumeriska ASCII-tecken i ID-värdet. Det finns kända begränsningar i vissa versioner av Cosmos DB SDK och anslutningsappar (Azure Data Factory, Spark, Kafka osv.) och HTTP-drivrutiner eller -bibliotek. Dessa begränsningar kan förhindra lyckad bearbetning när ID-värdet innehåller icke-fanumeriska ASCII-tecken. För att öka samverkan kodar du därför ID-värdet , till exempel via Base64 + anpassad kodning av specialtecken som tillåts i Base64. – om du behöver stöd för icke-fanumeriska ASCII-tecken i din tjänst/ditt program. | 
| Maximalt antal egenskaper per objekt | Ingen praktisk gräns | 
| Maximal längd på egenskapsnamn | Ingen praktisk gräns | 
| Maximal längd på egenskapsvärde | Ingen praktisk gräns | 
| Maximal längd på strängegenskapsvärde | Ingen praktisk gräns | 
| Maximal längd på numeriskt egenskapsvärde | IEEE754 64-bitars dubbelprecision | 
| Maximal kapslingsnivå för inbäddade objekt/matriser | 128 | 
| Maximalt TTL-värde | 2147483647 | 
| Maximal precision/intervall för tal i JSON (för att säkerställa säker samverkan) | Institute of Electrical and Electronics Engineers (IEEE) 754 binary64 | 
¹ Stora dokumentstorlekar på upp till 16 MB stöds endast med Azure Cosmos DB för MongoDB. Mer information finns i funktionsdokumentationen för MongoDB 4.2.
Det finns inga begränsningar för artikelnyttolaster (t.ex. antal egenskaper och kapslingsdjup), förutom längdbegränsningarna för partitionsnyckel- och ID-värden och den totala storleksbegränsningen på 2 MB. Du kan behöva konfigurera indexeringsprincipen för containrar med stora eller komplexa objektstrukturer för att minska RU-förbrukningen. Se Modelleringsobjekt i Azure Cosmos DB för ett verkligt exempel och mönster för att hantera stora objekt.
Gränser per begäran
Azure Cosmos DB stöder CRUD- och frågeåtgärder för resurser som containrar, objekt och databaser. Den stöder även transaktionsbatchbegäranden för objekt med samma partitionsnyckel i en container.
| Resurs | Gräns | 
|---|---|
| Maximal körningstid för en enskild åtgärd (t.ex. körning av lagrad procedur eller hämtning av en enda frågesida) | 5 sek | 
| Maximal begärandestorlek (till exempel lagrad procedur, CRUD) | 2 MB | 
| Maximal svarsstorlek (till exempel sidnumrerad fråga) | 4 MB | 
| Maximalt antal åtgärder i en transaktionsbatch | 100 | 
Azure Cosmos DB stöder utlösare under skrivningar. Tjänsten tillåter en pretrigger och en post-trigger per skrivåtgärd.
När en frågeåtgärd når tidsgränsen för körningen eller svarsstorleken returneras en sida med resultat och en fortsättningstoken till klienten för att återuppta körningen. Det finns ingen praktisk gräns för hur länge en enskild fråga kan köras över sidor/fortsättningar.
Azure Cosmos DB använder hashbaserade autentiseringskoder för meddelanden (HMAC) för auktorisering. Använd en primärnyckel för detaljerad åtkomstkontroll till resurser. Dessa resurser kan innehålla containrar, partitionsnycklar eller objekt. I följande tabell visas begränsningar för auktoriseringstoken i Azure Cosmos DB.
| Resurs | Gräns | 
|---|---|
| Maximal förfallotid för primär token | 15 minuter | 
| Minsta förfallotid för resurstoken | 10 minuter | 
| Maximal förfallotid för resurstoken | 24 h som standard ¹ | 
| Maximalt klocksnedvridning för tokenauktorisering | 15 minuter | 
¹ Öka den genom att skicka in ett Azure-supportärende.
Gränser för etablerat dataflöde med autoskalning
I artikeln Autoskalning och Vanliga frågor och svar finns en detaljerad förklaring av dataflödes- och lagringsgränser med autoskalning.
| Resurs | Gräns | 
|---|---|
| Maximalt antal RU/s som systemet kan skala till | Tmax, autoskalnings max RU/s som angetts av användaren | 
| Minsta RU/s som systemet kan skala till | 0.1 * Tmax | 
| Aktuella RU/s som systemet skalas till | 0.1*Tmax <= T <= Tmax, baserat på användning | 
| Minsta fakturerbara RU/s per timme | 0.1 * TmaxFaktureringen är per timme, baserat på de högsta RU/s som systemet skalas till under timmen, eller 0.1*Tmax, beroende på vilket som är högre. | 
| Minsta autoskalning av max RU/s för en container | MAX(1000, highest max RU/s ever provisioned / 10, current storage in GB * 10)avrundat upp till närmaste 1 000 RU/s | 
| Maximalt antal RU/s för automatisk skalning för en databas | MAX(1000, highest max RU/s ever provisioned / 10, current storage in GB * 10,  1000 + (MAX(Container count - 25, 0) * 1000))upp till närmaste 1 000 RU/s.Om databasen har fler än 25 containrar ökar systemet det minsta antalet RU/s för automatisk skalning med 1 000 RU/s för varje extra container. Om du till exempel har 30 containrar är det lägsta autoskalningsantalet RU/s som du kan ange 6 000 RU/s (skalning mellan 600 och 6 000 RU/s). | 
SQL-frågegränser
Azure Cosmos DB stöder frågor mot objekt med hjälp av SQL. I följande tabell beskrivs begränsningar i frågeinstruktioner, till exempel antalet satser eller frågelängd.
| Resurs | Gräns | 
|---|---|
| Maximal längd på SQL-fråga | 512 kB | 
| Maximalt antal JOINinstruktioner per fråga | 10¹ | 
| Maximalt antal UDF:er per fråga | 10 ¹ | 
| Maximalt antal punkter per polygon | 4096 | 
| Maximalt antal explicit inkluderade sökvägar per container | 1500 ¹ | 
| Högsta explicit exkluderade sökvägar per container | 1500 ¹ | 
| Maximala egenskaper i ett sammansatt index | 8 | 
| Maximalt antal sökvägar i ett sammansatt index | 100 | 
¹ Du kan öka dessa SQL-frågegränser genom att skapa en Azure-supportbegäran.
API för MongoDB-specifika gränser
Azure Cosmos DB stöder MongoDB-trådprotokollet för program som skrivits med MongoDB. Hitta de kommandon och protokollversioner som stöds i MongoDB-funktioner och syntax som stöds.
I följande tabell visas de begränsningar som är specifika för MongoDB-funktionsstöd. Andra tjänstgränser som anges för API:et för NoSQL gäller även för API:et för MongoDB.
| Resurs | Gräns | 
|---|---|
| Maximal storlek på ett dokument | 16 MB (UTF-8 längd på JSON-representation) ¹ | 
| Maximal minnesstorlek för MongoDB-fråga (gäller endast 3.2-serverversionen) | 40 MB | 
| Maximal körningstid för MongoDB-åtgärder (gäller för 3.2-serverversionen) | 15 sekunder | 
| Maximal körningstid för MongoDB-åtgärder (gäller för serverversionerna 3.6 och 4.0) | 60 sekunder | 
| Maximal kapslingsnivå för inbäddade objekt/matriser i indexdefinitioner | 6 | 
| Tidsgräns för inaktiv anslutning för stängning av anslutning på serversidan ² | 30 minuter | 
| Tidsgräns för MongoDB-gränssnittet i Azure Portal | 120 minuter under en 24-timmarsperiod | 
¹ Stora dokumentstorlekar på upp till 16 MB kräver funktionsaktivering i Azure Portal. Läs mer i funktionsdokumentationen.
² Ange tidsgränsen för inaktiv anslutning i drivrutinsinställningarna till 2–3 minuter eftersom standardtidsgränsen för Azure LoadBalancer är 4 minuter. Den här tidsgränsen säkerställer att en mellanliggande lastbalanserare inte stänger anslutningar mellan klientdatorn och Azure Cosmos DB.
Kontogränser för den kostnadsfria Azure Cosmos DB-nivån
I följande tabell visas gränserna för konton på den kostnadsfria nivån i Azure Cosmos DB.
| Resurs | Gräns | 
|---|---|
| Antal konton på den kostnadsfria nivån per Azure-prenumeration | 1 | 
| Varaktighet för rabatt på den kostnadsfria nivån | Kontots livslängd. Du måste anmäla dig när kontot skapas. | 
| Maximalt antal RU/s kostnadsfritt | 1 000 RU/s | 
| Maximalt lagringsutrymme utan kostnad | 25 GB | 
| Maximalt antal containrar i en databas med delat dataflöde | 25 | 
Förutom den föregående tabellen gäller gränserna per konto även för konton på den kostnadsfria nivån. Mer information finns i hur du skapar ett konto på den kostnadsfria nivån.