Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O feed de alterações no Azure Cosmos DB é um registro persistente de alterações em um contêiner na ordem em que as alterações ocorrem. O suporte do feed de alterações no Azure Cosmos DB funciona através da escuta de alterações num contentor do Azure Cosmos DB. Em seguida, disponibiliza a lista ordenada dos documentos que foram alterados, pela ordem pela qual foram modificados. As alterações persistentes podem ser processadas de forma assíncrona e incremental, e a saída pode ser distribuída entre um ou mais consumidores para processamento paralelo.
Para saber mais, consulte Alterar padrões de design de feed no Azure Cosmos DB.
APIs suportadas e SDKs de cliente
O recurso de feed de alterações é atualmente suportado nos seguintes SDKs do Azure Cosmos DB.
| Drivers cliente | NoSQL | Apache Cassandra | MongoDB | Apache Gremlin | Tabela | PostgreSQL |
|---|---|---|---|---|---|---|
| .NET |
|
|
|
|
|
|
| Java |
|
|
|
|
|
|
| Python |
|
|
|
|
|
|
| Node.js/JavaScript |
|
|
|
|
|
|
Trabalhar com fluxo de alterações
Você pode trabalhar com o feed de alterações usando as seguintes opções:
- Usar feed de alterações com o Azure Functions
- Usar fluxo de alterações com o processador de feed de alterações
- Usar o feed de alterações com o modelo pull
- Usar feed de alterações com o Apache Spark
O feed de alterações está disponível para intervalos de chaves de partição de um contêiner do Azure Cosmos DB. Isso permite que ele seja distribuído entre um ou mais consumidores para processamento paralelo, conforme mostrado na imagem a seguir.
Nota
Os intervalos de chaves de partição são mapeados para partições físicas ao usar o processador de alimentação de alterações e ao usar o modelo FeedRanges.
Características do feed de alterações
O feed de alterações é habilitado por padrão para todas as contas do Azure Cosmos DB.
Existem vários modos de alimentação de alterações, alguns dos quais requerem configuração extra para serem ativados.
Você pode usar sua taxa de transferência provisionada para ler o feed de alterações, assim como qualquer outra operação do Azure Cosmos DB, em qualquer uma das regiões associadas à sua conta do Azure Cosmos DB.
O feed de alterações inclui operações de inserção e atualização feitas em itens dentro do contêiner. Se você estiver usando todas as versões e o modo de exclusão (visualização), também obterá 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, e os clientes devem gerenciar a lógica de ponto de verificação. Se pretender evitar a complexidade da gestão de pontos de verificação, o processador de fluxo de alterações fornece pontos de verificação automáticos e semântica de "pelo menos uma vez". Para obter mais informações, consulte Alterar processador de feed no Azure Cosmos DB.
As alterações estão disponíveis em paralelo para intervalos de chaves de partição de um contêiner do Azure Cosmos DB. Esse recurso permite que vários consumidores processem alterações de grandes contêineres em paralelo.
Os aplicativos podem solicitar vários feeds de alteração usando qualquer modo no mesmo contêiner simultaneamente.
O ponto de partida para o feed de alterações pode ser personalizado e diferentes opções estão disponíveis para cada modo.
Ordem de classificação dos itens no feed de alterações
Os itens de feed de alteração vêm na ordem de seu tempo de modificação. Essa ordem de classificação é garantida por chave de partição e não há ordem garantida nos valores da chave de partição. Os itens escritos no escopo de um lote transacional, procedimento armazenado ou solicitação de modo em massa têm o mesmo tempo de modificação, e as alterações dentro desse escopo podem ser entregues em qualquer ordem.
Nota
Para contas de gravação de várias regiões, há dois carimbos de data/hora:
- O tempo de época do servidor em que o registo foi escrito na região local. Isto é registado como
_ts. - A época em que a ausência de um conflito foi confirmada, ou o conflito foi resolvido na região central para esse registro. Isto é registado como
crts.
Os itens do feed de alteração vêm pela ordem registada por crts.
Alterar feed em contas do Azure Cosmos DB de 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 falhar, o feed de alterações continuará a funcionar perfeitamente durante toda a operação de failover manual e será contínuo, sem interrupções. 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 recebidas no mesmo documento podem 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ão.
Alterar modos de transmissão
Há dois modos de feed de alteração disponíveis: o modo de versão mais recente e modo de todas as versões e eliminações. O modo em que o feed de alterações é lido determina de quais operações as alterações são capturadas e os metadados disponíveis para cada alteração. É possível consumir o feed de alterações em diferentes modos em vários aplicativos para o mesmo contêiner do Azure Cosmos DB.
Modo de versão mais recente
No modo de feed de alterações da versão mais recente, vê a última alteração de uma inserção ou atualização para todos os itens no feed, e o feed está disponível ao longo de toda 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 momento, desde a origem do seu contentor. No entanto, se um item for excluído, ele será removido do feed de alterações. Para saber mais, consulte o modo mais recente de feed de alterações de versão.
Todas as versões e modo de eliminação em pré-visualização
O modo Todas as versões e exclusões permite que você veja todas as alterações nos itens de criações, atualizações e exclusões. Você obtém um registro de cada alteração nos itens na ordem em que ocorreu, incluindo alterações intermediárias em um item entre as leituras do feed de alterações. Para ler a partir do feed de alterações em todas as versões e no modo de exclusão, você deve ter backups contínuos configurados para sua conta do Azure Cosmos DB, que cria o Azure Cosmos DBs todas as versões e exclui o feed de alterações. Nesse modo, você só pode ler as alterações que ocorreram dentro do período de backup contínuo configurado para a conta. Consulte o artigo Todas as versões e exclusões alteram o modo de feed para saber mais, incluindo como se inscrever na visualização.
Alterar feed em APIs para Cassandra e MongoDB
A funcionalidade de feed de alterações é apresentada como fluxo de alterações na API para MongoDB e Query com predicado na API para Cassandra. Para saber mais sobre os detalhes de implementação da API para MongoDB, consulte Change streams na API do Azure Cosmos DB para MongoDB.
O Apache Cassandra nativo fornece captura de dados de alteração (CDC), um mecanismo para sinalizar tabelas específicas para arquivamento e rejeição de gravações nessas tabelas assim que um tamanho configurável no disco para o log CDC é alcançado. O recurso de feed de alterações no Azure Cosmos DB para Apache Cassandra melhora a capacidade de consultar alterações utilizando predicados através de CQL. Para saber mais sobre os detalhes da implementação, consulte Alterar feed no Azure Cosmos DB para Apache Cassandra.
Meça o consumo unitário de solicitação de mudança de alimentação
O feed de mudança está disponível em todos os recipientes, independentemente de estar a ser utilizado. O único custo para o fluxo de alterações é a taxa de transferência provisionada do contêiner de aluguer e as unidades de solicitação (RUs) para cada solicitação. Use o Azure Monitor para medir o consumo de RU do feed de alterações. Para obter mais informações, consulte Como monitorar a taxa de transferência ou solicitar o uso da unidade de uma operação.
Próximos passos
Agora você pode continuar para saber mais sobre o feed de alterações nos seguintes artigos: