Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Cosmos DB unterstützt viele APIs wie z.B. SQL, MongoDB, Cassandra, Gremlin und Tabelle. Jede API verfügt über einen eigenen Satz von Datenbankvorgängen. Diese Vorgänge reichen von einfachen Lese- und Schreibvorgängen für Datenpunkte bis hin zu komplexen Abfragen. Jeder Datenbankvorgang beansprucht je nach Komplexität eine bestimmte Menge an Systemressourcen.
Azure Cosmos DB normalisiert die Kosten aller Datenbankvorgänge mithilfe von (kurz RU) und misst kosten basierend auf dem Durchsatz (Anforderungseinheiten pro Sekunde, RU/s).
Anforderungseinheit ist eine Leistungswährung, in der die Systemressourcen wie Verarbeitung (CPU), Eingabe-/Ausgabevorgänge pro Sekunde (IOPS) und Arbeitsspeicher abstrahiert werden, die zum Ausführen der von Azure Cosmos DB unterstützten Datenbankvorgänge erforderlich sind. Unabhängig davon, ob es sich bei dem Datenbankvorgang um einen Schreib-, Lese- oder Abfragevorgang handelt, werden die Vorgänge immer in RUs gemessen. Das Lesen eines einzelnen Elements anhand seiner ID und des Partitionsschlüssels verwendet z. B. eine Anforderungseinheit. Das Element sollte etwa 1 KB groß sein. Diese geschätzte Größe gilt für jede API, die Sie mit Azure Cosmos DB verwenden. Sie können Ihre Durchsatzkosten mithilfe des Azure Cosmos DB-Kapazitätsrechners modellieren.
Die folgende Abbildung zeigt eine Übersicht über RUs:
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. Sie können den Antwortheader untersuchen, um die von einem Datenbankvorgang genutzte Anzahl von RUs zu ermitteln. 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.
Die Art des Azure Cosmos DB-Kontos, das Sie verwenden, bestimmt die Art, auf die verbrauchte RUs in Rechnung gestellt werden. Für die Erstellung eines Kontos gibt es drei Modi:
Modus „Bereitgestellter Durchsatz“: In diesem Modus wird die Anzahl von Anforderungseinheiten (RUs) für Ihre Anwendung auf Sekundenbasis und in Schritten von jeweils 100 RUs pro Sekunde zugewiesen. Um den bereitgestellten Durchsatz für Ihre Anwendung zu skalieren, können Sie die Anzahl der RUs jederzeit in Schritten von 100 RUs erhöhen oder verringern. Sie können Ihre Änderungen entweder programmgesteuert oder über das Azure-Portal vornehmen. Sie werden stündlich abgerechnet, basierend auf der Anzahl der bereitgestellten RUs pro Sekunde. Weitere Informationen finden Sie unter bereitgestellten Durchsatz.
Durchsatz kann in zwei Granularitäten zugewiesen werden:
Container: Weitere Informationen finden Sie unter Bereitstellen von Standarddurchsatz (manuell) für einen Azure Cosmos DB-Container: API für NoSQL.
Datenbanken: Weitere Informationen finden Sie unter Bereitstellen von Standarddurchsatz (manuell) für eine Datenbank in Azure Cosmos DB: API für NoSQL.
Serverloser Modus: In diesem Modus brauchen Sie beim Erstellen von Ressourcen in Ihrem Azure Cosmos DB-Konto keinen Durchsatz zuweisen. Am Ende des Abrechnungszeitraums wird Ihnen die Anzahl der Anforderungseinheiten in Rechnung gestellt, die von den Datenbankvorgängen genutzt wurden. Weitere Informationen finden Sie im Artikel Serverloser Durchsatz.
Modus „Autoskalierung“: In diesem Modus kann der Durchsatz (RU/s) Ihrer Datenbank bzw. Ihres Containers basierend auf der jeweiligen Nutzung automatisch und unmittelbar skaliert werden. Dieser Skalierungsvorgang wirkt sich nicht auf Verfügbarkeit, Wartezeit, Durchsatz oder Leistung der Workload aus. Dieser Modus eignet sich gut für unternehmenskritische Workloads mit variablen oder unvorhersehbaren Datenverkehrsmustern und erfordert Vereinbarungen auf Servicelevel (Service Level Agreements, SLAs) auf hoher Leistung und Skalierung. Weitere Informationen finden Sie im Artikel Durchsatz mit Autoskalierung.
Aspekte zu Anforderungseinheiten
Berücksichtigen Sie die folgenden Faktoren, wenn Sie die Anzahl der für Ihre Workload verbrauchen RUs schätzen:
Elementgröße: Je größer ein Element, desto mehr RUs werden beim Lesen oder Schreiben des Elements genutzt.
Elementindizierung: Standardmäßig wird jedes Element automatisch indiziert. Wenn Sie einige Elemente in einem Container nicht indizieren, werden weniger RUs genutzt.
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.
Indizierte Eigenschaften: Eine Indexrichtlinie für jeden Container gibt an, welche Eigenschaften standardmäßig indiziert werden. Zum Verringern der für Schreibvorgänge genutzten RUs begrenzen Sie die Anzahl indizierter Eigenschaften.
Datenkonsistenz: Im Vergleich zu anderen, weniger strengen Konsistenzebenen nutzen die Konsistenzebenen „Stark“ und „Begrenzte Veraltung“ bei Lesevorgängen ungefähr zweimal mehr RUs.
Lesetypen: Punktlesevorgänge kosten weniger RUs als Abfragen.
Abfragemuster: Die Komplexität einer Abfrage wirkt sich darauf aus, wie viele RUs für einen Vorgang verbraucht werden. Faktoren, die die Kosten von Abfragevorgängen beeinflussen:
Die Anzahl der Abfrageergebnisse
Die Anzahl der Prädikate
Die Art der Prädikate
Die Anzahl der benutzerdefinierten Funktionen
Die Größe der Quelldaten
Die Größe des Resultsets
Projektionen
Die gleiche Abfrage mit den gleichen Daten beansprucht bei wiederholter Ausführung immer die gleiche Anzahl von RUs.
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. Sehen Sie sich beim Entwickeln Ihrer Anwendung den Request-Charge-Header an, um zu ermitteln, wie viele RUs der jeweilige Vorgang erfordert.
Anforderungseinheiten und mehrere Regionen
Wenn Sie 'R' RUs in einem Azure Cosmos DB-Container (oder einer Datenbank) zuweisen, stellt Azure Cosmos DB sicher, dass in jeder Region, die mit Ihrem Azure Cosmos DB-Konto verknüpft ist, 'R' RUs verfügbar sind. Sie können RUs nicht selektiv einer bestimmten Region zuweisen. Die in einem Azure Cosmos DB-Container (oder einer Datenbank) bereitgestellten RUs werden in allen mit Ihrem Azure Cosmos DB-Konto verbundenen Regionen bereitgestellt.
Angenommen, ein Azure Cosmos DB-Container ist mit R RUs konfiguriert, und es gibt N Regionen, die dem Azure Cosmos DB-Konto zugeordnet sind, dann beträgt die Gesamtzahl von im Container verfügbaren RUs = R x N.
Die Wahl des Konsistenzmodells wirkt sich auch auf den Durchsatz aus. Für die entspannteren Konsistenzebenen (Sitzung, *Präfixkonsistenz und letztliche Konsistenz) können Sie den etwa zweifachen Lesedurchsatz im Vergleich zu stärkeren Konsistenzebenen (begrenzte Veraltung oder starke Konsistenz) erzielen.