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.
Este artigo compara as opções de tecnologia para processamento de fluxo em tempo real no Azure.
Visão geral dos dados de streaming
As organizações geralmente têm várias fontes de dados que emitem simultaneamente mensagens, registros ou dados. A quantidade de dados pode variar de alguns bytes a vários megabytes (MB). Os dados de streaming são emitidos em grande volume de forma contínua e incremental que pode ser processada quase em tempo real. Esse tipo de dados inclui informações que as empresas usam para análises em tempo real e visibilidade de vários aspetos de seus negócios, como logs de aplicativos, atualizações de geolocalização, eventos e leituras de sensores.
O streaming de dados geralmente tem as seguintes características:
Integridade imperfeita dos dados: Erros temporários na origem podem resultar na falta de elementos de dados. A natureza contínua do fluxo pode introduzir inconsistência de dados. Portanto, os sistemas de processamento e análise de fluxo normalmente incluem lógica para validação de dados para mitigar esses erros.
Fluxo de dados contínuo: Um fluxo de dados não tem início nem fim, por isso tem de recolher dados constantemente. Por exemplo, os logs de atividade do servidor se acumulam enquanto o servidor é executado.
Diversos formatos de dados: Você pode transmitir dados em vários formatos, como JSON, Avro e CSV. E pode incluir vários tipos de dados, como cadeias de caracteres, números, datas e tipos binários. Os sistemas de processamento de fluxo devem lidar com essas variações de dados.
Ordem de dados sensível ao tempo: Os elementos individuais num fluxo de dados contêm marcadores temporais. E o fluxo de dados em si pode ser sensível ao tempo e perder valor após um tempo específico. Em alguns casos, você precisa preservar a ordem de processamento de dados.
Opções tecnológicas para processamento em tempo real
Para ajudá-lo a escolher a tecnologia certa, esta seção descreve opções comuns no Azure, desde a ingestão até o consumo. Cada subseção destaca as tecnologias recomendadas com base em sua função dentro do fluxo de processamento de streaming.
Fluxo de processamento de dados de alto nível
Descarregue um ficheiro Visio desta arquitetura.
Produtores de streaming
Os produtores de fluxo contínuo geram e enviam dados para os serviços de ingestão do Azure. Eles produzem continuamente dados de fontes como dispositivos de Internet das Coisas (IoT), logs de aplicativos ou bancos de dados.
Os produtores de fluxo oferecem os seguintes benefícios:
Capture dados quase em tempo real. Os produtores podem coletar continuamente dados de fontes como dispositivos IoT, interações do usuário e logs de aplicativos. Eles transmitem os dados para serviços do Azure, como Hubs de Eventos do Azure ou Hub IoT do Azure.
Otimize a taxa de transferência com processamento em lote e compactação. Os produtores podem enviar mensagens em lote e aplicar compactação para minimizar o tamanho dos dados durante a transmissão. Estas capacidades aumentam a eficiência.
Garanta uma transmissão fiável com tratamento de erros e repetições. Os produtores podem gerenciar interrupções de rede ou falhas de corretagem por meio de novas tentativas automáticas para garantir a entrega confiável de dados.
Garanta a integridade dos dados com idempotência. Você pode configurar os produtores para oferecer suporte exatamente após a entrega, o que evita mensagens duplicadas e garante um fluxo de dados consistente.
Componentes
IoT Hub ingere dados de IoT. Ele fornece recursos como comunicação bidirecional, autenticação de dispositivo e buffer de mensagens offline. É ideal para gerenciar dispositivos IoT e seus fluxos de dados.
Os produtores de captura de dados de alteração (CDC) incluem bancos de dados do Azure, como o Banco de Dados SQL do Azure e o Azure Cosmos DB.
Para acessar dados CDC, você pode usar conectores, como Debezium para Banco de Dados SQL ou o feed de alterações do Azure Cosmos DB. Esses conectores geralmente são hospedados no Azure Functions ou em ambientes do Serviço de Aplicativo do Azure. Se você usar o recurso de fluxos de eventos do Microsoft Fabric, não precisará de aplicativos separados, como o Debezium, para conectar produtores CDC a consumidores downstream.
Aplicativos personalizados como o Debezium também podem ser hospedados como aplicativos autônomos em serviços gerenciados, como o Serviço Kubernetes do Azure (AKS) ou ambientes do Serviço de Aplicativo. Essa abordagem fornece mais controle ou personalização.
Capacidades gerais
| Capacidade | Hub IoT | Produtores CDC | Aplicações personalizadas |
|---|---|---|---|
| Métricas do dispositivo e logs | Sim | Não | Não |
| Serviço gerenciado | Sim | Não | Não |
| Escalabilidade | Sim | Sim | Sim |
Ingestão de fluxo
Produtores, como aplicativos web e móveis, dispositivos IoT e sensores, geram dados continuamente. O sistema de processamento de fluxo deve incorporar esses dados de forma eficiente para análise em tempo real e em lote.
Considere os seguintes fatores:
Velocidade dos dados: Determine como lidar com dados de alta frequência de várias fontes, que geralmente variam em formato e tamanho.
Escalabilidade: Certifique-se de que a camada de ingestão possa ser dimensionada dinamicamente à medida que o volume, a variedade e a velocidade dos dados aumentam.
Integridade e fiabilidade dos dados: Evite a perda ou duplicação de dados durante a transmissão.
Componentes de ingestão de fluxo de dados
Os Hubs de Eventos são um serviço de ingestão de dados em tempo real que pode lidar com milhões de eventos por segundo, o que o torna ideal para cenários de alta taxa de transferência. Ele pode ser dimensionado dinamicamente e processar grandes volumes de dados com baixa latência.
Os Hubs de Eventos suportam recursos como particionamento para processamento paralelo e políticas de retenção de dados. Ele se integra aos serviços do Azure, como Azure Stream Analytics, Fabric, Azure Databricks e Azure Functions. Os Hubs de Eventos também se integram ao Apache Kafka, e você pode executar cargas de trabalho existentes do Kafka sem alterações de código.
Grid de Eventos é um serviço de roteamento de eventos totalmente gerido. Ele ingere, distribui e reage a eventos de várias fontes, por isso é ideal para arquiteturas orientadas a eventos em tempo real. Ele lida com notificações de eventos de forma eficiente e integra-se aos serviços do Azure, aplicativos personalizados e sistemas de parceiros. A Grade de Eventos desempenha um papel crítico no processamento de fluxos de dados.
O Kafka no Azure HDInsight é um serviço Apache Kafka gerenciado para ingestão e processamento de dados em tempo real em escala. Use esse serviço para capturar e armazenar dados de streaming de várias fontes, como dispositivos IoT, logs de aplicativos e feeds de mídia social. Este serviço fornece controle extra de uma configuração Kafka em uma infraestrutura gerenciada.
O Apache Kafka no Confluent Cloud é um serviço Apache Kafka totalmente gerenciado para ingestão de dados em tempo real. Ele se integra ao Azure para simplificar a implantação e o dimensionamento. Essa solução inclui recursos como registro de esquema, ksqlDB para consultas de fluxo e segurança de nível empresarial. Use esta opção se você usar o ecossistema estendido de conectores e ferramentas de processamento de fluxo do Confluent.
Capacidades gerais de ingestão de fluxo
| Capacidade | Hubs de Eventos | Kafka no HDInsight | Kafka em Confluent |
|---|---|---|---|
| Retenção de mensagens | Sim | Sim | Sim |
| Limite de tamanho de mensagem | 1 MB | Configurável | Configurável |
| Serviço gerenciado | Sim | Infraestrutura gerenciada como serviço | Sim |
| Escala automática | Sim | Sim | Sim |
| Oferta de parceiros | Não | Não | Sim |
| Modelo de preços | Com base no nível | Por hora de cluster | Modelos de consumo |
Processamento de fluxos
Esta etapa envolve processos que transformam dados em tempo real e filtram, agregam, enriquecem ou analisam os dados ingeridos.
Considere os seguintes fatores:
Processamento com estado versus processamento sem monitoração de estado: Decida se o seu processamento depende de dados vistos anteriormente (com monitoração de estado) ou eventos independentes (sem monitoração de estado).
Tratamento do tempo do evento: Considere cenários em que você deve processar fluxos de dados de várias fontes juntos, especialmente para registros que chegam tarde.
Janelas: Use janelas deslizantes ou de batida para gerir agregações e análises baseadas no tempo.
Tolerância a falhas: Certifique-se de que o sistema pode se recuperar de falhas sem perda de dados ou erros de reprocessamento.
Componentes de processamento de fluxo
O Stream Analytics é um serviço gerenciado que usa uma linguagem de consulta baseada em SQL para habilitar análises em tempo real. Use este serviço para tarefas de processamento simples, como filtrar, agregar e unir fluxos de dados. Ele se integra perfeitamente aos Hubs de Eventos, Hub IoT e Armazenamento de Blobs do Azure para entrada e saída. O Stream Analytics se adapta melhor a tarefas de baixa complexidade e em tempo real, onde uma solução simples e gerenciada com consultas baseadas em SQL é suficiente.
O Spark Structured Streaming é suportado por serviços como o Fabric e o Azure Databricks. Esses serviços fornecem uma plataforma de análise unificada que é construída no Apache Spark e pode lidar com transformações de dados complexas, pipelines de aprendizado de máquina e cargas de trabalho de big data. As APIs de streaming do Spark suportam integração profunda com o Delta Lake para controle de versão e consistência de dados.
O Fabric eventstreams é um recurso de streaming de dados em tempo real dentro do Fabric, que é uma plataforma de análise unificada. O Eventstreams permite a ingestão, o processamento e a integração contínuos de dados de streaming para análises e aplicativos em tempo real. Os usuários podem acessar fluxos de eventos com o mínimo de conhecimento técnico. Ele fornece interfaces de arrastar e soltar para configurar pipelines de dados.
O Azure Functions é um serviço de computação sem servidor para processamento controlado por eventos. É útil para tarefas leves, como transformar dados ou acionar fluxos de trabalho com base em eventos em tempo real. As funções do Azure são sem estado por design. O recurso de funções duráveis amplia as capacidades para suportar fluxos de trabalho com estado persistente para a coordenação de eventos complexos.
Capacidades gerais de processamento de fluxo
| Capacidade | Stream Analytics | Spark Structured Streaming (Fabric, Azure Databricks) | Fluxos de eventos de tecido | Funções do Azure |
|---|---|---|---|---|
| Processamento de microlotes | Sim | Sim | Sim | Não |
| Processamento baseado em eventos | Não | Não | Sim | Sim |
| Processamento com Estado | Sim | Sim | Sim | Não |
| Suporte para apontamento de verificação | Sim | Sim | Sim | Não |
| Interface de pouco código | Sim | Não | Sim | Não |
| Modelo de preços | Unidades de streaming | Sim | Tecido SKU | Sim |
Dissipadores de streaming
Depois que o sistema processa os dados, ele direciona os dados para destinos apropriados, ou coletores, para armazenamento, análise adicional ou uso em aplicativos em tempo real. Esses destinos podem incluir bancos de dados, data lakes, ferramentas de análise ou painéis para visualização.
Considere os seguintes fatores:
Consumo e utilização de dados: Use o Power BI para análises ou painéis de relatórios em tempo real. Ele se integra bem aos serviços do Azure e fornece visualizações ao vivo de fluxos de dados.
Requisitos de baixa latência: Determine se seu sistema deve fornecer análises em fluxos de dados em tempo real, como métricas de dispositivos e logs de aplicativos. Alguns aplicativos também podem exigir latência ultrabaixa para leituras e gravações, o que os torna adequados para análises operacionais ou aplicativos em tempo real.
Escalabilidade e volume: Avalie a necessidade da sua carga de trabalho de ingerir grandes volumes de dados, oferecer suporte a diversos formatos de dados e dimensionar de forma eficiente e econômica.
Componentes de coletores de streaming
O Armazenamento Azure Data Lake é uma solução escalável, distribuída e económica para armazenar dados não estruturados e semiestruturados. Ele suporta armazenamento em escala de petabytes e cargas de trabalho de alta taxa de transferência para armazenar grandes volumes de dados de streaming. Permite também operações rápidas de leitura e gravação, que suportam análises em fluxo contínuo de dados e pipelines de dados em tempo real.
Uma casa de eventos Fabric é um banco de dados KQL para análise e exploração em tempo real de dados baseados em ventilação, como métricas e dados de log, dados de séries cronológicas e dados de IoT. Suporta a ingestão de milhões de eventos por segundo com baixa latência. Esse recurso permite o acesso quase instantâneo a dados de streaming. Uma casa de eventos integra-se profundamente com o ecossistema Fabric. Ele permite que os usuários consultem e analisem dados de streaming imediatamente usando ferramentas como o Power BI.
O Azure Cosmos DB é um banco de dados NoSQL para armazenamento de dados de baixa latência, distribuído globalmente e altamente escalável. Ele oferece alta taxa de transferência e pode lidar com grandes volumes de dados de streaming com desempenho consistente.
O Banco de dados SQL é um serviço de banco de dados relacional totalmente gerenciado e baseado em nuvem. Ele é criado no mecanismo do SQL Server. Portanto, ele fornece os recursos de um banco de dados SQL Server tradicional com os benefícios de escalabilidade baseada em nuvem, confiabilidade e sobrecarga de gerenciamento reduzida.
Capacidades gerais de destino de streaming
| Capacidade | Data Lake Storage | Casa de eventos em tecido | Azure Cosmos DB | Base de Dados SQL |
|---|---|---|---|---|
| Armazenamento de objetos de uso geral | Sim | Não | Não | Não |
| Agregações de dados de streaming | Não | Sim | Não | Não |
| Gravações e leituras de baixa latência para documentos JSON | Não | Sim | Sim | Não |
| Agregações de dados estruturados para o Power BI | Não | Sim | Não | Sim |
| Modelo de preços | Por GB ou TB | Tecido SKU | Unidades de solicitação | Unidade de transação de banco de dados (DTU) ou vCore |
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.
Autor principal:
- Pratima Valavala | Arquitecto Principal de Soluções
Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.
Próximos passos
- Fabric Casa de Eventos
- Tecido
- de armazenamento Data Lake
Explore os seguintes módulos de formação:
- Explore Azure Functions
- Introdução ao Stream Analytics
- Execute transformações avançadas de dados de streaming
- Utilize o Apache Spark no Azure Databricks