Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP:
NoSQL
MongoDB
Cassandra
Gremlin
De wijzigingenfeed in Azure Cosmos DB is een permanente record van wijzigingen in een container in de volgorde waarin de wijzigingen plaatsvinden. Wijzigingenfeed-ondersteuning in Azure Cosmos DB werkt door te luisteren naar een Azure Cosmos DB-container voor wijzigingen. Als output verschijnt er vervolgens een gesorteerde lijst met gewijzigde documenten op volgorde van wijziging. De persistente wijzigingen kunnen asynchroon en incrementeel worden verwerkt en de uitvoer kan worden gedistribueerd over een of meer consumenten voor parallelle verwerking.
Zie Ontwerppatronen voor wijzigingenfeeds in Azure Cosmos DB voor meer informatie.
Ondersteunde API's en client-SDK's
De functie voor wijzigingenfeeds wordt momenteel ondersteund in de volgende Azure Cosmos DB SDK's.
| Clientstuurprogramma's | NoSQL | Apache Cassandra | MongoDB | Apache Gremlin | Tabel | PostgreSQL |
|---|---|---|---|---|---|---|
| .NET |
|
|
|
|
|
|
| Java |
|
|
|
|
|
|
| Python |
|
|
|
|
|
|
| Node/JavaScript |
|
|
|
|
|
|
Werken met wijzigingenfeed
U kunt met de wijzigingenfeed werken met behulp van de volgende opties:
- Wijzigingenfeed gebruiken met Azure Functions
- Wijzigingenfeed gebruiken met verwerker van wijzigingenfeed
- Wijzigingenfeed gebruiken met het pull-model
- Wijzigingenfeed gebruiken met Apache Spark
Wijzigingenfeed is beschikbaar voor partitiesleutelbereiken van een Azure Cosmos DB-container. Hierdoor kan deze worden gedistribueerd over een of meer consumenten voor parallelle verwerking, zoals wordt weergegeven in de volgende afbeelding.
Notitie
Partitiesleutelbereiken worden toegewezen aan fysieke partities wanneer u de wijzigingenfeedprocessor gebruikt en FeedRanges wanneer u het pull-model gebruikt.
Functies van wijzigingenfeed
De wijzigingenfeed is standaard ingeschakeld voor alle Azure Cosmos DB-accounts.
Er zijn meerdere modi voor wijzigingenfeeds, waarvan sommige extra configuratie vereisen om in te schakelen.
U kunt uw ingerichte doorvoer gebruiken om te lezen uit de wijzigingenfeed, net als elke andere Azure Cosmos DB-bewerking, in een van de regio's die zijn gekoppeld aan uw Azure Cosmos DB-account.
De wijzigingenfeed bevat invoeg- en updatebewerkingen die zijn aangebracht in items in de container. Als u alle versies gebruikt en de modus voor verwijderen (preview) gebruikt, krijgt u ook wijzigingen van verwijderingsbewerkingen en TTL-vervaldatums.
Elke wijziging wordt precies eenmaal weergegeven in de wijzigingenfeed en de clients moeten de controlepuntlogica beheren. Als u de complexiteit van het beheren van controlepunten wilt voorkomen, biedt de wijzigingenfeedprocessor automatische controlepunten en semantiek ten minste één keer. Raadpleeg De wijzigingsfeed-processor in Azure Cosmos DB voor meer informatie.
Wijzigingen zijn parallel beschikbaar voor partitiesleutelbereiken van een Azure Cosmos DB-container. Met deze mogelijkheid kunnen meerdere consumenten wijzigingen van grote containers parallel verwerken.
Toepassingen kunnen meerdere wijzigingsfeeds aanvragen met behulp van elke modus op dezelfde container tegelijk.
Het beginpunt voor de wijzigingenfeed kan worden aangepast en er zijn verschillende opties beschikbaar voor elke modus.
Sorteervolgorde van items in wijzigingenfeed
Wijzigingenfeeditems komen in de volgorde van hun wijzigingstijd. Deze sorteervolgorde wordt gegarandeerd per partitiesleutel en er is geen gegarandeerde volgorde tussen de waarden van de partitiesleutel. Items die in het bereik van een transactionele batch, opgeslagen procedure of bulkmodusaanvraag zijn geschreven, hebben dezelfde wijzigingstijd en wijzigingen binnen dat bereik kunnen in elke volgorde worden geleverd.
Notitie
Voor schrijfaccounts voor meerdere regio's zijn er twee tijdstempels:
- De tijdsperiode van de server waarop de record is geschreven in de lokale regio. Dit wordt vastgelegd als
_ts. - Het tijdstip in epoch waarop het ontbreken van een conflict is bevestigd, of het conflict is opgelost in de hubregio voor dat record. Dit wordt vastgelegd als
crts.
Items in de wijzigingsfeed worden geleverd in de volgorde die is vastgelegd door crts.
Wijzigingsfeed in Azure Cosmos DB-accounts voor meerdere regio's
In een Azure Cosmos DB-account met meerdere regio's zijn wijzigingen in één regio beschikbaar in alle regio's. Als een failover van een schrijfregio wordt uitgevoerd, werkt de wijzigingenfeed tijdens de handmatige failoverbewerking en is deze aaneengesloten. Voor accounts met meerdere schrijfregio's is er geen garantie dat wijzigingen beschikbaar zijn. Binnenkomende wijzigingen in hetzelfde document kunnen worden verwijderd in de nieuwste versiemodus als er een recentere wijziging in een andere regio is, en alle wijzigingen worden vastgelegd in de modus voor alle versies en verwijderingen.
Feedmodi wijzigen
Er zijn twee modussen voor wijzigingenfeeds beschikbaar: nieuwste versie modus en modus voor alle versies en verwijderingen. De modus waarin de wijzigingenfeed wordt gelezen, bepaalt vanaf welke bewerkingen wijzigingen worden vastgelegd en welke metagegevens beschikbaar zijn voor elke wijziging. Het is mogelijk om de wijzigingenfeed in verschillende modi te gebruiken in meerdere toepassingen voor dezelfde Azure Cosmos DB-container.
Meest recente versiemodus
In de nieuwste versie van de wijzigingsfeedmodus ziet u de meest recente wijziging van een invoeg- of update voor alle items in de feed en is de feed beschikbaar voor de levensduur van de container. Er is geen indicatie of een bepaalde wijziging afkomstig is van een invoeg- of updatebewerking, en verwijderingen worden niet vastgelegd. Wijzigingen kunnen vanaf elk moment worden gelezen tot aan de oorsprong van uw container. Als een item echter wordt verwijderd, wordt het verwijderd uit de wijzigingenfeed. Zie de nieuwste versie van de wijzigingenfeedmodus voor meer informatie.
Alle versies en verwijdermodus (preview)
Met alle versies en verwijderingsmodus kunt u alle wijzigingen in items zien van maken, bijwerken en verwijderen. U krijgt een record van elke wijziging in items in de volgorde waarin deze is opgetreden, inclusief tussenliggende wijzigingen in een item tussen leesbewerkingen van wijzigingenfeeds. Om uit de wijzigingenfeed te lezen in de modus van alle versies en verwijderingen, moet u doorlopende back-ups geconfigureerd hebben voor uw Azure Cosmos DB-account. Hierdoor worden Azure Cosmos DB-wijzigingsfeeds voor alle versies en verwijderingen aangemaakt. In deze modus kunt u alleen wijzigingen lezen die zijn opgetreden binnen de continue back-upperiode die is geconfigureerd voor het account. Zie het artikel over alle versies en het verwijderen van de wijzigingsfeedmodus voor meer informatie, inclusief hoe u zich kunt inschrijven in de preview.
Wijzigingsfeed in API's van Cassandra en MongoDB
De functionaliteit van de wijzigingenfeed wordt weergegeven als wijzigingsstroomweergave in de API voor MongoDB en opvragen met predicaat in de API voor Cassandra. Zie de wijzigingenstromen in de Azure Cosmos DB-API voor MongoDB voor meer informatie over de implementatiedetails voor API voor MongoDB.
Systeemeigen Apache Cassandra biedt change data capture (CDC), een mechanisme voor het markeren van specifieke tabellen voor archivering en het weigeren van schrijfbewerkingen naar die tabellen zodra een configureerbare grootte voor het CDC-logboek is bereikt. De functie voor wijzigingenfeeds in Azure Cosmos DB voor Apache Cassandra verbetert de mogelijkheid om query's uit te voeren op de wijzigingen met predicaat via CQL. Zie Wijzigingenfeed in Azure Cosmos DB voor Apache Cassandra voor meer informatie over de implementatiedetails.
Het meten van het verbruik van aanvraageenheden voor de wijzigingsfeed
De wijzigingenfeed is beschikbaar in elke container, ongeacht of deze wordt gebruikt. De enige kosten voor de wijzigingenfeed zijn de ingerichte doorvoer- en aanvraageenheden (RU's) van de leasecontainer voor elke aanvraag. Gebruik Azure Monitor om het RU-verbruik van de wijzigingenfeed te meten. Zie Het gebruik van doorvoer- of aanvraageenheden van een bewerking controleren voor meer informatie.
Volgende stappen
U kunt nu verdergaan met meer informatie over wijzigingenfeed in de volgende artikelen: