Olá! Eu sou Agnes Huescas, instrutora na Alura e também engenheira de dados. No meu dia a dia, construo pipelines (fluxos de dados), realizo monitoramento e desenvolvo infraestrutura em nuvem. Por acessibilidade, vou me autodescrever.
Audiodescrição: Sou uma mulher branca, de cabelo castanho comprido, uso óculos com armação transparente, visto uma blusa preta e, ao fundo, está o estúdio da Alura, com uma estante à minha esquerda, com algumas plantas e algumas luzes. Estou olhando diretamente para a câmera.
Você já se perguntou como as empresas conseguem obter informações e acompanhar seus pedidos e pagamentos quase em tempo real, no momento em que tudo está acontecendo? Em muitos desses cenários, há um pipeline (fluxo de processamento) sendo executado continuamente para transformar esses dados em informações úteis para o negócio.
Neste curso, nós construiremos uma solução como essa, utilizando Apache Kafka e Spark Structured Streaming. Durante o curso, nós desenvolveremos sistemas de monitoramento de pedidos de um e-commerce (comércio eletrônico). Os pedidos serão publicados em um tópico do Kafka e, em seguida, serão consumidos pelo Spark Structured Streaming. Ao longo do processamento, nós estruturaremos dados, realizaremos transformações, calcularemos métricas de negócio e disponibilizaremos esses resultados para outras aplicações em tempo real.
Para alcançar esse resultado, começaremos entendendo alguns conceitos fundamentais do Apache Kafka, configurando nosso ambiente, publicando e consumindo eventos, conectando o Spark ao Kafka, transformando mensagens JSON em DataFrames estruturados e construindo um pipeline (fluxo de processamento) de streaming (transmissão contínua).
Também trabalharemos com conceitos importantes, como tempo de evento, janelas, marca d'água, modos de saída, triggers (gatilhos) e pontos de controle, recursos fundamentais para construir um pipeline (fluxo de processamento) de streaming (transmissão contínua) mais confiável.
Ao final do curso, persistiremos nossas métricas em arquivos Parquet e também as publicaremos em um novo tópico do Kafka, permitindo que sejam consumidas por outras aplicações em tempo real.
Para aproveitar melhor este conteúdo, o ideal é que você já tenha conhecimentos básicos de Python, além de noções de engenharia de dados e de processamento em lotes.
Durante todo o curso, você contará com o nosso fórum da Alura e com o nosso canal no Discord para resolver dúvidas e trocar experiências. Além disso, você terá a Luri, nossa assistente de inteligência artificial, com quem poderá aprofundar conceitos, revisar conteúdos e até criar novos exercícios para praticar aspectos específicos ao longo do curso.
Agora que você já conhece nosso projeto, o que vamos desenvolver e os principais temas de estudo, vamos preparar nosso ambiente e dar os primeiros passos na construção de um pipeline (fluxo de processamento) de streaming (transmissão contínua) de eventos em tempo real. Vamos?
[♪]
Olá.
Antes de iniciarmos a implementação do projeto, precisamos entender alguns conceitos e conhecer cada componente que fará parte da nossa arquitetura. Neste vídeo, entenderemos exatamente qual é o projeto e qual arquitetura utilizaremos.
Imaginemos que uma pessoa cliente acaba de fazer uma compra em um e-commerce (comércio eletrônico). Ao concluir a compra, é gerado um evento com todas as informações: quem é a pessoa cliente, o ID da compra, o valor dessa compra e o horário em que a compra foi realizada. Em vez de enviar essas informações diretamente para cada sistema interessado, a aplicação — o sistema de compras — publicará esse evento em um broker (intermediador de mensagens).
A partir desse momento, o Kafka ficará responsável por receber esses eventos e disponibilizá-los para outras aplicações. Nosso Spark Structured Streaming consumirá continuamente esses eventos vindos do Kafka e, à medida que novos pedidos chegarem, os transformará em informações úteis para o negócio. Essas métricas, que representam informações para o negócio, podem alimentar dashboards (painéis), podem ir para um sistema de monitoramento ou até mesmo enriquecer outras aplicações.
Durante o curso, nós construiremos exatamente essa arquitetura. Em cada aula, implementaremos uma parte desse fluxo até chegarmos à solução completa em funcionamento.
Ao entendermos essa arquitetura, surge uma pergunta importante: por que precisamos processar em tempo real? Podemos considerar alguns casos. Imaginemos que fazemos uma compra suspeita com nosso cartão de crédito. Se esperamos horas para identificar que esse comportamento pode ser fraude, isso pode significar uma grande perda. Se temos, por exemplo, um sistema no qual monitoramos nossas aplicações. Um serviço simplesmente deixou de responder.
Quanto antes identificarmos esse problema, menor será o impacto para você, para as pessoas usuárias, para a sua empresa e para a imagem da sua empresa. Por isso, isso é de extrema importância.
Também podemos acompanhar as vendas no e-commerce (comércio eletrônico). Assim, conseguimos ver o desempenho de uma campanha específica em uma data especial ou identificar rapidamente uma queda na taxa de conversão. Por isso, é interessante que esses dados cheguem em tempo real para que possamos fazer essas análises.
Existem dois tipos de processamento: processamento por lotes, em batch (lotes), e processamento em streaming (transmissão contínua).
Como ocorre o processamento por lotes? Geralmente, esperamos acumular uma quantidade maior de dados e os processamos em lote. É como quando queremos um relatório diário de vendas: esperamos acumular todas as vendas do dia e, de madrugada, executamos a automação e extraímos esse relatório. Esperamos os dados se acumularem e processamos tudo de uma vez.
No streaming (transmissão contínua), que é a arquitetura que queremos desenvolver agora, processamos em near real-time (quase em tempo real), muito próximo do tempo real. Nada é efetivamente em tempo real, mas fica muito próximo.
É importante lembrar que streaming (transmissão contínua) e batch (lotes) não se substituem necessariamente. Nas empresas, é comum utilizar ambos os enfoques. Dependendo das suas necessidades, alguns sistemas precisarão de streaming (transmissão contínua), enquanto outros não têm essa necessidade de tempo real e podem ser processados em batch (lotes). Cada um terá particularidades de custo, arquitetura e latência, servindo a cenários diferentes e, em geral, usamos ambos os tipos de processamento.
Como nosso objetivo neste curso é acompanhar os pedidos praticamente em tempo real, vamos utilizar processamento em streaming (transmissão contínua).
Agradeço por me acompanhar neste vídeo e nos vemos no próximo.
Olá.
Agora que já conhecemos nossa arquitetura, vamos apresentar a primeira tecnologia que utilizaremos nela: Apache Kafka. Podemos imaginar o Apache Kafka como uma plataforma especializada em receber eventos e disponibilizá-los para diferentes aplicações.
Qual é o propósito disso? Exatamente possibilitar que todo o sistema gere eventos — por exemplo: um pedido criado, um pagamento aprovado, a pessoa usuária iniciou sessão, alguma informação foi atualizada — e que esses eventos permaneçam armazenados por um período para que, posteriormente, possam ser consumidos por outras aplicações.
Uma das grandes vantagens do Kafka é permitir que não apenas uma, mas várias aplicações consumam e utilizem exatamente o mesmo evento. Vamos imaginar que temos um pedido; ele foi realizado e recebido pelo Kafka. Esse dado pode ser disponibilizado para várias áreas diferentes, como inventário, faturamento, analytics (análise de dados) e recomendações de produtos, que poderão consumi-lo e utilizá-lo ao mesmo tempo.
Pensando em onde encontramos o Kafka no mercado, agora que já entendemos o que é o Kafka, onde podemos encontrá-lo? Podemos encontrá-lo em bancos, e-commerce (comércio eletrônico), streaming (transmissão contínua), IoT (Internet das Coisas) e em diversos serviços que contam com plataformas que geram ou trabalham com grande volume de dados.
Agora que já entendemos qual é o papel do Kafka dentro da nossa arquitetura, no próximo vídeo conheceremos os conceitos fundamentais para utilizá-lo. Nos vemos lá!
O curso Engenharia de Dados: Streaming - Apache Kafka e Spark Structured Streaming possui 214 minutos de vídeos, em um total de 87 atividades. Gostou? Conheça nossos outros cursos de Engenharias e Arquiteturas de Dados em Dados, ou leia nossos artigos de Dados.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Back-end, Dados, Front-end, DevOps, Mobile, Gestão & Negócios, UX & Design, Cibersegurança, Cloud, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Catálogo de tecnologia para quem é da área de Marketing
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
20% de desconto na Pós Tech
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Acesso ao catálogo da Casa do Código e leitura dentro da plataforma
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Modo entrevista - Pratique situações reais e evolua com feedback personalizado
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Lives CareerUp: eventos exclusivos com foco em empregabilidade e carreira
Mentorias de carreira: 2 encontros individuais com mentores do Talent Lab
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.