Anforderungseinheiten in Azure Cosmos DBRequest Units in Azure Cosmos DB

Bei Azure Cosmos DB zahlen Sie für den bereitgestellten Durchsatz und den verwendeten Speicher auf Stundenbasis.With Azure Cosmos DB, you pay for the throughput you provision and the storage you consume on an hourly basis. Durchsatz muss bereitgestellt werden, um zu gewährleisten, dass jederzeit genügend Systemressourcen für Ihre Azure Cosmos-Datenbank zur Verfügung stehen.Throughput must be provisioned to ensure that sufficient system resources are available for your Azure Cosmos database at all times. Sie benötigen ausreichend Ressourcen, um die Azure Cosmos DB-SLAs zu erfüllen oder zu übertreffen.You need enough resources to meet or exceed the Azure Cosmos DB SLAs.

Azure Cosmos DB unterstützt viele APIs wie z.B. SQL, MongoDB, Cassandra, Gremlin und Tabelle.Azure Cosmos DB supports many APIs, such as SQL, MongoDB, Cassandra, Gremlin, and Table. Jede API verfügt über einen eigenen Satz von Datenbankvorgängen.Each API has its own set of database operations. Diese Vorgänge reichen von einfachen Lese- und Schreibvorgängen für Datenpunkte bis hin zu komplexen Abfragen.These operations range from simple point reads and writes to complex queries. Jeder Datenbankvorgang beansprucht je nach Komplexität eine bestimmte Menge an Systemressourcen.Each database operation consumes system resources based on the complexity of the operation.

Die Kosten sämtlicher Datenbankvorgänge werden von Azure Cosmos DB normalisiert und als Anforderungseinheiten (Request Units, kurz RUs) ausgedrückt.The cost of all database operations is normalized by Azure Cosmos DB and is expressed by Request Units (or RUs, for short). RUs pro Sekunde ist also gewissermaßen die Währung für Durchsatz.You can think of RUs per second as the currency for throughput. RUs pro Sekunde ist eine ratenbasierte Währung.RUs per second is a rate-based currency. Sie abstrahiert die Systemressourcen wie CPU, IOPS und Arbeitsspeicher, die zum Ausführen der von Azure Cosmos DB unterstützten Datenbankvorgänge erforderlich sind.It abstracts the system resources such as CPU, IOPS, and memory that are required to perform the database operations supported by Azure Cosmos DB.

Eine Anforderungseinheit (oder eine RU) entspricht den Kosten für das Lesen eines Elements mit einer Größe von 1 KB.The cost to read a 1 KB item is 1 Request Unit (or 1 RU). Ein Minimum von 10 RUs pro Sekunde ist pro Gigabyte an Daten erforderlich.A minimum of 10 RU/s is required to store each 1 GB of data. Allen anderen Datenbankvorgängen werden analog dazu ebenfalls Kosten in RUs zugewiesen.All other database operations are similarly assigned a cost using RUs. Unabhängig davon, welche API Sie für die Interaktion mit Ihrem Azure Cosmos-Container verwenden, werden die Kosten immer in RUs gemessen.No matter which API you use to interact with your Azure Cosmos container, costs are always measured by RUs. Unabhängig davon, ob es sich bei dem Datenbankvorgang um eine Schreib-, Lese- oder Abfragevorgang handelt, werden die Kosten immer in RUs gemessen.Whether the database operation is a write, read, or query, costs are always measured in RUs.

Die folgende Abbildung zeigt eine Übersicht über RUs:The following image shows the high-level idea of RUs:

Von Datenbankvorgängen genutzte Anforderungseinheiten

Zur Verwaltung und Planung der Kapazität stellt Azure Cosmos DB sicher, dass die Anzahl von RUs für einen bestimmten Datenbankvorgang und ein bestimmtes Dataset deterministisch ist.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. Sie können den Antwortheader untersuchen, um die von einem Datenbankvorgang genutzte Anzahl von RUs zu ermitteln.You can examine the response header to track the number of RUs that are consumed by any database operation. Wenn Sie mit den Faktoren, die sich auf die Gebühren für RUs auswirken, sowie mit den Durchsatzanforderungen Ihrer Anwendung vertraut sind, können Sie Ihre Anwendung kostengünstig ausführen.When you understand the factors that affect RU charges and your application's throughput requirements, you can run your application cost effectively.

Die Anzahl von Anforderungseinheiten für Ihre Anwendung wird auf Sekundenbasis (in Schritten von jeweils 100 RUs pro Sekunde) bereitgestellt.You provision the number of RUs for your application on a per-second basis in increments of 100 RUs per second. Um den bereitgestellten Durchsatz für Ihre Anwendung zu skalieren, können Sie die Anzahl der RUs jederzeit erhöhen oder verringern.To scale the provisioned throughput for your application, you can increase or decrease the number of RUs at any time. Die Skalierung kann in Inkrementen oder Dekrementen von 100 RUs erfolgen.You can scale in increments or decrements of 100 RUs. Sie können Ihre Änderungen entweder programmgesteuert oder über das Azure-Portal vornehmen.You can make your changes either programmatically or by using the Azure portal. Die Abrechnung erfolgt auf Stundenbasis.You are billed on an hourly basis.

Durchsatz kann in zwei Granularitäten bereitgestellt werden:You can provision throughput at two distinct granularities:

Aspekte zu AnforderungseinheitenRequest Unit considerations

Während Sie die Anzahl der RUs pro Sekunde für die Bereitstellung schätzen, berücksichtigen Sie die folgenden Faktoren:While you estimate the number of RUs per second to provision, consider the following factors:

  • Elementgröße: Je größer ein Element, desto mehr RUs werden beim Lesen oder Schreiben des Elements genutzt.Item size: As the size of an item increases, the number of RUs consumed to read or write the item also increases.

  • Elementindizierung: Standardmäßig wird jedes Element automatisch indiziert.Item indexing: By default, each item is automatically indexed. Wenn Sie einige Elemente in einem Container nicht indizieren, werden weniger RUs genutzt.Fewer RUs are consumed if you choose not to index some of your items in a container.

  • Anzahl der Elementeigenschaften: Bei Verwendung der standardmäßigen Indizierung für alle Eigenschaften erhöht sich die Anzahl von RUs, die beim Schreiben eines Elements genutzt werden, wenn sich die Anzahl von Elementeigenschaften erhöht.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.

  • Indizierte Eigenschaften: Eine Indexrichtlinie für jeden Container gibt an, welche Eigenschaften standardmäßig indiziert werden.Indexed properties: An index policy on each container determines which properties are indexed by default. Zum Verringern der für Schreibvorgänge genutzten RUs begrenzen Sie die Anzahl indizierter Eigenschaften.To reduce the RU consumption for write operations, limit the number of indexed properties.

  • Datenkonsistenz: Im Vergleich zu anderen, weniger strengen Konsistenzebenen nutzen die Konsistenzebenen „Stark“ und „Begrenzte Veraltung“ bei Lesevorgängen ungefähr zweimal mehr RUs.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.

  • Abfragemuster: Die Komplexität einer Abfrage wirkt sich darauf aus, wie viele RUs für einen Vorgang verbraucht werden.Query patterns: The complexity of a query affects how many RUs are consumed for an operation. Faktoren, die die Kosten von Abfragevorgängen beeinflussen:Factors that affect the cost of query operations include:

    • Die Anzahl der AbfrageergebnisseThe number of query results
    • Die Anzahl der PrädikateThe number of predicates
    • Die Art der PrädikateThe nature of the predicates
    • Die Anzahl der benutzerdefinierten FunktionenThe number of user-defined functions
    • Die Größe der QuelldatenThe size of the source data
    • Die Größe des ResultsetsThe size of the result set
    • ProjektionenProjections

    Azure Cosmos DB garantiert, dass die gleiche Abfrage mit den gleichen Daten bei wiederholter Ausführung immer die gleiche Anzahl von RUs beansprucht.Azure Cosmos DB guarantees that the same query on the same data always costs the same number of RUs on repeated executions.

  • Skriptnutzung: Bei gespeicherten Prozeduren und Triggern hängt die Nutzung von RUs genau wie bei Abfragen von der Komplexität der ausgeführten Vorgänge ab.Script usage: As with queries, stored procedures and triggers consume RUs based on the complexity of the operations that are performed. Sehen Sie sich beim Entwickeln Ihrer Anwendung den Request-Charge-Header an, um zu ermitteln, wie viele RUs der jeweilige Vorgang erfordert.As you develop your application, inspect the request charge header to better understand how much RU capacity each operation consumes.

Nächste SchritteNext steps