CD604 — Processamento de Dados Massivos
← Voltar para a lista de disciplinas
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.