Processamento de Streams (2021/2022) - Departamento de Informática
Descrição

Esta disciplina ensina os aspetos fundamentais, as linguagens e os sistemas para construir aplicações que processam fluxos de dados. São tratados os sistemas genéricos de processamento em tempo real,incluindo o estudo dos variados modelos de dados para lidar com fluxos de dados.

Objectivos

Aprender os conceitos fundamentais, linguagens e sistemas para construir aplicações que processam fluxos de dados. A unidade curricular aborda, apresenta e discute os sistemas generalistas para processamento de streams em tempo real, e desenvolverá com especial ênfase o estudos de sistemas para modelos de dados estruturados orientados aos fluxos de dados.

Saber

A. Conhecer os principais modelos de programação para o processamento de fluxos contínuos de dados

B. Conhecer as linguagens e assimilar as características fundamentais para resolver problemas no domínio
do processamento de streams

C. Compreender as vantagens e as desvantagens das plataformas para processamento de streams.

Aplicação

A. Ser capaz de escolher os modelos, linguagens e ferramentas mais adequadas para resolver um
problema de processamento de streams

B. Set capaz de desenvolver e executar aplicações para processamento de streams usando ferramentas e tecnologias correntes.

Programa

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.

Bibliografia Principal

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.

Requisitos Prévios

Adequate programming skills in the Python programming language.

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais   24.0
Aulas teóricas   26.0
Avaliação   6.0
Estudo   40.0
Projectos e trabalhos   66.0
Total de Horas 162
ECTS 6.0