Tjänstkvoter för Azure Cosmos DB

GÄLLER FÖR: Nosql Mongodb Cassandra Gremlin Tabell

Den här artikeln innehåller en översikt över standardkvoterna som erbjuds till olika resurser i Azure Cosmos DB.

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 kan allokera dataflöde på containernivå eller databasnivå när det gäller enheter för begäran (RU/s eller RU). 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

¹ Du kan ö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 redan har nått den logiska partitionsgränsen på 20 GB i produktion rekommenderar vi att du gör om programmet med en annan partitionsnyckel som en långsiktig lösning. För att få tid att omstrukturera ditt program kan du be om en tillfällig ökning av nyckelstorleken för logiska partitioner för ditt befintliga program. Skicka in ett Azure-supportärende och välj kvottyp Tillfällig ökning av containerns storlek på den logiska partitionsnyckeln. 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 in den här supportbegäran när du antingen har tagit bort data för att passa gränsen för logisk partition på 20 GB eller om du har återskapat programmet 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.

Det aktuella och minsta dataflödet för en container eller en databas kan hämtas från Azure-portalen eller SDK:erna. Mer information finns i Allokera dataflöde för containrar och databaser.

Det faktiska lägsta antalet 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

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

Du har till exempel en container etablerad 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:

  • 1000 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

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:

  • 1000 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.

Beroende på de aktuella RU/s-etablerings- och resursinställningarna kan varje resurs skalas synkront och omedelbart mellan de minsta RU/s till upp till 100 x minsta RU/s. 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. Vi rekommenderar att du allokerar 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 erbjuder ett hanteringslager för att 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. Du kan skapa och hantera Azure Cosmos DB-resurser med hjälp av Azure-portalen, Azure PowerShell, Azure CLI, Azure Resource Manager och Bicep-mallar, Rest API, Azure Management SDK:er samt verktyg från tredje part som Terraform och 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 första anslutningen till tjänsten för att göra saker som att räkna upp databaser och containrar, samt begära kontonycklar för autentisering.

Varje konto för Azure Cosmos DB har en master partition som innehåller alla metadata för ett konto. 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 huvudpartitionen inte ökas.

Vissa kontrollplansåtgärder förbrukar inte huvudpartitionens dataflö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. Användare kan också anpassa dessa, använda Azure Monitor och skapa en arbetsbok för att övervaka metadatabegäranden och ange aviseringar för dem.

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. Du kan ö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. Totalt antal båda med ett konto. (1 databas och 499 containrar, 250 databaser och 250 containrar osv.)

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, POST, PATCH, DELETE, GET) som inte definierats ovan 500

¹ Användare bör använda singleton-klient för SDK-instanser och cachenycklar samt 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 gör automatiskt en säkerhetskopia av 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 en lista över gränser 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 antingen en samling, en tabell eller ett diagram. Containrar stöder konfigurationer för unika nyckelbegränsningar, lagrade procedurer, utlösare och UDF:er samt indexeringsprincip. 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 ¹
Maximalt TTL-värde 2147483647

¹ Du kan ö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 antingen 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 flera kända begränsningar i vissa versioner av Cosmos DB SDK, samt anslutningsappar (ADF, Spark, Kafka osv.) och http-drivers/libraries osv. som kan förhindra lyckad bearbetning när ID-värdet innehåller icke-alfanumeriska ASCII-tecken. För att öka samverkan måste du koda 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-alfanumeriska ASCII-tecken i tjänsten/programmet.
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) IEEE 754 binary64

¹ Stora dokumentstorlekar på upp till 16 MB stöds endast med Azure Cosmos DB för MongoDB. Läs funktionsdokumentationen om du vill veta mer.

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 mot resurser som containrar, objekt och databaser. Den stöder även transaktionsbatchbegäranden mot 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 körning av utlösare under skrivningar. Tjänsten stöder högst en förutlösare och en post-trigger per skrivåtgärd.

När en åtgärd som fråga 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 HMAC för auktorisering. Du kan använda antingen en primärnyckel eller en resurstoken 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 min
Minsta förfallotid för resurstoken 10 min
Maximal förfallotid för resurstoken 24 h som standard ¹
Maximalt klocksnedvridning för tokenauktorisering 15 min

¹ Du kan öka den genom att skicka in en Azure-supportbegäran

Gränser för etablerat dataflöde med autoskalning

Mer detaljerad förklaring av dataflödes- och lagringsgränser med autoskalning finns i artikeln Autoskalning och Vanliga frågor och svar.

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 * Tmax

Faktureringen görs per timme, där du debiteras för de högsta RU/s som systemet skalas till i 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)), avrundad upp till närmaste 1 000 RU/s.

Observera att om databasen har fler än 25 containrar ökar systemet det minsta antalet RU/s för automatisk skalning med 1 000 RU/s per extra container. Om du till exempel har 30 containrar är det lägsta autoskalningsantalet RU/s som du kan ange 6 000 RU/s (skalar 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 när det gäller antal satser eller frågelängd.

Resurs Gräns
Maximal längd på SQL-fråga 512 kB
Maximalt ANTAL JON 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 någon av 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 mot MongoDB. Du hittar 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ågor (den här begränsningen gäller endast för 3.2-serverversion) 40 MB
Maximal körningstid för MongoDB-åtgärder (för 3.2-serverversion) 15 sekunder
Maximal körningstid för MongoDB-åtgärder (för serverversionen 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

¹ Stora dokumentstorlekar på upp till 16 MB kräver funktionsaktivering i Azure-portalen. Läs funktionsdokumentationen om du vill veta mer.

² Vi rekommenderar att klientprogram anger 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.

Prova kostnadsfria gränser för Azure Cosmos DB

I följande tabell visas gränserna för utvärderingsversionen av Testa Azure Cosmos DB för kostnadsfritt .

Resurs Gräns
Utvärderingsperiodens varaktighet 30 dagar (en ny utvärderingsversion kan begäras efter förfallodatum)
När den lagrade informationen har upphört att gälla tas den lagrade informationen bort.
Maximalt antal containrar per prenumeration (NoSQL, Gremlin, API för tabell) 1
Maximalt antal containrar per prenumeration (API för MongoDB) 3
Maximalt dataflöde per container 5000
Maximalt dataflöde per databas med delat dataflöde 20000
Maximalt totalt lagringsutrymme per konto 10 GB

Prova Azure Cosmos DB stöder global distribution i regionerna USA, centrala, Europa, norra och Asien, sydöstra. Azure-supportärenden kan inte skapas för Try Azure Cosmos DB-konton. Stöd ges dock för prenumeranter med befintliga supportplaner.

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. Måste anmäla sig när kontot skapas.
Maximalt antal RU/s kostnadsfritt 1000 RU/s
Maximalt lagringsutrymme utan kostnad 25 GB
Maximalt antal databaser för delat dataflöde 5
Maximalt antal containrar i en databas med delat dataflöde 25
I konton på den kostnadsfria nivån är det minsta antalet RU/s för en databas med delat dataflöde med upp till 25 containrar 400 RU/s.

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.

Nästa steg