Capturar eventos por meio dos Hubs de Eventos do Azure no Armazenamento de Blobs do Azure ou no Armazenamento do Azure Data Lake
Os Hubs de Eventos do Azure permitem capturar automaticamente o streaming de dados por meio de Hubs de Eventos no armazenamento de Blob do Azure ou na conta Gen 1 ou Gen 2 do Azure Data Lake Storage de sua escolha. Ele também fornece a flexibilidade para você especificar um tempo ou um intervalo de tamanho. Habilitar ou configurar o recurso de Captura de Hubs de Eventos é rápido. Não há custos administrativos para executá-lo e ele é dimensionado automaticamente com unidades de taxa de transferência de Hubs de Eventos na camada padrão ou unidades de processamento na camada premium. A Captura de Hubs de Eventos é a maneira mais fácil de carregar dados de streaming no Azure e permite que você se concentre no processamento de dados em vez da captura de dados.
Nota
Configurar a Captura de Hubs de Eventos para usar o Azure Data Lake Storage Gen 2 é o mesmo que configurá-lo para usar um Armazenamento de Blobs do Azure. Para obter detalhes, consulte Configurar a captura de Hubs de Eventos.
O Event Hubs Capture permite processar pipelines em tempo real e baseados em lote no mesmo fluxo. Isso significa que você pode criar soluções que crescem de acordo com suas necessidades ao longo do tempo. Se você está construindo sistemas baseados em lote hoje com um olho para o processamento futuro em tempo real, ou você deseja adicionar um caminho frio eficiente a uma solução existente em tempo real, o Event Hubs Capture facilita o trabalho com dados de streaming.
Importante
- A conta de armazenamento de destino (Armazenamento do Azure ou Armazenamento do Azure Data Lake) deve estar na mesma assinatura que o hub de eventos quando não estiver usando a identidade gerenciada para autenticação.
- Os Hubs de Eventos não suportam a captura de eventos em uma conta de armazenamento premium.
- O Event Hubs Capture dá suporte a qualquer conta de armazenamento do Azure não premium com suporte para blobs de bloco.
Como funciona a captura de Hubs de Eventos
Os Hubs de Eventos são um buffer durável de retenção de tempo para entrada de telemetria, semelhante a um log distribuído. A chave para o dimensionamento em Hubs de Eventos é o modelo de consumidor particionado. Cada partição é um segmento independente de dados e é consumida independentemente. Com o tempo, esses dados envelhecem, com base no período de retenção configurável. Como resultado, um determinado hub de eventos nunca fica "muito cheio".
A Captura de Hubs de Eventos permite que você especifique sua própria conta e contêiner de armazenamento de Blob do Azure ou conta de Armazenamento do Azure Data Lake, que são usados para armazenar os dados capturados. Essas contas podem estar na mesma região do seu hub de eventos ou em outra região, aumentando a flexibilidade do recurso de captura de Hubs de Eventos.
Os dados capturados são escritos no formato Apache Avro : um formato compacto, rápido e binário que fornece estruturas de dados ricas com esquema embutido. Esse formato é amplamente usado no ecossistema Hadoop, no Stream Analytics e no Azure Data Factory. Mais informações sobre como trabalhar com a Avro estão disponíveis mais adiante neste artigo.
Nota
Quando você não usa nenhum editor de código no portal do Azure, pode capturar dados de streaming em Hubs de Eventos em uma conta do Azure Data Lake Storage Gen2 no formato Parquet . Para obter mais informações, consulte Como capturar dados de Hubs de Eventos no formato Parquet e Tutorial: capturar dados de Hubs de Eventos no formato Parquet e analisar com o Azure Synapse Analytics.
Capturar janelas
O Event Hubs Capture permite configurar uma janela para controlar a captura. Esta janela é uma configuração mínima de tamanho e tempo com uma "política de primeiro ganho", o que significa que o primeiro gatilho encontrado causa uma operação de captura. Se você tiver uma janela de captura de quinze minutos e 100 MB e enviar 1 MB por segundo, a janela de tamanho será acionada antes da janela de tempo. Cada partição captura de forma independente e grava um blob de bloco concluído no momento da captura, nomeado para o tempo em que o intervalo de captura foi encontrado. A convenção de nomenclatura de armazenamento é a seguinte:
{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}
Os valores de data são preenchidos com zeros; Um nome de arquivo de exemplo pode ser:
https://mystorageaccount.blob.core.windows.net/mycontainer/mynamespace/myeventhub/0/2017/12/08/03/03/17.avro
Se o blob de armazenamento do Azure estiver temporariamente indisponível, a Captura de Hubs de Eventos reterá seus dados durante o período de retenção de dados configurado no hub de eventos e preencherá novamente os dados assim que sua conta de armazenamento estiver disponível novamente.
Dimensionamento de unidades de rendimento ou unidades de processamento
Na camada padrão dos Hubs de Eventos, as unidades de taxa de transferência controlam o tráfego e, nos Hubs de Eventos da camada premium, as unidades de processamento controlam o tráfego. Hubs de Eventos Capture cópias de dados diretamente do armazenamento interno dos Hubs de Eventos, ignorando as cotas de saída da unidade de taxa de transferência ou da unidade de processamento e salvando sua saída para outros leitores de processamento, como o Stream Analytics ou o Spark.
Uma vez configurado, o Event Hubs Capture é executado automaticamente quando você envia seu primeiro evento e continua em execução. Para facilitar o processamento downstream saber que o processo está funcionando, os Hubs de Eventos gravam arquivos vazios quando não há dados. Esse processo fornece uma cadência e um marcador previsíveis que podem alimentar seus processadores em lote.
Configurando a captura de Hubs de Eventos
Você pode configurar o Capture no momento da criação do hub de eventos usando o portal do Azure ou usando modelos do Azure Resource Manager. Para obter mais informações, consulte os seguintes artigos:
- Habilitar a captura de Hubs de Eventos usando o portal do Azure
- Criar um namespace de Hubs de Eventos com um hub de eventos e habilitar a Captura usando um modelo do Azure Resource Manager
Nota
Se você habilitar o recurso Capturar para um hub de eventos existente, o recurso capturará eventos que chegarão ao hub de eventos depois que o recurso for ativado. Ele não captura eventos que existiam no hub de eventos antes de o recurso ser ativado.
Como a captura de Hubs de Eventos é cobrada
O recurso de captura está incluído no nível premium, portanto, não há cobrança extra para esse nível. Para a camada Standard, o recurso é cobrado mensalmente e a cobrança é diretamente proporcional ao número de unidades de taxa de transferência ou unidades de processamento adquiridas para o namespace. À medida que as unidades de taxa de transferência ou unidades de processamento são aumentadas e diminuídas, os medidores de captura de Hubs de Eventos aumentam e diminuem para fornecer um desempenho correspondente. Os medidores ocorrem em conjunto. Para obter detalhes de preços, consulte Preços dos Hubs de Eventos.
A captura não consome cota de saída, pois é cobrada separadamente.
Integração com Event Grid
Você pode criar uma assinatura da Grade de Eventos do Azure com um namespace Hubs de Eventos como origem. O tutorial a seguir mostra como criar uma assinatura de Grade de Eventos com um hub de eventos como fonte e um aplicativo do Azure Functions como coletor: Processar e migrar dados capturados de Hubs de Eventos para uma Análise de Sinapse do Azure usando a Grade de Eventos e o Azure Functions.
Explore os arquivos capturados
Para saber como explorar arquivos Avro capturados, consulte Explorar arquivos Avro capturados.
Conta de Armazenamento do Azure como destino
Para habilitar a captura em um hub de eventos com o Armazenamento do Azure como destino de captura ou atualizar propriedades em um hub de eventos com o Armazenamento do Azure como destino de captura, o usuário ou entidade de serviço deve ter uma função RBAC (controle de acesso baseado em função) com as seguintes permissões atribuídas no escopo da conta de armazenamento.
Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Sem essa permissão, você verá o seguinte erro:
Generic: Linked access check failed for capture storage destination <StorageAccount Arm Id>.
User or the application with object id <Object Id> making the request doesn't have the required data plane write permissions.
Please enable Microsoft.Storage/storageAccounts/blobServices/containers/write, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write permission(s) on above resource for the user or the application and retry.
TrackingId:<ID>, SystemTracker:mynamespace.servicebus.windows.net:myhub, Timestamp:<TimeStamp>
O Proprietário de Dados de Blob de Armazenamento é uma função interna com permissões acima, portanto, adicione a conta de usuário ou a entidade de serviço a essa função.
Conteúdos relacionados
A Captura de Hubs de Eventos é a maneira mais fácil de obter dados no Azure. Usando o Azure Data Lake, o Azure Data Factory e o Azure HDInsight, você pode executar processamento em lote e outras análises usando ferramentas e plataformas familiares de sua escolha, em qualquer escala necessária.
Saiba como habilitar esse recurso usando o portal do Azure e o modelo do Azure Resource Manager: