Processamento de Streams

Objetivos

Learn the fundamentals, languages and systems for building application that process streams of data, ranging from general purpose distributed realtime stream processing systems to structured data models for dealing with streams.

Caracterização geral

Código

11562

Créditos

6.0

Professor responsável

Nuno Manuel Ribeiro Preguiça, Sérgio Marco Duarte

Horas

Semanais - 4

Totais - 50

Idioma de ensino

Português

Pré-requisitos

A disponibilizar brevemente

Bibliografia

Opher Etzion and Peter Niblett. Event Processing in Action. Manning Publications, 2010.

Lukasz Golab and Tamer Özsu. Data Stream Management. Morgan and Claypool, 2010.

Bifet et al., (2018) Machine Learning for Data Streams, MIT Press

Several papers will be provided for further reading.

Método de ensino

.

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/2 e a componente teórica-prática com 1/2.

Para obter aprovação à disciplina um estudante necessita ter uma classificação igual ou superior a 8 valores na componente teórica-prática, e de 10 valores na nota final.

A obtenção de frequência  necessita uma classificação final na componente de projeto igual ou superior a 10 valores.

Componente teórica-prática

Esta componente é obtida através de dois testes individuais.

Supletivamente, esta componente pode também ser realizada por exame de recurso. 

Componente de projeto

Desta componente fazem parte a realização, apresentação e discussão de dois trabalhos. O primeiro trabalho deverá ser entregue até ao final da 7ª semana de aulas, e o 2º trabalho até ao final das aulas (datas a confirmar com a comissão pedagógica do curso). O trabalho é feito em grupos de até 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. A nota final da componente é a média aritmética das notas indivuduais dos dois projetos.

Conteúdo

Distributed Stream Processing Systems.

System models for stream processing: streams as sequences of mini-batches (e.g. Spark streaming); continuous processing (e.g. Apache Flink, Storm).
Programming models. System aspects: distribution, scalability and fault-tolerance.
Distributed time-series databases. Systems for IoT stream processing.

Data Stream Management Systems (DSMS).

Structured Data Models for Streams. Algebraic operators on stream and relations.
Continuous query languages (extensions to SQL and database management systems to deal with data streams).

Machine Learning for Streams.

Introduction to learning from data Dimensionality reduction for streams.
Learning under concept drift. Incremental learning.
Learning under imbalance and learning from graphs.

Cursos

Cursos onde a unidade curricular é leccionada: