Capturar eventos através de Hubs de Eventos do Azure em Armazenamento de Blobs do Azure ou Azure Data Lake Storage
Hubs de Eventos do Azure permite-lhe capturar automaticamente os dados de transmissão em fluxo nos Hubs de Eventos num armazenamento de Blobs do Azure ou Azure Data Lake Storage conta Gen 1 ou Gen 2 à sua escolha, com a flexibilidade adicional de especificar um intervalo de tempo ou tamanho. A configuração da Captura é rápida, não existem custos administrativos para executá-la e dimensiona-se automaticamente com unidades de débito dos Hubs de Eventos no escalão padrão ou unidades de processamento no escalão premium. A Captura de Hubs de Eventos é a forma mais fácil de carregar dados de transmissão em fluxo para o Azure e permite-lhe concentrar-se no processamento de dados e não na captura de dados.
Nota
Configurar a Captura de Hubs de Eventos para utilizar Azure Data Lake Storage Gen2 é o mesmo que configurá-la para utilizar um Armazenamento de Blobs do Azure. Para obter detalhes, veja Configurar a Captura de Hubs de Eventos.
A Captura de Hubs de Eventos permite-lhe processar pipelines em tempo real e baseados em lotes no mesmo fluxo. Isto significa que pode criar soluções que cresçam com as suas necessidades ao longo do tempo. Quer esteja a criar sistemas baseados em lotes hoje em dia com vista ao processamento futuro em tempo real ou se pretende adicionar um caminho frio eficiente a uma solução existente em tempo real, a Captura de Hubs de Eventos facilita o trabalho com dados de transmissão em fluxo.
Importante
- A conta de armazenamento de destino (Armazenamento do Microsoft Azure ou Azure Data Lake Storage) tem de estar na mesma subscrição que o hub de eventos.
- Os Hubs de Eventos não suportam a captura de eventos numa conta de armazenamento premium .
Como funciona a Captura de Hubs de Eventos
Os Hubs de Eventos são uma memória intermédia durável de retenção de tempo para entrada de telemetria, semelhante a um registo distribuído. A chave para o dimensionamento nos Hubs de Eventos é o modelo de consumidor particionado. Cada partição é um segmento independente de dados e é consumida de forma independente. Ao longo do tempo, estes dados envelhecem, com base no período de retenção configurável. Como resultado, um determinado hub de eventos nunca fica "demasiado cheio".
A Captura de Hubs de Eventos permite-lhe especificar a sua própria conta e contentor de Armazenamento de Blobs do Azure, ou Azure Data Lake Storage conta, que são utilizadas para armazenar os dados capturados. Estas contas podem estar na mesma região que o hub de eventos ou noutra região, aumentando a flexibilidade da funcionalidade Captura de Hubs de Eventos.
Os dados capturados são escritos no formato Apache Avro : um formato binário compacto, rápido e rápido que fornece estruturas de dados avançadas com esquema inline. Este formato é amplamente utilizado no ecossistema do Hadoop, no Stream Analytics e no Azure Data Factory. Mais informações sobre como trabalhar com o Avro estão disponíveis mais adiante neste artigo.
Nota
Quando não utiliza nenhum editor de código no portal do Azure, pode capturar dados de transmissão em fluxo nos Hubs de Eventos numa conta Azure Data Lake Storage Gen2 no formato Parquet. Para obter mais informações, veja Como capturar dados dos Hubs de Eventos no formato Parquet e Tutorial: capturar dados dos Hubs de Eventos no formato Parquet e analisar com o Azure Synapse Analytics.
Janela de captura
A Captura de Hubs de Eventos permite-lhe configurar uma janela para controlar a captura. Esta janela é uma configuração de tamanho e tempo mínima com uma "política de primeira vitória", o que significa que o primeiro acionador encontrado causa uma operação de captura. Se tiver uma janela de captura de 15 minutos e 100 MB e enviar 1 MB por segundo, a janela de tamanho é acionada antes da janela de tempo. Cada partição captura de forma independente e escreve um blob de blocos concluído no momento da captura, com o nome para o momento 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 acolchoados com zeros; um nome de ficheiro 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 dos Hubs de Eventos irá reter os dados do período de retenção de dados configurado no hub de eventos e voltar a preencher os dados assim que a sua conta de armazenamento estiver novamente disponível.
Dimensionar unidades de débito ou unidades de processamento
No escalão padrão dos Hubs de Eventos, o tráfego é controlado por unidades de débito e, nos Hubs de Eventos de escalão premium, é controlado por unidades de processamento. Os Hubs de Eventos Capturam cópias de dados diretamente do armazenamento interno dos Hubs de Eventos, ignorando a unidade de débito ou as quotas de saída de unidades de processamento e guardando a saída para outros leitores de processamento, como o Stream Analytics ou o Spark.
Depois de configurado, a Captura de Hubs de Eventos é executada automaticamente quando envia o seu primeiro evento e continua em execução. Para que seja mais fácil para o processamento a jusante saber que o processo está a funcionar, os Hubs de Eventos escrevem ficheiros vazios quando não existem dados. Este processo fornece uma cadência e um marcador previsíveis que podem alimentar os processadores de lotes.
Configurar a Captura de Hubs de Eventos
Pode configurar a Captura no momento de criação do hub de eventos com o portal do Azure ou com os modelos de Resource Manager do Azure. Para obter mais informações, veja os seguintes artigos:
- Ativar a funcionalidade de Captura de Hubs de Eventos no portal do Azure
- Criar um espaço de nomes de Hubs de Eventos com o hub de um evento e ativar a Captura através de um modelo do Azure Resource Manager
Nota
Se ativar a funcionalidade Captura para um hub de eventos existente, a funcionalidade captura os eventos que chegam ao hub de eventos depois de a funcionalidade estar ativada. Não captura eventos que existiam no hub de eventos antes de a funcionalidade ser ativada.
Como é cobrada a Captura dos Hubs de Eventos
A funcionalidade de captura está incluída no escalão premium, pelo que não há custos adicionais para esse escalão. Para o escalão Standard, a funcionalidade é cobrada mensalmente e o custo é diretamente proporcional ao número de unidades de débito ou unidades de processamento compradas para o espaço de nomes. À medida que as unidades de débito ou unidades de processamento são aumentadas e diminuídas, os Medidores de Captura dos Hubs de Eventos aumentam e diminuem para proporcionar um desempenho correspondente. Os medidores ocorrem em conjunto. Para obter detalhes sobre os preços, veja Preços dos Hubs de Eventos.
A captura não consome quota de saída, uma vez que é faturada separadamente.
Integração com o Event Grid
Pode criar uma subscrição Azure Event Grid com um espaço de nomes dos Hubs de Eventos como origem. O tutorial seguinte mostra-lhe como criar uma subscrição do Event Grid com um hub de eventos como origem e uma aplicação Funções do Azure como um sink: Processar e migrar dados dos Hubs de Eventos capturados para um Azure Synapse Analytics com o Event Grid e Funções do Azure.
Explorar ficheiros capturados
Para saber como explorar ficheiros Avro capturados, veja Explorar ficheiros Avro capturados.
Passos seguintes
A Captura de Hubs de Eventos é a forma mais fácil de obter dados para o Azure. Com o Azure Data Lake, o Azure Data Factory e o Azure HDInsight, pode efetuar o processamento em lotes e outras análises com ferramentas e plataformas familiares à sua escolha, a qualquer escala de que precise.
Saiba como ativar esta funcionalidade com o modelo portal do Azure e Resource Manager do Azure: