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.
² 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 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 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.
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
Använd det här avsnittet för att uppskatta det minsta dataflödet för en 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
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:
1000 RU/s
Aktuell lagring i GB * 10 RU/s
Högsta RU/s som någonsin etablerats i databasen /10
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.
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 mallarna Azure Portal, Azure PowerShell, Azure CLI, Azure Resource Manager och Bicep, 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.
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
¹ 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.
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 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.
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
Tidsgräns för MongoDB-gränssnittet i Azure Portal
120 minuter under en period på 24 timmar
¹ Stora dokumentstorlekar på upp till 16 MB kräver funktionsaktivering i Azure Portal. 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.
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 biljetter 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.