Feed de alterações no Azure Cosmos DB

APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin

O feed de alterações no Azure Cosmos DB é um registro persistente de alterações em um contêiner na ordem em que ocorrem. O suporte para feed de alterações no Azure Cosmos DB funciona ouvindo um contêiner do Azure Cosmos DB para quaisquer alterações. Ele gera a lista classificada de documentos que foram alterados na ordem em que eles foram modificados. As alterações mantidas podem ser processadas de maneira assíncrona e incremental, e a saída pode ser distribuída em um ou mais consumidores para processamento paralelo.

Saiba mais sobre padrões de design do feed de alterações.

SDKs do cliente e APIs com suporte

Atualmente, há suporte para o recurso feed de alterações nos SDKs do Azure Cosmos DB a seguir.

Drivers do cliente NoSQL Apache Cassandra MongoDB Apache Gremlin Tabela PostgreSQL
.NET Icon indicating that this feature is supported in the .NET SDK for the API for NoSQL. Icon indicating that this feature is supported in the .NET SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the .NET SDK for the API for MongoDB. Icon indicating that this feature is supported in the .NET SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the .NET SDK for the API for Table. Icon indicating that this feature is not supported in the .NET SDK for the API for PostgreSQL.
Java Icon indicating that this feature is supported in the Java SDK for the API for NoSQL. Icon indicating that this feature is supported in the Java SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the Java SDK for the API for MongoDB. Icon indicating that this feature is supported in the Java SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the Java SDK for the API for Table. Icon indicating that this feature is not supported in the Java SDK for the API for PostgreSQL.
Python Icon indicating that this feature is supported in the Python SDK for the API for NoSQL. Icon indicating that this feature is supported in the Python SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the Python SDK for the API for MongoDB. Icon indicating that this feature is supported in the Python SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the Python SDK for the API for Table. Icon indicating that this feature is not supported in the Python SDK for the API for PostgreSQL.
Node/JavaScript Icon indicating that this feature is supported in the JavaScript SDK for the API for NoSQL. Icon indicating that this feature is supported in the JavaScript SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the JavaScript SDK for the API for MongoDB. Icon indicating that this feature is supported in the JavaScript SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the JavaScript SDK for the API for Table. Icon indicating that this feature is not supported in the JavaScript SDK for the API for PostgreSQL.

Trabalhando com o feed de alterações

É possível trabalhar com o feed de alterações usando as seguintes opções:

O feed de alterações está disponível para intervalos de chaves de partição de um contêiner do Azure Cosmos DB. Dessa forma, ele pode ser distribuído entre um ou mais consumidores para processamento paralelo, conforme exibido na imagem abaixo.

Distributed processing of Azure Cosmos DB change feed

Observação

Os intervalos de chaves de partição são mapeados para partições físicas ao usar o processador do feed de alterações e FeedRanges ao usar o modelo de pull.

Recursos do feed de alterações

  • O feed de alterações é habilitado por padrão para todas as contas do Azure Cosmos DB.

  • Há vários modos de feed de alterações, alguns dos quais exigem configuração adicional para habilitação.

  • É possível usar a taxa de transferência provisionada para ler do feed de alterações, assim como qualquer outra operação do Azure Cosmos DB, em qualquer uma das regiões associadas à conta do Azure Cosmos DB.

  • O feed de alterações inclui inserções e operações de atualização feitas em itens dentro do contêiner. Se você estiver usando todas as versões e o modo de exclusões (versão prévia), também receberá alterações de operações de exclusão e expirações de TTL.

  • Cada alteração aparece exatamente uma vez no feed de alterações, sendo que os clientes devem gerenciar a lógica do ponto de verificação. Se desejar evitar a complexidade de gerenciar pontos de verificação, o processador do feed de alterações fornecerá um ponto de verificação automático e semântica "pelo menos uma vez". Para obter mais informações, consulte o artigo usando o feed de alterações com processador de feed de alterações.

  • As alterações estão disponíveis em paralelo para as faixas das chaves de partição de um contêiner do Azure Cosmos DB. Essa funcionalidade permite que vários consumidores processem as alterações de grandes contêineres em paralelo.

  • Os aplicativos podem solicitar vários feeds de alterações no mesmo contêiner simultaneamente.

  • O ponto de partida para o feed de alterações pode ser personalizado e opções diferentes estão disponíveis para cada modo.

Ordem de classificação de itens no feed de alterações

Os itens do feed de alterações são organizados na ordem da hora de modificação. Essa ordem de classificação é garantida por chave de partição e não há ordens garantidas entre os valores de chave de partição.

Feed de alterações em contas do Azure Cosmos DB em várias regiões

Em uma conta do Azure Cosmos DB de várias regiões, as alterações em uma região estão disponíveis em todas as regiões. Se uma região de gravação faz failover, o feed de alterações funciona em toda a operação de failover manual e é contíguo. Para contas com várias regiões de gravação, não há garantia de quando as alterações estarão disponíveis. As alterações de entrada no mesmo documento poderão ser descartadas no modo de versão mais recente se houver uma alteração mais recente em outra região, e todas as alterações serão capturadas em todas as versões e no modo de exclusões.

Alterar modos de feed

Há dois modos de feed de alterações disponíveis: modo de versão mais recente e todas as versões e modo de exclusões. O modo no qual o feed de alterações é lido determina de quais alterações de operações são capturadas e os metadados disponíveis para cada alteração. É possível consumir o feed de alterações em modos diferentes em vários aplicativos para o mesmo contêiner do Azure Cosmos DB.

Modo de versão mais recente

No modo de versão mais recente do feed de alterações, você vê a alteração mais recente de uma inserção ou atualização para todos os itens no feed e o feed está disponível para a vida útil do contêiner. Não há indicação se uma determinada alteração é de uma inserção ou de uma operação de atualização e as exclusões não são capturadas. As alterações podem ser lidas a partir de qualquer ponto no tempo, desde a origem do contêiner. No entanto, se um item é excluído, ele é removido do feed de alterações. Confira o artigo sobre o modo de versão mais recente do feed de alterações para saber mais.

Modo de todas as versões e exclusões (versão prévia)

O modo de todas as versões e exclusões permite que você veja todas as alterações em itens de criações, atualizações e exclusões. Você obtém um registro de cada alteração em itens na ordem em que ocorreu, incluindo alterações intermediárias em um item entre as leituras do feed de alterações. Para ler o feed de alterações no modo de todas as versões e exclusões, você deve ter backups contínuos configurados para sua conta do Azure Cosmos DB, que cria o feed de alterações de todas as versões e exclusões do Azure Cosmos DBs. Nesse modo, você só pode ler as alterações que ocorreram dentro do período de backup contínuo configurado para a conta. Confira o artigo modo de todas as versões e exclusões do feed de alterações para saber mais, incluindo como se inscrever na versão prévia.

Feed de alterações em APIs para Cassandra e MongoDB

A funcionalidade do feed de alterações é transmitida como fluxos de alteração na API do MongoDB e consulta com predicado na API do Cassandra. Para saber mais sobre os detalhes de implementação para a API do MongoDB, consulte Fluxos de alteração na API do Azure Cosmos DB para MongoDB.

O Apache Cassandra nativo fornece a CDC (captura de dados de alterações), um mecanismo para sinalizar tabelas específicas para arquivamento e rejeição das gravações nessas tabelas assim que um tamanho configurável em disco para o log da CDC for atingido. O recurso do feed de alterações no Azure Cosmos DB for Apache Cassandra aprimora a capacidade de consultar as alterações com o predicado por meio de CQL. Para saber mais sobre os detalhes de implementação, consulte Feed de alterações no Azure Cosmos DB for Apache Cassandra.

Como medir o consumo da unidade de solicitação do feed de alterações

O feed de alterações está disponível em todos os contêineres, independentemente de ser utilizado. O único custo para o feed de alterações é a taxa de transferência provisionada do contêiner de concessão e as RUs para cada solicitação. Use o Azure Monitor para medir o consumo de RU (unidade de solicitação) do feed de alterações. Para mais informações, confira monitorar a taxa de transferência ou o uso da unidade de solicitação no Azure Cosmos DB.

Próximas etapas

Agora, você pode prosseguir para saber mais sobre o feed de alterações nos seguintes artigos: