Partilhar via


Compactação de log nos Hubs de Eventos do Azure

A compactação de logs é uma maneira de reter dados em Hubs de Eventos usando a retenção baseada em chave de evento. Por padrão, cada hub de eventos/tópico Kafka é criado com retenção baseada em tempo ou a política de limpeza de exclusão, onde os eventos são limpos após a expiração do tempo de retenção. Em vez de usar a retenção baseada em tempo de grão mais grosseiro, você pode usar o mecanismo de retenção baseado em chave de evento em que os Hubs de Eventos treinam novamente o último valor conhecido para cada chave de evento de um hub de eventos ou de um tópico Kafka.

Nota

O recurso de compactação de log não é suportado na camada básica *.

Conforme mostrado na imagem a seguir, um log de eventos (de uma partição de hub de eventos) pode ter vários eventos com a mesma chave. Se você estiver usando um hub de eventos compactado, o serviço Hubs de Eventos cuidará de limpar eventos antigos e manter apenas os eventos mais recentes de uma determinada chave de evento.

Diagrama mostrando como um tópico é compactado.

Chave de compactação

A chave de partição que você define com cada evento é usada como a chave de compactação.

Lápides

O aplicativo cliente pode marcar eventos existentes de um hub de eventos a serem excluídos durante o trabalho de compactação. Estes marcadores são conhecidos como lápides. Os aplicativos cliente definem lápides enviando um novo evento com uma chave existente e uma null carga útil do evento.

Como funciona a compactação de log

Você pode habilitar a compactação de log em cada hub de eventos/nível de tópico Kafka. Você pode ingerir eventos em um artigo compactado a partir de qualquer protocolo de suporte. O serviço Hubs de Eventos do Azure executa um trabalho de compactação para cada hub de eventos compactado. O trabalho de compactação limpa cada log de partição do hub de eventos retendo apenas o evento mais recente de uma determinada chave de evento.

Diagrama mostrando como funciona a compactação de log.

A qualquer momento, o log de eventos de um hub de eventos compactado pode ter uma parte limpa e uma parte suja . A parte limpa contém os eventos que são compactados pelo trabalho de compactação, enquanto a parte suja compreende os eventos que ainda não foram compactados.

O serviço Hubs de Eventos gerencia a execução do trabalho de compactação e o usuário não pode controlá-lo. Portanto, o serviço Hubs de Eventos determina quando iniciar a compactação e com que rapidez ele compacta um determinado hub de eventos compactado.

Garantias de compactação

O recurso de compactação de log dos Hubs de Eventos fornece a seguinte garantia:

  • A ordenação das mensagens é sempre mantida ao nível da chave e da partição. O trabalho de compactação não altera a ordem das mensagens, mas apenas descarta os eventos antigos da mesma chave.
  • O número de sequência e o deslocamento de uma mensagem nunca mudam.
  • Qualquer consumidor que progrida desde o início do log de eventos vê pelo menos o estado final de todos os eventos na ordem em que foram escritos.
  • Os consumidores ainda podem ver eventos marcados para serem excluídos pelo tempo definido pelo Tempo de retenção da lápide (horas).

Casos de uso de compactação de log

A compactação de log pode ser útil em cenários em que você transmite o mesmo conjunto de eventos atualizáveis. Como os hubs de eventos compactados mantêm apenas os eventos mais recentes, os usuários não precisam se preocupar com o crescimento do armazenamento de eventos. Portanto, a compactação de log é comumente usada em cenários como Change Data Capture (CDC), mantendo eventos em tabelas para aplicativos de processamento de fluxo e cache de eventos.

Quotas e limites

Limite Básica Standard Premium Dedicada
Tamanho do hub de eventos compactado N/A 1 GB por partição 250 GB por partição 250 GB por partição

Para outras cotas e limites, consulte Cotas e limites de Hubs de Eventos.

Próximos passos

Para obter instruções sobre como usar a compactação de log em Hubs de Eventos, consulte Usar compactação de log