Dimensionando o processamento em lote

Conceitos de Streaming

Mike Metzger

Data Engineer

O que é dimensionamento?

  • Melhorar a performance
    • Processar mais rápido
      • Menos tempo para o mesmo volume de dados
    • Processar mais dados
      • Mais dados no mesmo tempo
Conceitos de Streaming

Dimensionamento vertical

  • Computação melhor
    • CPU mais rápida
    • IO mais rápido
    • Mais memória
  • Geralmente o tipo de dimensionamento mais fácil
    • Menos complexidade
    • Raramente exige mudar programas/algoritmos base

CPU

Memória

1 Images courtesy https://unsplash.com/@jeremy0
Conceitos de Streaming

Contras do dimensionamento vertical

  • Limitado por natureza
  • Pode ser caro / baixo ROI
  • Avanços da indústria não são garantidos
Conceitos de Streaming

Dimensionamento horizontal

  • Dividir uma tarefa em várias partes
    • Mais computadores
    • Também pode ser mais CPUs
  • Ideal para tarefas "embarrassingly parallel"
    • Tarefas que podem ser facilmente distribuídas entre trabalhadores
  • Pode ser bem custo-efetivo
  • Pode ter ganhos quase lineares para certos processos

CPU1

CPU2

CPU3

CPU4

Conceitos de Streaming

Contras do dimensionamento horizontal

  • Complexidade
    • Exige um framework de processamento (como Apache Spark ou Dask)
    • Exige rede mais robusta
  • Gestão contínua
  • Pode ser caro dependendo das necessidades
  • Tarefas "não paralelizáveis"
Conceitos de Streaming

Vamos praticar!

Conceitos de Streaming

Preparing Video For Download...