Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo compara as opções de tecnologia de 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 mensagens, registros ou dados simultaneamente. A quantidade de dados pode variar de alguns bytes a vários megabytes (MB). Os dados de streaming são emitidos em alto volume de maneira 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álise em tempo real e visibilidade em vários aspectos de seus negócios, como logs de aplicativos, atualizações de localização geográfica, eventos e leituras de sensor.
Os dados de streaming geralmente têm as seguintes características:
Integridade de dados imperfeita: Erros temporários na origem podem resultar em elementos de dados ausentes. 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 atenuar esses erros.
Fluxo de dados contínuo: Um fluxo de dados não tem início ou fim, portanto, você precisa coletar dados constantemente. Por exemplo, os logs de atividade do servidor se acumulam enquanto o servidor estiver em operação.
Formatos de dados diversos: 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íveis ao tempo: elementos individuais em um fluxo de dados contêm registros de data e hora. 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 de tecnologia para processamento em tempo real
Para ajudá-lo a escolher a tecnologia certa, esta seção descreve as opções comuns no Azure, da ingestão ao consumo. Cada subseção realça as tecnologias recomendadas com base em sua função no fluxo de processamento de streaming.
Fluxo de processamento de fluxo de alto nível
Baixe um arquivo do Visio dessa arquitetura.
Produtores de transmissão
Os produtores de fluxo geram e enviam dados nos serviços de ingestão do Azure. Eles produzem continuamente dados de fontes como dispositivos IoT (Internet das Coisas), logs de aplicativos ou bancos de dados.
Os produtores de fluxo fornecem os seguintes benefícios:
Capturar 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 os serviços do Azure, como Os Hubs de Eventos do Azure ou o Hub IoT do Azure.
Otimize a taxa de transferência com envio 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. Esses recursos aumentam a eficiência.
Verifique a transmissão confiável com tratamento de erros e novas tentativas. Os produtores podem gerenciar interrupções de rede ou falhas de agente por meio de novas tentativas automáticas para garantir a entrega de dados confiável.
Garanta a integridade dos dados com idempotência. Você pode configurar os produtores para dar suporte à entrega exatamente uma vez, evitando mensagens duplicadas e garantindo um fluxo de dados consistente.
Componentes
O Hub IoT 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 CDC (captura de dados de alteração) 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 o 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 fluxos de eventos do Microsoft Fabric, não precisará de aplicativos separados, como o Debezium, para conectar produtores de CDC com consumidores downstream.
Aplicativos personalizados , como o Debezium, também podem ser hospedados como aplicativos autônomos em serviços gerenciados, como o AKS (Serviço de Kubernetes do Azure) ou ambientes do Serviço de Aplicativo. Essa abordagem fornece mais controle ou personalização.
Funcionalidades gerais
| Capacidade | Hub IoT | Produtores do CDC | Aplicativos personalizados |
|---|---|---|---|
| Métricas de 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 pipeline de processamento de fluxo deve ingerir esses dados de forma eficiente para análise em lote e em tempo real.
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: Verifique se a camada de ingestão pode ser dimensionada dinamicamente à medida que o volume de dados, a variedade e a velocidade aumentam.
Integridade e confiabilidade dos dados: Evitar perda ou duplicação de dados durante a transmissão.
Componentes de ingestão de fluxo
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 dimensionar dinamicamente e processar grandes volumes de dados com baixa latência.
Os Hubs de Eventos dão suporte a recursos como particionamento para políticas de processamento paralelo e retenção de dados. Ele se integra a 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.
Event Grid é um serviço de roteamento de eventos totalmente gerenciado. Ele ingere, distribui e reage a eventos de várias fontes, portanto, é ideal para arquiteturas orientadas a eventos em tempo real. Ele trata com eficiência as notificações de eventos e integra-se aos serviços do Azure, aplicativos personalizados e sistemas de parceiros. A Grade de Eventos desempenha um papel fundamental na ingestão de fluxo.
O Kafka no Azure HDInsight é um serviço gerenciado do Apache Kafka 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 do 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 essa opção se você usar o ecossistema estendido de conectores e ferramentas de processamento de fluxo do Confluent.
Recursos gerais de ingestão de fluxo
| Capacidade | Hubs de Eventos | Kafka no HDInsight | Kafka na plataforma Confluent |
|---|---|---|---|
| Retenção de mensagens | Sim | Sim | Sim |
| Limite de tamanho da mensagem | 1 MB | Configurável | Configurável |
| Serviço gerenciado | Sim | Infraestrutura gerenciada como um serviço | Sim |
| Escala automática | Sim | Sim | Sim |
| Oferta de parceiro | Não | Não | Sim |
| Modelo de preços | Com base no nível | Por hora de cluster | Modelos de consumo |
Processamento de fluxo
Essa etapa envolve processos que transformam dados em tempo real e filtram, agregam, enriquecem ou analisam dados ingeridos.
Considere os seguintes fatores:
Processamento com estado versus sem estado: Decida se o processamento depende de dados vistos anteriormente (com estado) ou eventos independentes (sem estado).
Manipulação de tempo de evento: Considere cenários em que você deve processar fluxos de dados de várias fontes juntos, especialmente para registros de chegada tardia.
Janelas: use janelas deslizantes ou em cascata para gerenciar agregações e análises baseadas em tempo.
Tolerância a falhas: Verifique se o sistema pode se recuperar de falhas sem perda de dados ou reprocessamento de erros.
Componentes de processamento de fluxo
O Stream Analytics é um serviço gerenciado que usa uma linguagem de consulta baseada em SQL para habilitar a análise em tempo real. Use esse serviço para tarefas de processamento simples, como filtrar, agregar e unir fluxos de dados. Ele se integra perfeitamente aos Hubs de Eventos, ao Hub IoT e ao Armazenamento de Blobs do Azure para entrada e saída. O Stream Analytics melhor atende a tarefas de baixa complexidade e em tempo real em que uma solução simples e gerenciada com consultas baseadas em SQL é suficiente.
O Streaming Estruturado do Spark é compatível com serviços como Fabric e Azure Databricks. Esses serviços fornecem uma plataforma de análise unificada que se baseia no Apache Spark e pode lidar com transformações de dados complexas, pipelines de machine learning e cargas de trabalho de Big Data. As APIs de streaming do Spark dão suporte à integração profunda com o Delta Lake para controle de versão e consistência de dados.
Os fluxos de eventos do Fabric são uma funcionalidade de streaming de dados em tempo real no Fabric, que é uma plataforma de análise unificada. Os fluxos de eventos permitem ingestão contínua, processamento e integração de dados de streaming para análises e aplicativos em tempo real. Os usuários podem acessar fluxos de eventos com conhecimento técnico mínimo. 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 disparar fluxos de trabalho com base em eventos em tempo real. As funções do Azure são sem estado por definição. O recurso de funções duráveis amplia as capacidades para oferecer suporte a fluxos de trabalho com estado para coordenação de eventos complexos.
Recursos gerais de processamento de fluxo
| Capacidade | Stream Analytics | Streaming estruturado do Spark (Fabric, Azure Databricks) | Eventstreams de malha | Azure Functions |
|---|---|---|---|---|
| Processamento em microlote | Sim | Sim | Sim | Não |
| Processamento baseado em evento | Não | Não | Sim | Sim |
| Processamento com estado | Sim | Sim | Sim | Não |
| Suporte para ponto de verificação | Sim | Sim | Sim | Não |
| Interface de baixo código | Sim | Não | Sim | Não |
| Modelo de preços | Unidades de streaming | Sim | Fabric SKU | Sim |
Coletores de streaming
Depois que o sistema processa os dados, ele direciona os dados para destinos adequados ou sinks, 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 dashboards para visualização.
Considere os seguintes fatores:
Consumo e uso de dados: Use o Power BI para análise em tempo real ou painéis de relatórios. Ele se integra bem aos serviços do Azure e fornece visualizações dinâmicas de fluxos de dados.
Requisitos de baixa latência: Determine se seu sistema deve fornecer análise em fluxos de dados em tempo real, como métricas de dispositivo e logs de aplicativos. Alguns aplicativos também podem exigir latência ultra baixa para leituras e gravações, o que os torna adequados para análise operacional ou aplicativos em tempo real.
Escalabilidade e volume: Avalie a necessidade da carga de trabalho de ingerir grandes volumes de dados, dar suporte a formatos de dados diversos e dimensionar de forma eficiente e econômica.
Componentes de coletores de streaming
O Azure Data Lake Storage é uma solução escalonável, distribuída e econômica para armazenar dados não estruturados e semiestruturados. Ele oferece suporte ao armazenamento em escala de petabytes e a cargas de trabalho de alto rendimento para grandes volumes de dados de streaming. Também permite operações rápidas de leitura e gravação, que oferecem suporte a análises em dados de streaming e pipelines de dados em tempo real.
Um Eventhouse do Fabric é um banco de dados KQL para análise e exploração em tempo real em dados baseados em eventos, como métricas e dados de log, dados de série temporal e dados de IoT. Ele dá suporte à ingestão de milhões de eventos por segundo com baixa latência. Esse recurso permite acesso quase instantâneo aos dados de streaming. Um eventhouse se integra profundamente ao ecossistema do 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 escalonável. Ele fornece 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 do SQL Server tradicional com os benefícios da escalabilidade baseada em nuvem, confiabilidade e sobrecarga de gerenciamento reduzida.
Capacidades gerais de destinos de streaming
| Capacidade | Data Lake Storage | Casa de Eventos Fabric | Azure Cosmos DB | Banco de Dados SQL |
|---|---|---|---|---|
| Repositório 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 |
| Leituras e gravações de baixa latência para documentos JSON | Não | Sim | Sim | Não |
| Agregações de dados estruturadas para o Power BI | Não | Sim | Não | Sim |
| Modelo de preços | Por GB ou TB | Fabric SKU | Unidades de solicitação | DTU (unidade de transação de banco de dados) ou vCore |
Colaboradores
A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.
Autor principal:
- Pratima Valavala | Arquiteto de Soluções Principal
Para ver perfis não públicos no LinkedIn, entre no LinkedIn.
Próximas etapas
Explore os seguintes módulos de treinamento:
- Explorar Azure Functions
- Introdução ao Stream Analytics
- Executar transformações avançadas de dados de streaming
- Usar o Apache Spark no Azure Databricks