Enheter för programbegäran i Azure Cosmos DBRequest Units in Azure Cosmos DB

Azure Cosmos DB stöder många API: er, till exempel SQL, MongoDB, Cassandra, Gremlin och Table.Azure Cosmos DB supports many APIs, such as SQL, MongoDB, Cassandra, Gremlin, and Table. Varje API har en egen uppsättning databas åtgärder.Each API has its own set of database operations. Dessa åtgärder sträcker sig från enkla punkter som läser och skriver till komplexa frågor.These operations range from simple point reads and writes to complex queries. Varje databas åtgärd förbrukar system resurser baserat på åtgärdens komplexitet.Each database operation consumes system resources based on the complexity of the operation.

Kostnaden för alla databas åtgärder normaliseras av Azure Cosmos DB och uttrycks av enheter för programbegäran (eller ru: er, för kort).The cost of all database operations is normalized by Azure Cosmos DB and is expressed by Request Units (or RUs, for short). Du kan tänka dig ru: er som en prestanda valuta som sammanfattar system resurserna, till exempel CPU, IOPS och minne som krävs för att utföra de databas åtgärder som stöds av Azure Cosmos DB.You can think of RUs as a performance currency abstracting the system resources such as CPU, IOPS, and memory that are required to perform the database operations supported by Azure Cosmos DB.

Kostnaden för att läsa en punkt (dvs. att hämta ett enskilt objekt med dess ID och partitionsnyckel) för ett 1 KB-objekt är 1 begär ande enhet (eller 1 RU).The cost to do a point read (i.e. fetching a single item by its ID and partition key value) for a 1 KB item is 1 Request Unit (or 1 RU). Alla andra databasåtgärder tillskrivs på samma sätt en kostnad i form av RU:er.All other database operations are similarly assigned a cost using RUs. Oavsett vilket API du använder för att interagera med din Azure Cosmos-behållare mäts kostnaderna alltid med RU:er.No matter which API you use to interact with your Azure Cosmos container, costs are always measured by RUs. Om databas åtgärden är en skrivning, en läsning eller fråga, mäts kostnader alltid i ru: er.Whether the database operation is a write, point read, or query, costs are always measured in RUs.

Följande bild illustrerar den övergripande tanken med RU:er:The following image shows the high-level idea of RUs:

Databas åtgärder förbrukar enheter för programbegäran

För att hantera och planera kapacitet ser Azure Cosmos DB till att antalet RU:er för en given databasåtgärd som avser en given datamängd är deterministisk.To manage and plan capacity, Azure Cosmos DB ensures that the number of RUs for a given database operation over a given dataset is deterministic. Du kan undersöka svarshuvudet för att ta reda på antalet RU:er som förbrukas av en valfri databasåtgärd.You can examine the response header to track the number of RUs that are consumed by any database operation. När du förstår de faktorer som påverkar ru-avgifterna och ditt programs data flödes krav kan du effektivt köra program kostnaden.When you understand the factors that affect RU charges and your application's throughput requirements, you can run your application cost effectively.

Vilken typ av Azure Cosmos-konto du använder avgör hur förbrukade ru: er blir debiterade:The type of Azure Cosmos account you're using determines the way consumed RUs get charged:

  • I etablerat data flödes läge etablerar du antalet ru: er för ditt program per sekund i steg om 100 ru: er per sekund.In provisioned throughput mode, you provision the number of RUs for your application on a per-second basis in increments of 100 RUs per second. Om du vill skala det etablerade data flödet för ditt program kan du när som helst öka eller minska antalet ru: er i steg om eller minskningar av 100 ru: er.To scale the provisioned throughput for your application, you can increase or decrease the number of RUs at any time in increments or decrements of 100 RUs. Du kan göra ändringarna med hjälp av programmering eller via Azure-portalen.You can make your changes either programmatically or by using the Azure portal. Du debiteras per timme för den mängd ru: er per sekund som du har etablerad.You are billed on an hourly basis for the amount of RUs per second you have provisioned. Du kan etablera data flöde med två olika granularitet:You can provision throughput at two distinct granularities:
  • I Server lös läge behöver du inte etablera några data flöden när du skapar resurser i ditt Azure Cosmos-konto.In serverless mode, you don't have to provision any throughput when creating resources in your Azure Cosmos account. I slutet av fakturerings perioden debiteras du för den mängd enheter för programbegäran som har använts av databas åtgärderna.At the end of your billing period, you get billed for the amount of Request Units that has been consumed by your database operations.

Överväganden för enhet för programbegäranRequest Unit considerations

När du uppskattar antalet ru: er som konsumeras av arbets belastningen bör du tänka på följande faktorer:While you estimate the number of RUs consumed by your workload, consider the following factors:

  • Objektstorlek: När storleken på ett objekt ökar, ökar även antalet enheter för programbegäran som används för att läsa eller skriva objektet.Item size: As the size of an item increases, the number of RUs consumed to read or write the item also increases.

  • Objektindexering: Som standard indexeras alla objekt automatiskt.Item indexing: By default, each item is automatically indexed. Färre enheter för programbegäran används om du väljer att inte indexera vissa av objekten i en container.Fewer RUs are consumed if you choose not to index some of your items in a container.

  • Antal objektegenskaper: Om standardindexering används för alla egenskaper ökar det antal enheter för programbegäran som används för att skriva ett objekt allt eftersom antalet objektegenskaper ökar.Item property count: Assuming the default indexing is on all properties, the number of RUs consumed to write an item increases as the item property count increases.

  • Indexerade egenskaper: En indexeringsprincip för varje container avgör vilka egenskaper som indexeras som standard.Indexed properties: An index policy on each container determines which properties are indexed by default. Om du vill minska förbrukningen av enheter för programbegäran för skrivåtgärder bör du begränsa antalet indexerade egenskaper.To reduce the RU consumption for write operations, limit the number of indexed properties.

  • Data konsekvens: de starka och gränsade inaktuella konsekvens nivåerna förbrukar ungefär två gånger mer ru: er medan Läs åtgärder utförs jämfört med andra avslappnade konsekvens nivåer.Data consistency: The strong and bounded staleness consistency levels consume approximately two times more RUs while performing read operations when compared to that of other relaxed consistency levels.

  • Typ av läsningar: Poäng läsningar kostar betydligt färre ru: er än frågor.Type of reads: Point reads cost significantly fewer RUs than queries.

  • Frågemönster: Komplexiteten i en fråga påverkar hur många enheter för programbegäran som förbrukas för en åtgärd.Query patterns: The complexity of a query affects how many RUs are consumed for an operation. Faktorer som påverkar kostnaden för frågeåtgärder omfattar:Factors that affect the cost of query operations include:

    • Antalet frågeresultatThe number of query results
    • Antalet predikatThe number of predicates
    • Predikatens karaktärThe nature of the predicates
    • Antalet användardefinierade funktionerThe number of user-defined functions
    • Storleken på källdataThe size of the source data
    • Storleken på resultatuppsättningenThe size of the result set
    • ProjektionerProjections

    Azure Cosmos DB garanterar att samma fråga på samma data alltid kostar samma antal enheter för programbegäran vid upprepade körningar.Azure Cosmos DB guarantees that the same query on the same data always costs the same number of RUs on repeated executions.

  • Skript användning: som med frågor, lagrade procedurer och utlösare använder ru: er baserat på komplexiteten för de åtgärder som utförs.Script usage: As with queries, stored procedures and triggers consume RUs based on the complexity of the operations that are performed. När du utvecklar ditt program kan du läsa rubriken för begärandekostnad för att få mer information om hur mycket RU-kapacitet varje åtgärd förbrukar.As you develop your application, inspect the request charge header to better understand how much RU capacity each operation consumes.

Nästa stegNext steps