Processamento de Streams

Objetivos

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. Ser capaz de desenvolver e executar aplicações para processamento de streams usando ferramentas e tecnologias correntes.

Caracterização geral

Código

11562

Créditos

6.0

Professor responsável

A disponibilizar brevemente

Horas

Semanais - A disponibilizar brevemente

Totais - 50

Idioma de ensino

Português

Pré-requisitos

Adequate programming skills in the Python programming language. 

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

A disponibilizar brevemente

Método de avaliação

A disponibilizar brevemente

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).

Complex Event Processing.
Streams as sequences of events. Production rules, reactive rules, and event-driven computing. Event processing networks, agents and channels. Complex and derived events. Detection of event patterns. Event-processing languages and systems.

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: