Az Azure Cosmos DB kérelemegységeiRequest Units in Azure Cosmos DB

A következőkre vonatkozik: SQL API CASSANDRA API Gremlin API Table API Azure Cosmos db API a MongoDB

Azure Cosmos DB számos olyan API-t támogat, mint például az SQL, a MongoDB, a Cassandra, a Gremlin és a table.Azure Cosmos DB supports many APIs, such as SQL, MongoDB, Cassandra, Gremlin, and Table. Mindegyik API saját adatbázis-műveletekkel rendelkezik.Each API has its own set of database operations. Ezek a műveletek az egyszerű pont olvasási és írási műveleteiből származnak összetett lekérdezésekre.These operations range from simple point reads and writes to complex queries. Minden adatbázis-művelet a művelet bonyolultsága alapján használja a rendszererőforrásokat.Each database operation consumes system resources based on the complexity of the operation.

Az összes adatbázis-művelet költségét az Azure Cosmos DB normalizálja, és ezek kérelemegységben (röviden RU) vannak kifejezve.The cost of all database operations is normalized by Azure Cosmos DB and is expressed by Request Units (or RUs, for short). A kérési egység a rendszererőforrások, például a CPU, a IOPS és a memória, amelyek a Azure Cosmos DB által támogatott adatbázis-műveletek végrehajtásához szükségesek.Request unit is 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.

Egy pont olvasásának (azaz egyetlen elemnek az azonosító és a partíciós kulcs értékének beolvasása) 1 KB-os elem esetén 1 kérelem egység (vagy 1 RU) lehet.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). Ugyanígy az összes többi adatbázis-művelethez is rendelve van egy költség kérelemegységben megadva.All other database operations are similarly assigned a cost using RUs. A rendszer mindig kérelemegységben számítja a költségeket attól függetlenül, hogy melyik API segítségével kommunikál az Azure Cosmos-tárolóval.No matter which API you use to interact with your Azure Cosmos container, costs are always measured by RUs. Azt határozza meg, hogy az adatbázis-művelet írási, olvasási pont vagy lekérdezés-e, a költségeket mindig az RUs méri.Whether the database operation is a write, point read, or query, costs are always measured in RUs.

A következő képen a kérelemegységek áttekintése látható:The following image shows the high-level idea of RUs:

Adatbázis-műveletek felhasználásának kérelmezési egységei

A kapacitás kezelése és tervezése érdekében az Azure Cosmos DB biztosítja, hogy egy adott adatbázis-művelethez a kérelemegységek száma egy adott adatkészletre determinisztikus legyen.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. Megvizsgálhatja a válasz fejlécét bármely adatbázis-művelet által felhasznált kérelemegységek számának nyomon követéséhez.You can examine the response header to track the number of RUs that are consumed by any database operation. Ha megérti azokat a tényezőket, amelyek hatással vannak az ru-díjakra és az alkalmazás átviteli sebességére vonatkozó követelményekre, akkor az alkalmazás költségei hatékonyan futtathatók.When you understand the factors that affect RU charges and your application's throughput requirements, you can run your application cost effectively.

Az Ön által használt Azure Cosmos-fiók típusa határozza meg, hogy milyen módon történik a felhasznált RUs felszámítása.The type of Azure Cosmos account you're using determines the way consumed RUs get charged. 3 mód áll rendelkezésre, amelyekben létrehozhat egy fiókot:There are 3 modes in which you can create an account:

  1. Kiépített átviteli sebességi mód: ebben a módban az alkalmazáshoz tartozó RUs számát másodpercenként 100 RUs-onként kell kiépíteni.Provisioned throughput mode: In this mode, you provision the number of RUs for your application on a per-second basis in increments of 100 RUs per second. Az alkalmazás kiépített átviteli sebességének méretezése érdekében a 100 RUs növekmények vagy csökkentései révén bármikor növelheti vagy csökkentheti az RUs számát.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. A módosításokat elvégezheti programozással vagy az Azure Portal használatával is.You can make your changes either programmatically or by using the Azure portal. Az Ön által kiépített RUs-mennyiségért óradíjat számolunk fel.You are billed on an hourly basis for the amount of RUs per second you have provisioned. További információt a kiosztott átviteli sebességről szóló cikkben talál.To learn more, see the Provisioned throughput article.

    Az átviteli sebességet két különböző részletességgel is kiépítheti:You can provision throughput at two distinct granularities:

  2. Kiszolgáló nélküli mód: ebben a módban nem szükséges átviteli sebességet kiépíteni az Azure Cosmos-fiókban lévő erőforrások létrehozásakor.Serverless mode: In this mode, you don't have to provision any throughput when creating resources in your Azure Cosmos account. A számlázási időszak végén az adatbázis-műveletek által felhasznált kérelmek mennyiségét számoljuk fel.At the end of your billing period, you get billed for the amount of Request Units that has been consumed by your database operations. További információért lásd a kiszolgáló nélküli átviteli sebességről szóló cikket.To learn more, see the Serverless throughput article.

  3. Automatikus skálázási mód: ebben a módban automatikusan és azonnal méretezheti az adatbázis vagy tároló átviteli sebességét (ru/s) a használat alapján, anélkül, hogy ez befolyásolná a munkaterhelés rendelkezésre állását, késését, átviteli sebességét vagy teljesítményét.Autoscale mode: In this mode, you can automatically and instantly scale the throughput (RU/s) of your database or container based on it's usage, without impacting the availability, latency, throughput, or performance of the workload. Ez a mód kiválóan alkalmas olyan kritikus fontosságú számítási feladatokhoz, amelyek változó vagy kiszámíthatatlan forgalmi mintákkal rendelkeznek, és nagy teljesítményű és méretezhető SLA-kat igényelnek.This mode is well suited for mission-critical workloads that have variable or unpredictable traffic patterns, and require SLAs on high performance and scale. További információ: az autoscale átviteli sebessége című cikk.To learn more, see the autoscale throughput article.

A kérelemegységekkel kapcsolatos megfontolásokRequest Unit considerations

A számítási feladatok által felhasznált RUs számának becslése közben vegye figyelembe a következő tényezőket:While you estimate the number of RUs consumed by your workload, consider the following factors:

  • Elem mérete: Az elem méretének növekedésével az elem olvasásához vagy írásához szükséges kérelemegységek száma is növekszik.Item size: As the size of an item increases, the number of RUs consumed to read or write the item also increases.

  • Elem indexelése: Alapértelmezés szerint minden elem automatikusan indexelve lesz.Item indexing: By default, each item is automatically indexed. Kevesebb kérelemegység lesz felhasználva, ha egy tárolóban egyes elemeket nem indexel.Fewer RUs are consumed if you choose not to index some of your items in a container.

  • Elemtulajdonságok száma: Feltéve, hogy az alapértelmezett indexelés az összes tulajdonságra van állítva, az elem írásához szükséges kérelemegységek száma az elemtulajdonságok számának növekedésével együtt növekszik.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.

  • Indexelt tulajdonságok: Az indexelési szabályzat az egyes tárolókra azt határozza meg, hogy alapértelmezés szerint mely tulajdonságok lesznek indexelve.Indexed properties: An index policy on each container determines which properties are indexed by default. Ha csökkenteni szeretné az írási műveletek fogyasztását, korlátozza az indexelt tulajdonságok számát.To reduce the RU consumption for write operations, limit the number of indexed properties.

  • Adatkonzisztencia: az erős és a határos inkonzisztens konzisztencia-szintek körülbelül kétszer használják az olvasási műveleteket a többi nyugodt konzisztencia-szinthez képest.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.

  • Az olvasások típusa: a Point olvasási díja jóval kevesebb, mint a lekérdezéseknél.Type of reads: Point reads cost significantly fewer RUs than queries.

  • Lekérdezési mintázatok: A lekérdezés összetettsége hatással van arra, hogy egy művelethez hány kérelemegység szükséges.Query patterns: The complexity of a query affects how many RUs are consumed for an operation. A lekérdezési műveletek költségét befolyásoló tényezők többek között:Factors that affect the cost of query operations include:

    • A lekérdezési eredmények számaThe number of query results
    • A predikátumok számaThe number of predicates
    • A predikátumok természeteThe nature of the predicates
    • Felhasználó által definiált függvények számaThe number of user-defined functions
    • A forrásadat méreteThe size of the source data
    • Az eredményhalmaz méreteThe size of the result set
    • LeképezésekProjections

    Ugyanezen az adatlekérdezésen ugyanazt a lekérdezést fogja megismételni az ismétlődő végrehajtások esetében is.The same query on the same data will always costs the same number of RUs on repeated executions.

  • Parancsfájlok használata: a lekérdezésekhez hasonlóan a tárolt eljárások és eseményindítók a végrehajtott műveletek összetettsége alapján használják az RUs-ket.Script usage: As with queries, stored procedures and triggers consume RUs based on the complexity of the operations that are performed. Az alkalmazás fejlesztése során vizsgálja meg a kérelemdíj fejlécet, hogy pontosabb képet kapjon arról, hány kérelemegységet fogyasztanak az egyes műveletek.As you develop your application, inspect the request charge header to better understand how much RU capacity each operation consumes.

Kérési egységek és több régióRequest units and multiple regions

Ha a Cosmos-tárolón (vagy adatbázison) kiépíti az r RUS-t, Cosmos db biztosítja, hogy az r RUS elérhető legyen a Cosmos-fiókhoz társított minden régióban.If you provision 'R' RUs on a Cosmos container (or database), Cosmos DB ensures that 'R' RUs are available in each region associated with your Cosmos account. Az RUs nem rendelhető hozzá egy adott régióhoz.You can't selectively assign RUs to a specific region. A Cosmos-tárolón (vagy adatbázison) kiépített RUs a Cosmos-fiókhoz társított összes régióban kiépítve.The RUs provisioned on a Cosmos container (or database) are provisioned in all the regions associated with your Cosmos account.

Feltételezve, hogy egy Cosmos-tároló "R" RUs-vel van konfigurálva, és a Cosmos-fiókhoz tartozó "N" régió van társítva, a teljes, globálisan elérhető RUs a tárolóban = R x N.Assuming that a Cosmos container is configured with 'R' RUs and there are 'N' regions associated with the Cosmos account, the total RUs available globally on the container = R x N.

Az Ön által választott konzisztencia-modell az átviteli sebességet is befolyásolja.Your choice of consistency model also affects the throughput. Körülbelül 2x olvasási sebességet érhet el a nyugodtabb konzisztencia-szintek (például munkamenet, konzisztens előtag és végleges konzisztencia) tekintetében az erősebb konzisztencia-szintekhez képest (például kötött elavulás vagy erős konzisztencia).You can get approximately 2x read throughput for the more relaxed consistency levels (e.g., session, consistent prefix and eventual consistency) compared to stronger consistency levels (e.g., bounded staleness or strong consistency).

Következő lépésekNext steps