Faculdade de Ciências e Tecnologia

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.

Cursos