Dela via


Azure Cosmos DB-tjänstkvoter och standardgränser

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

Faktureringen ä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 JOIN instruktioner 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.