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.
Der Änderungsfeed in Azure Cosmos DB ist ein beständiger Datensatz von Änderungen an einem Container in der Reihenfolge, in der die Änderungen vorgenommen werden. Zur Unterstützung des Änderungsfeeds in Azure Cosmos DB wird gelauscht, ob in einem Azure Cosmos DB-Container Änderungen auftreten. Anschließend wird die sortierte Liste von geänderten Dokumenten in der Reihenfolge ausgegeben, in der sie geändert wurden. Die persistenten Änderungen können asynchron und inkrementell verarbeitet werden, und die Ausgabe kann über einen oder mehrere Consumer für die Parallelverarbeitung verteilt werden.
Weitere Informationen finden Sie unter Ändern von Feedentwurfsmustern in Azure Cosmos DB.
Unterstützte APIs und Client-SDKs
Das Änderungsfeedfeature wird derzeit in folgenden Azure Cosmos DB-SDKs unterstützt:
| Clienttreiber | NoSQL | Apache Cassandra | MongoDB | Apache Gremlin | Table | PostgreSQL |
|---|---|---|---|---|---|---|
| .NET |
|
|
|
|
|
|
| Java |
|
|
|
|
|
|
| Python |
|
|
|
|
|
|
| Node/JavaScript |
|
|
|
|
|
|
Verwenden des Änderungsfeeds
Sie können mit dem Änderungsfeed arbeiten, indem Sie die folgenden Optionen verwenden:
- Verwenden des Änderungsfeeds mit Azure-Funktionen
- Verwenden des Änderungsfeeds mit Änderungsfeed-Prozessor
- Änderungsfeed mit Pullmodell verwenden
- Verwenden des Änderungsfeeds mit Apache Spark
Der Änderungsfeed ist für Partitionsschlüsselbereiche eines Azure Cosmos DB-Containers verfügbar. Dadurch kann sie über einen oder mehrere Verbraucher verteilt werden, um parallel zu verarbeiten, wie in der folgenden Abbildung dargestellt.
Hinweis
Partitionsschlüsselbereiche werden physischen Partitionen zugeordnet, wenn sie den Änderungsfeedprozessor verwenden, und FeedRanges zugeordnet, wenn Sie das Pullmodell verwenden.
Features des Änderungsfeeds
Der Änderungsfeed ist für alle Azure Cosmos DB-Konten standardmäßig aktiviert.
Es gibt mehrere Änderungsfeedmodi, von denen einige zusätzliche Konfiguration erfordern, um sie zu aktivieren.
Sie können Ihren bereitgestellten Durchsatz in allen dem Azure Cosmos DB-Konto zugeordneten Regionen zum Lesen aus dem Änderungsfeed verwenden, so wie es auch bei allen anderen Azure Cosmos DB-Vorgängen möglich ist.
Der Änderungsfeed enthält Einfüge- und Aktualisierungsvorgänge, die an Elementen im Container durchgeführt wurden. Wenn Sie den Modus „Alle Versionen und Löschvorgänge“ (Vorschau) verwenden, erhalten Sie auch Änderungen aus Löschvorgängen und TTL-Ablaufvorgängen.
Jede Änderung wird im Änderungsfeed genau einmal angezeigt, und die Clients müssen die Logik der Prüfpunktausführung verwalten. Wenn Sie die Komplexität der Verwaltung von Prüfpunkten umgehen möchten, bietet der Änderungsfeedprozessor automatische Prüfpunktausführung und „Mindestens einmal“-Semantik. Weitere Informationen finden Sie unter Ändern des Feedprozessors in Azure Cosmos DB.
Änderungen sind für Partitionsschlüsselbereiche eines Azure Cosmos DB-Containers parallel verfügbar. Dadurch können Änderungen aus umfangreichen Containern parallel von mehreren Consumern verarbeitet werden.
Anwendungen können mehrere Änderungsfeeds mithilfe eines beliebigen Modus im selben Container gleichzeitig anfordern.
Der Startpunkt für den Änderungsfeed kann angepasst werden, und für jeden Modus sind verschiedene Optionen verfügbar.
Sortierreihenfolge der Elemente im Änderungsfeed
Elemente im Änderungsfeed sind in der Reihenfolge des Zeitpunkts ihrer letzten Änderung aufgeführt. Diese Sortierreihenfolge wird pro Partitionsschlüssel garantiert, aber es gibt keine garantierte Reihenfolge über alle Partitionsschlüsselwerte. Elemente, die im Rahmen eines Transaktionsbatches, einer gespeicherten Prozedur oder einer Massenmodusanforderung geschrieben wurden, weisen die gleiche Änderungszeit auf, und Änderungen innerhalb dieses Bereichs können in beliebiger Reihenfolge übermittelt werden.
Hinweis
Für Konten mit Schreibzugriff in mehreren Regionen gibt es zwei Zeitstempel:
- Die Serverepochenzeit, zu der der Datensatz in der lokalen Region geschrieben wurde. Diese wird als
_tsaufgezeichnet. - Die Epochenzeit, zu der das Nichtvorhandensein eines Konflikts bestätigt wurde oder der Konflikt in der Hubregion für diesen Datensatz aufgelöst wurde. Diese wird als
crtsaufgezeichnet.
Änderungsfeedelemente werden in der Reihenfolge angezeigt, die von crts aufgezeichnet wird.
Änderungsfeed in Azure Cosmos DB-Konten mit mehreren Regionen
In einem Azure Cosmos DB-Konto mit mehreren Regionen sind Änderungen in einer Region in allen Regionen verfügbar. Wenn ein Failover für eine Schreibregion durchgeführt wird, funktioniert der Änderungsfeed über den manuellen Failovervorgang hinweg, und er ist zusammenhängend. Bei Konten mit mehreren Schreibregionen gibt es keine Garantie dafür, wann Änderungen verfügbar sind. Eingehende Änderungen am selben Dokument können im Modus „Neueste Version“ gelöscht werden, wenn es eine neuere Änderung in einer anderen Region gab, und sämtliche Änderungen werden im Modus „Alle Versionen und Löschvorgänge“ erfasst.
Ändern der Feedmodi
Es stehen zwei Änderungsfeedmodi zur Verfügung: der neueste Versionsmodus und alle Versionen und Löschmodus . Der Modus, in dem der Änderungsfeed gelesen wird, bestimmt, aus welchen Vorgängen Änderungen erfasst werden und welche Metadaten für jede Änderung verfügbar sind. Es ist möglich, den Änderungsfeed in verschiedenen Modi bei mehreren Anwendungen für denselben Azure Cosmos DB-Container zu nutzen.
Modus „Neueste Version“
Im Änderungsfeedmodus „Neueste Version“ wird die neueste Änderung aus einem Einfüge- oder Aktualisierungsvorgang für alle Elemente im Feed angezeigt, und der Feed ist während der Lebensdauer des Containers verfügbar. Es gibt keinen Hinweis darauf, ob eine bestimmte Änderung aus einem Einfüge- oder einem Aktualisierungsvorgang stammt, und Löschvorgänge werden nicht erfasst. Änderungen können ab jedem beliebigen Zeitpunkt bis zum Ursprung Ihres Containers gelesen werden. Wenn ein Element jedoch gelöscht wird, wird es aus dem Änderungsfeed entfernt. Weitere Informationen finden Sie im Änderungsfeed-Modus der neusten Version.
Modus „Alle Versionen und Löschvorgänge“ (Vorschau)
Im Modus „Alle Versionen und Löschvorgänge“ können Sie sämtliche Änderungen an Elementen aus Erstellungen, Aktualisierungen und Löschvorgängen anzeigen. Sie erhalten einen Datensatz von jeder Änderung an Elementen in der Reihenfolge, in der sie vorgenommen wurde, einschließlich Zwischenänderungen an einem Element zwischen Lesevorgängen des Änderungsfeeds. Zum Lesen aus dem Änderungsfeed im Modus „Alle Versionen und Löschvorgänge“ müssen Sie fortlaufende Sicherungen für Ihr Azure Cosmos DB-Konto konfiguriert haben, wodurch der Azure Cosmos DB-Änderungsfeed „Alle Versionen und Löschvorgänge“ erstellt wird. In diesem Modus können Sie nur Änderungen lesen, die innerhalb des fortlaufenden Sicherungszeitraums vorgenommen wurden, der für das Konto konfiguriert wurde. Weitere Informationen, darunter die Registrierung in der Vorschau, finden Sie im Artikel zum Änderungsfeedmodus „Alle Versionen und Löschvorgänge“ .
Änderungsfeed in APIs für Cassandra und MongoDB
Die Funktionen des Änderungsfeeds werden in der API für MongoDB als Änderungsdatenstrom und in der API für Cassandra als Abfrage mit Prädikat verfügbar gemacht. Weitere Informationen zu den Implementierungsdetails für die API für MongoDB finden Sie unter Änderungsdatenströme in Azure Cosmos DB-API for MongoDB.
Natives Apache Cassandra bietet Change Data Capture (CDC). Hierbei handelt es sich um einen Mechanismus zum Markieren bestimmter Tabellen für die Archivierung sowie zum Ablehnen von Schreibvorgängen in diesen Tabellen, nachdem eine konfigurierbare Größe auf dem Datenträger für das CDC-Protokoll erreicht wurde. Der Änderungsfeed in Azure Cosmos DB for Apache Cassandra verbessert die Möglichkeit, die Änderungen mit Prädikaten über CQL abzufragen. Weitere Informationen zu den Implementierungsdetails finden Sie unter Änderungsfeed in Azure Cosmos DB for Apache Cassandra.
Messen des Verbrauchs von Anforderungseinheiten des Änderungsfeeds
Der Änderungsfeed ist in jedem Container verfügbar – unabhängig davon, ob er genutzt wird. Die einzigen Kosten für den Änderungsfeed sind der bereitgestellte Durchsatz des Leasecontainers und die RUs (Anforderungseinheiten) für jede Anforderung. Verwenden Sie Azure Monitor, um den RU-Verbrauch des Änderungsfeeds zu messen. Weitere Informationen finden Sie unter Überwachen des Durchsatzes oder der Anforderungseinheitsnutzung eines Vorgangs.
Nächste Schritte
In den folgenden Artikeln erfahren Sie mehr über Änderungsfeeds: