
Sistemas para Processamento de Big Data
Código
12078
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
6.0
Professor responsável
Nuno Manuel Ribeiro Preguiça, Sérgio Marco Duarte
Horas semanais
4
Língua de ensino
Português
Objectivos
Na UC será dado particular ênfase aos modelos programação suportados e à sua aplicação.
Os objetivos principais:
Conhecimento
- Conhecer as diferentes facetas do processamento em Big Data
- Conhecer as principais classes de sistemas para armazenamento de grandes volumes de dados
- Conhecer os modelos de programação genéricos dominantes
- Conhecer soluções para domínios específicos
Aplicação
- Ser capaz de identificar qual o tipo de sistema apropriado para a resolução dum problema concreto
- Ser capaz de codificar (a solução para) um problema concreto usando o modelo de programação mais adequado
- Ser capaz de executar uma aplicação numa plataforma distribuída
Pré-requisitos
Conhecimentos de programação.
Conteúdo
1. Visão Geral
- Motivação, Aplicações
- Desafios
2. Modelos de programação
- Batch vs. Incremental vs. tempo-real
- Dados estruturados vs. dados não-estruturados
- Programação declarative vs. generalista
3. Armazenamento de Dados
- Sistemas de ficheiros distribuídos (e.g. HDFS)
- Base de dados relacionais.
- Bases de dados NoSQL (e.g. key-value stores, arquivos de documentos)
- Integração de múltiplas IGNOREes de dados (e.g. Hive)
4. Plataformas de processamento genéricas
- Infraestrutura: contexto, propriedades e implicações
- Modelo map-reduce and plataforma de suporte (e.g. Hadoop)
- Plataformas de segunda geração (e.g Pig, Spark)
5. Processamento em domínios específicos
- Bibliotecas para aprendizagem automatic (e.g. Spark MLlib)
- Plataformas para processamento em grafos (e.g. GraphX)
6. Introdução às plataformas para processamento em tempo-real
- Fontes de dados (e.g. Flume, Kafka)
- Modelos de dados: micro-batches vs. fluxos contínuos
- Plataformas de processamento (e.g. Storm, Spark Streaming)
Bibliografia
Big Data Fundamentals: Concepts, Drivers, and Techniques
ISBN: 0134291077
Prentice Hall, 2016
Método de avaliação
+ Esquema Geral
A avaliação é composta por uma componente teórica-prática e por uma componente de projeto.
Ambas as componentes são avaliadas numa escala de 0 a 20, arredondado a unidades.
A nota final da disciplina é a média pesada das duas componentes, na qual a componente de projeto contribui com 1/3 e a componente teórica-prática com 2/3.
Para obter aprovação à disciplina um estudante necessita ter uma classificação igual ou superior a 10 valores na componente teórica-prática, e na nota final.
Não existem outras condições obrigatórias para obtenção de frequência
+ Componente teórica-prática
Esta componente é obtida através de 2 testes, a realizar durante o semestre, através do exame de recurso, no final do semestre.
No primeiro caso a nota final da componente é a média aritmética das classificações dos dois testes, e no segundo caso é a nota do exame.
+ Componente de projeto
Desta componente fazem parte a realização, apresentação e discussão de um trabalho. O trabalho é feito em grupos de 1 ou 2 alunos.
Apesar do trabalho ser feito em grupo, a nota desta componente será sempre individual (e não atribuída ao grupo). Para ela contribuem o trabalho e o relatório feitos em grupo, mas também o desempenho na apresentação oral e discussão.