O mundo real é feito de pessoas e coisas em constante movimento, e os aplicativos que os desenvolvedores constroem precisam refletir essa realidade. Imagine um aeroporto com milhares de aviões e passageiros chegando e partindo diariamente que precisam ser atualizados quando atrasos ou outras alterações acontecem o mais rápido possível. Ou uma rede de pagamentos que processa milhões de transações a cada minuto. Se pudermos registrar e processar esses eventos em escala e em tempo real, abriremos as portas para novas aplicações interessantes que podem melhorar a eficiência ou gerar melhores experiências para os clientes.
O processamento de fluxo é o facilitador aqui. O processamento de fluxo é uma tecnologia de processamento de dados usada para coletar, armazenar e gerenciar fluxos contínuos de dados à medida que são produzidos ou recebidos. Também chamado de streaming de eventos ou processamento de eventos complexos (CEP), o processamento de streams cresceu rapidamente nos últimos anos devido à sua poderosa capacidade de simplificar arquiteturas de dados, fornecer insights e análises em tempo real e reagir a eventos urgentes à medida que eles acontecem.
Apache Flink é o padrão de fato para aplicativos de processamento de fluxo. É frequentemente usado em conjunto com o Apache Kafka, mas o Flink é um mecanismo de processamento de fluxo independente que pode ser implantado de forma independente. Ele resolve muitos dos problemas difíceis associados ao processamento de fluxo distribuído, como tolerância a falhas, entrega exatamente uma vez, alto rendimento e baixa latência. É por isso que empresas como Uber e Netflix usam o Flink para algumas de suas necessidades mais exigentes de dados em tempo real.
Quando pensamos em casos de uso de processamento de fluxo, podemos agrupá-los em três categorias, que exploraremos com exemplos abaixo:
- Aplicativos orientados a eventos
- Análise em tempo real
- Pipelines de dados de streaming
Aplicativos orientados a eventos
Os aplicativos orientados a eventos observam ou analisam fluxos de dados e acionam imediatamente um alerta quando ocorre um determinado evento ou padrão. A detecção de fraude está entre os cenários mais comuns, onde o processamento de fluxo é usado para analisar dados de transações e disparar alertas com base em atividades suspeitas, mas há muito mais possibilidades.
Por exemplo, no retalho, à medida que as vendas online continuam a subir, muitos compradores querem ter a certeza se os artigos estão em stock e saber quanto tempo levará para a entrega chegar antes de fazerem uma encomenda. Se não tiverem essas informações ou se a entrega demorar muito, muitas vezes irão a um site concorrente em busca de um negócio melhor. Mostrar um item em estoque e cancelar o pedido algumas horas ou dias depois porque o estoque estava fora de sincronia com o sistema de vendas também é uma experiência terrível para os usuários. Isso significa que os varejistas precisam de uma visão em tempo real de seu estoque em todas as regiões para que, quando novos pedidos chegarem, possam determinar rapidamente se um pedido precisa ser redirecionado para um armazém mais próximo e saber quanto tempo isso levará.
O tempo é um componente crítico para esses aplicativos orientados a eventos, e o Flink é uma solução ideal porque oferece recursos avançados de janelas que dão aos desenvolvedores um controle refinado sobre como o tempo avança e como os dados são agrupados para processamento.
Análise em tempo real
Também chamada de análise de streaming, esta categoria envolve a análise de fluxos de dados em tempo real para gerar insights de negócios que embasam decisões operacionais ou estratégicas. Os aplicativos que usam análises em tempo real analisam os dados assim que chegam de um fluxo e, em seguida, tomam decisões oportunas com base nas informações mais recentes e atualizadas.
Por exemplo, os serviços de entrega de comida online tornaram-se extremamente populares e muitos serviços fornecem um painel para proprietários de restaurantes que lhes fornece informações atualizadas sobre volumes de pedidos, itens de menu populares e a rapidez com que os pedidos estão sendo entregues. Com essas informações, os restaurantes podem fazer ajustes rapidamente para aumentar as vendas e garantir que seus clientes recebam os pedidos no prazo.
Os serviços de streaming de mídia são outro caso de uso popular para análises em tempo real. Os grandes provedores de streaming capturam bilhões de dados sobre quais programas são populares e quem assiste o quê. A análise em tempo real permite que esses fornecedores determinem quais filmes devem recomendar a um cliente em seguida, com base nos hábitos de visualização anteriores do indivíduo e nos padrões de visualização de toda a sua base de clientes. Fazer essas recomendações selecionadas em tempo real permite que os usuários obtenham feeds que são ajustados quase instantaneamente com base em suas ações.
O Flink é ideal para análises em tempo real porque foi projetado para processar grandes quantidades de dados com latência muito baixa, abaixo de um segundo. Com consultas interativas, um conjunto abrangente de funções prontas para uso e algumas funções avançadas de reconhecimento de padrões, ele permite alguns recursos analíticos poderosos.
Pipelines de dados de streaming
Os pipelines de dados de streaming ingerem continuamente fluxos de dados de aplicativos e sistemas e realizam junções, agregações e transformações para criar fluxos de dados novos e enriquecidos de maior valor. Os sistemas downstream podem consumir esses eventos para seus próprios fins, começando no início do fluxo, no final do fluxo ou em qualquer lugar entre eles.
Os pipelines de dados de streaming são úteis para migrar dados de sistemas legados, como um data warehouse local tradicional, para plataformas mais modernas baseadas em nuvem que oferecem melhor suporte a aplicativos orientados a eventos e análises em tempo real. Os sistemas legados geralmente contêm dados de alto valor, mas não suportam esses tipos de aplicativos mais modernos. Um pipeline de streaming de dados pode conectar essas fontes legadas a novos endpoints, permitindo que os desenvolvedores migrem gradualmente os dados para um data warehouse em nuvem mais moderno, mantendo intactas as operações atuais.
Outro caso de uso importante para o processamento de fluxo é o aprendizado de máquina, que é cada vez mais usado para fazer previsões sobre eventos do mundo real, para que as empresas possam ajustar as estratégias de acordo. Os pipelines de aprendizado de máquina podem preparar dados e transmiti-los para um serviço de armazenamento de objetos, onde podem treinar modelos de aprendizado de máquina. Depois de treinados, os modelos podem ser atualizados de forma contínua e incremental, refinando as recomendações de aprendizado de máquina em tempo real para acomodar as mudanças no mundo real. Esses modelos podem então ser chamados em tempo real para potencializar cenários de manutenção preditiva ou detecção de fraudes, por exemplo. O processamento de fluxo também pode ser usado para potencializar a IA generativa em tempo real e ajudar a construir aplicativos que aproveitam dados sempre atualizados com ferramentas poderosas como ChatGPT, conforme explicado aqui.
Reagindo ao mundo em tempo real
Em cada caso, o processamento de fluxo é usado para registrar eventos no mundo real, para que as empresas possam agir ou fazer previsões que gerem melhores resultados de negócios. Graças à nuvem, mais sistemas estão agora conectados online e mais dados são gerados para fornecer uma imagem detalhada do mundo e do que nele está acontecendo. O processamento de fluxo nos permite aproveitar esses dados para criar aplicativos poderosos que respondem e reagem a esses eventos mutáveis em tempo real.
Jean-Sebastien Brunner é diretor de gerenciamento de produtos da Confluent.
–
O New Tech Forum oferece um local para líderes de tecnologia – incluindo fornecedores e outros colaboradores externos – explorarem e discutirem tecnologias empresariais emergentes com profundidade e amplitude sem precedentes. A seleção é subjetiva, baseada na escolha das tecnologias que acreditamos serem importantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não aceita material de marketing para publicação e reserva-se o direito de editar todo o conteúdo contribuído. Envie todos consultas para [email protected].