Sistemas de streaming populares

Conceitos de Streaming

Mike Metzger

Data engineer

Ferramentas de streaming

  • Várias ferramentas disponíveis conforme a necessidade
  • Permite escolher a melhor ferramenta para a tarefa
  • Sistemas comuns incluem:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

Conceitos de Streaming

Celery

  • Fila de tarefas distribuída / FIFO
  • Usada principalmente como fila de jobs ou tarefas
  • Muito usada para tarefas assíncronas
    • Enviar e-mails de redefinição de senha
    • Atender pedidos digitais
    • Redimensionar imagens
  • Permite processamento em tempo real de grande volume de mensagens
  • Oferece recursos de gerenciamento e escalabilidade (vertical e horizontal)

Projeto Celery

Conceitos de Streaming

Apache Kafka

  • Sistema de streaming de eventos distribuído
  • Projetado para enviar eventos entre produtores e consumidores
    • Produtores criam eventos em um tópico
    • Tópicos são basicamente mensagens de um formato definido
    • Consumidores recebem novos eventos
  • Consumidores diferentes podem tratar eventos conforme necessário (log, transformações, encaminhamento etc.)
  • Faz o armazenamento de eventos conforme especificado
  • Extremamente poderoso, mas pode ser complicado de configurar

Apache Kafka

Conceitos de Streaming

Aplicações do Kafka

  • Melhor para passar dados entre vários sistemas
    • Única fonte da verdade
    • Captura de alterações de dados
    • Backups de dados
    • Migrações de sistemas de dados
Conceitos de Streaming

Spark Streaming

  • Parte do Apache Spark
  • Projetado para processar dados em streaming
  • Aproveita o Spark para processar dados em Scala, Python, SQL e mais
  • Útil para processar grandes volumes de dados e em cenários de Machine Learning
  • Consegue migrar de batch para stream com facilidade
  • Não foi feito para armazenar ou registrar eventos, mas sim para processar ou modificar os dados

Apache Spark

Conceitos de Streaming

Vamos praticar!

Conceitos de Streaming

Preparing Video For Download...