Usar o HDInsight Spark e o Kafka

Concluído

Como engenheiro de dados, você precisa determinar o tipo mais apropriado de cluster HDInsight a ser criado para criar sua solução. Os clusters Spark e Kafka, quando usados juntos, fornecem uma ótima maneira de ingerir e processar fluxos de dados em tempo real ou quase em tempo real.

Use Kafka para ingerir dados em tempo real

O Apache Kafka pode ser usado como um sistema de mensagens, um sistema de assinatura de publicação ou como uma plataforma de processamento de streaming. Ele armazena dados em um log que pode ser lido em tempo real, pós-processado e pode ser lido por vários consumidores ao mesmo tempo.

Use o streaming estruturado do Spark para processar eventos em tempo real

O Apache Spark é um mecanismo de processamento de dados distribuído de código aberto que pode ser usado em muitas circunstâncias para processar, consultar, analisar e transformar dados rapidamente em escala. O Spark é comumente usado para executar trabalhos de ETL e SQL em big data, processar dados de streaming e executar aprendizado de máquina.

O streaming estruturado do Spark tem recursos indisponíveis em outras plataformas, como garantias de tolerância a falhas, a capacidade de unir dados em lote e streaming, a capacidade de lidar com dados que chegam atrasados e muito mais sobre os quais aprenderemos mais adiante neste módulo. Além disso, com o Azure HDInsight, você pode criar uma VNET que abriga seu cluster Spark e Kafka. Com ambos os clusters em uma VNET, o cluster Spark pode acessar partições individuais de dados dentro do cluster Kafka, em vez de falar entre clusters ou pontos de extremidade. Ao fornecer acesso a partições individuais de dados, você aumenta o paralelismo que tem no trabalho de processamento em tempo real, o que lhe dá uma melhor taxa de transferência.

Cenários para usar Kafka com o Spark

Há muitos cenários de análise em tempo real que se beneficiariam do streaming em tempo real que o Apache Kafka e o Spark permitem. Todos esses cenários têm um componente de ingestão de dados de streaming, que é o componente Kafka, e um processo analítico executado nos dados, que é o componente Spark.

Cenários para usar Kafka com o Spark

  • Deteção de fraudes em tempo real para ingerir dados de transações financeiras e compará-los com padrões históricos de comportamento fraudulento.
  • Gestão de frotas e cenários de carros conectados em que ingere dados de dispositivos IoT e reage quando determinados dados do sensor, como quilometragem, velocidade, localização ou temperatura, atingem um limite.
  • Análise de clickstream em soluções de comércio eletrônico, para analisar como o posicionamento da página de produtos pode influenciar compras por impulso e cliques.
  • Monitoramento de pacientes em tempo real para observar informações de pressão arterial e frequência cardíaca e notificar os médicos quando um paciente está em estado crítico.
  • Soluções de redes inteligentes que observam o uso elétrico e respondem à medida que as demandas mudam.
  • Comportamento do cliente nas lojas, para descobrir quais compras são feitas em determinados momentos do dia para agendar reabastecimento e modificar a equipe da pista de checkout.
  • Infraestrutura de TI e monitoramento de rede para observar a disponibilidade e largura de banda do servidor e redirecionar o tráfego quando necessário.
  • Gerenciamento de demanda e estoque em tempo real para observar os baixos níveis de estoque e reordenar ou reabastecer prontamente esses itens.

Migração fácil de lote para streaming

Em muitos casos, esses cenários começam no local ou com processamento em lote de dados, mas à medida que as soluções se desenvolvem e as necessidades evoluem, o processamento em lote passa para streaming e os aplicativos locais são movidos para a nuvem. Como mencionado acima, o streaming estruturado do Spark é único em sua capacidade de lidar com trabalhos em lote e streaming, o que facilita a transição de qualquer processamento em lote que você faz para trabalhos em tempo real, pois você pode fazer a transição de um para o outro, ou usá-los ao mesmo tempo, usando os mesmos aplicativos e estruturas.