CD604 — Processamento de Dados Massivos

Ementa, programa e bibliografia da disciplina CD604.

← Voltar para a lista de disciplinas

  • Carga horária: 60 horas
  • Pré-requisito: CD401 + CD303 + CD201

Ementa

Computação distribuída aplicada a grandes volumes de dados. Paradigmas de processamento distribuído. Estruturas, formatos e estratégias de armazenamento de dados massivos. Compressão, codificação e particionamento de dados. Manipulação, limpeza e transformação de dados em larga escala. Pipelines de processamento e aprendizado de máquina distribuído.

Programa

1. Introdução a Big Data

  • Motivação para o uso de Big Data

  • Dados como apoio à tomada de decisão

  • Definições de Big Data

  • Volume, variedade, velocidade, veracidade e valor

  • Exemplos de uso em comércio eletrônico, saúde, cidades inteligentes e geoprocessamento

  • Limitações e riscos no uso de grandes volumes de dados

  • Diferenças entre análise tradicional de dados e análise em larga escala

2. Fundamentos de computação distribuída

  • Limitações do processamento em uma única máquina
  • Escalabilidade vertical
  • Escalabilidade horizontal
  • Computação em clusters
  • Computação em nuvem
  • Distribuição de dados e processamento
  • Tolerância a falhas
  • Replicação de dados
  • Processamento próximo ao local de armazenamento

3. Sistemas de arquivos distribuídos

  • Motivação para sistemas de arquivos distribuídos
  • Armazenamento de grandes volumes de dados
  • Particionamento físico dos dados
  • Replicação e disponibilidade
  • Ideias gerais do Google File System
  • Conceitos gerais do Hadoop Distributed File System
  • Relação entre armazenamento distribuído e processamento distribuído

4. Paradigma MapReduce

  • Modelo conceitual do MapReduce
  • Etapa de mapeamento
  • Pares chave-valor
  • Agrupamento por chave
  • Etapa de redução
  • Exemplo clássico de contagem de palavras
  • Fluxo de dados em uma aplicação MapReduce
  • Vantagens e limitações do paradigma

5. Motores de processamento distribuído

  • Arquitetura geral de motores distribuídos
  • Processos de coordenação e execução
  • Driver e executores
  • Tarefas, estágios e planos de execução
  • Grafos acíclicos dirigidos de execução
  • Avaliação preguiçosa
  • Processamento em memória
  • Ecossistema de processamento distribuído para dados

6. Estruturas distribuídas de dados

  • Coleções distribuídas resilientes
  • Transformações e ações
  • Operações map, flatMap e filter
  • Operações count, take e collect
  • Pares chave-valor
  • Operações por chave
  • reduceByKey, groupByKey e aggregateByKey
  • Preservação de particionamento
  • Boas práticas para inspeção de dados distribuídos

7. Formatos de armazenamento para Big Data

  • Formatos orientados a linhas

  • Formatos orientados a colunas

  • Dados com esquema explícito

  • Evolução de esquema

  • Formatos binários para registros

  • Formatos colunares para análise

  • Comparação entre CSV, JSON, Avro e Parquet

  • Critérios para escolha de formatos de dados

8. Compressão, codificação e particionamento

  • Compressão de dados
  • Tradeoff entre armazenamento, transferência e processamento
  • Codificação de inteiros
  • Codificação por diferenças
  • Run-Length Encoding
  • Codificação por dicionário
  • Compressão genérica
  • Organização de arquivos colunares
  • Particionamento por diretórios
  • Impacto do particionamento em consultas e pipelines

9. Manipulação e preparação de dados em larga escala

  • Leitura e escrita de grandes bases
  • Limpeza de dados
  • Transformação de colunas
  • Conversão de tipos
  • Tratamento de dados ausentes
  • Filtragem e agregação
  • Junções distribuídas
  • Uso de broadcast em junções
  • Construção de pipelines de preparação de dados

10. Estudos de caso em processamento distribuído

  • Análise de avaliações em bases de recomendação
  • Processamento de dados climáticos
  • Contagem e frequência de termos em coleções textuais
  • Consulta e agregação em dados tabulares
  • Processamento de grafos
  • Busca em largura em grafos
  • Análise exploratória em grandes bases de dados
  • Comparação entre soluções locais e distribuídas

Referências

  • WHITE, Tom. Hadoop: The Definitive Guide. 4. ed. Sebastopol: O’Reilly Media, 2015.