Sylabus
Nazwa przedmiotu: Analiza danych w czasie rzeczywistym
Jednostka: Szkoła Główna Handlowa w Warszawie
Kod przedmiotu: 222890-D, 222890-S
Punkty ECTS: 3
Język prowadzenia: polski
Poziom przedmiotu: średniozaawansowany
Prowadzący: Sebastian Zając, sebastian.zajac@sgh.waw.pl
Strona kursu: https://sebkaz-teaching.github.io/RTA2026/
Cel przedmiotu
Współczesny biznes opiera się na podejmowaniu decyzji opartych na danych. Coraz większa ilość informacji, rosnące wymagania rynku oraz potrzeba natychmiastowej reakcji sprawiają, że analiza danych w czasie rzeczywistym staje się kluczowym elementem nowoczesnych procesów biznesowych.
Na zajęciach studenci zapoznają się z metodami i technologiami umożliwiającymi przetwarzanie danych w czasie rzeczywistym. Szczególną uwagę poświęcimy zastosowaniu uczenia maszynowego (machine learning), sztucznej inteligencji (artificial intelligence) oraz głębokich sieci neuronowych (deep learning) w analizie danych. Zrozumienie tych metod pozwala nie tylko lepiej interpretować zjawiska biznesowe, ale także podejmować szybkie i trafne decyzje.
W ramach kursu omówimy zarówno dane ustrukturyzowane, jak i nieustrukturyzowane (obrazy, dźwięk, strumienie danych). Studenci poznają architektury przetwarzania danych, takie jak Lambda i Kappa, wykorzystywane w systemach Data Lake, a także wyzwania związane z modelowaniem danych w czasie rzeczywistym na dużą skalę.
Kurs obejmuje część teoretyczną oraz praktyczne laboratoria, podczas których studenci będą pracować z rzeczywistymi danymi w środowiskach takich jak JupyterLab, PyTorch, Apache Spark i Apache Kafka. Dzięki temu studenci nie tylko zdobędą wiedzę na temat metod analitycznych, ale także nauczą się korzystać z najnowszych technologii stosowanych w analizie danych w czasie rzeczywistym.
Program przedmiotu
Wykłady (część teoretyczna):
- Od plików płaskich do Data Lake. Modele przetwarzania danych w erze Big Data. Mity i fakty przetwarzania danych w czasie rzeczywistym.
- Przetwarzanie wsadowe (batch) a strumieniowe (stream). Architektura Lambda i Kappa. Systemy NRT (near real-time).
- Uczenie maszynowe w trybie wsadowym (offline) i przyrostowym (online). Stochastic Gradient Descent. Problemy online learning.
- Apache Kafka — architektura rozproszonego systemu komunikacji. Producent, konsument, tematy, partycje, grupy konsumentów.
- Apache Spark i Structured Streaming — przetwarzanie danych strumieniowych na dużą skalę. Integracja Spark–Kafka.
Laboratoria (część praktyczna):
- Środowisko pracy: Git, Docker, Docker Compose, Python. Konfiguracja środowiska do przetwarzania danych.
- Przetwarzanie danych w Pythonie (Pandas, NumPy). Analiza eksploracyjna danych (EDA) w trybie wsadowym.
- Modele uczenia maszynowego (scikit-learn): regresja, klasyfikacja, ewaluacja modeli. Przygotowanie modelu do wdrożenia.
- Apache Kafka w praktyce — producent i konsument w Pythonie (
confluent-kafka). Przesyłanie i odbieranie danych w czasie rzeczywistym. - Wprowadzenie do PySpark — DataFrame API, transformacje, akcje. Praca z danymi ustrukturyzowanymi i nieustrukturyzowanymi.
- Spark Structured Streaming + Kafka — budowa pipeline’u przetwarzania danych strumieniowych.
- Mikroserwisy z FastAPI — deployment modelu ML jako usługi REST. Konteneryzacja z Dockerem.
- Budowa kompletnego pipeline’u: źródło danych → Kafka → Spark Streaming → model ML → dashboard/raportowanie.
- Projekt grupowy — praca nad realnym problemem biznesowym z użyciem poznanych technologii (cz. 1).
- Projekt grupowy — finalizacja, prezentacje i zaliczenie (cz. 2).
Powyższy program może ulec drobnym modyfikacjom w trakcie semestru.
Efekty kształcenia
1. Wiedza
- Zna historię i filozofię modeli przetwarzania danych.
- Powiązania: K2A_W01, K2A_W03, O2_W01, O2_W02, O2_W04, O2_W07
- Weryfikacja: test
- Zna typy danych ustrukturyzowanych i nieustrukturyzowanych.
- Powiązania: K2A_W02, K2A_W04, O2_W04, O2_W07
- Weryfikacja: projekt
- Zna możliwości i obszary zastosowania przetwarzania danych w czasie rzeczywistym.
- Powiązania: K2A_W01, K2A_W02, O2_W01, O2_W04, O2_W08
- Weryfikacja: test
- Zna teoretyczne aspekty architektury Lambda i Kappa.
- Powiązania: K2A_W03, K2A_W05, O2_W04, O2_W06, O2_W08
- Weryfikacja: test
- Umie wybrać architekturę IT dla danego problemu biznesowego.
- Powiązania: K2A_W02, K2A_W03, O2_W01, O2_W04, O2_W06, O2_W08
- Weryfikacja: projekt
- Rozumie potrzeby biznesowe podejmowania decyzji w bardzo krótkim czasie.
- Powiązania: K2A_W01, K2A_W05, O2_W01, O2_W04, O2_W06, O2_W08
- Weryfikacja: projekt
2. Umiejętności
- Rozróżnia typy danych ustrukturyzowanych i nieustrukturyzowanych.
- Powiązania: K2A_U02, K2A_U07, K2A_U10, O2_U02
- Weryfikacja: test
- Umie przygotować, przetwarzać oraz przechowywać dane generowane w czasie rzeczywistym.
- Powiązania: K2A_U03, K2A_U05, K2A_U09, O2_U02, O2_U04
- Weryfikacja: projekt
- Rozumie ograniczenia wynikające z czasu przetwarzania przez urządzenia i systemy informatyczne.
- Powiązania: K2A_U01, K2A_U07, K2A_U11, O2_U02
- Weryfikacja: projekt
- Umie zastosować i skonstruować system do przetwarzania w czasie rzeczywistym.
- Powiązania: K2A_U05, K2A_U10, O2_U05, O2_U06, O2_U07
- Weryfikacja: projekt
- Umie przygotować raportowanie dla systemu przetwarzania w czasie rzeczywistym.
- Powiązania: K2A_U02, K2A_U08, K2A_U10, O2_U06, O2_U07
- Weryfikacja: projekt
3. Kompetencje
- Formułuje problem analityczny wraz z jego informatycznym rozwiązaniem.
- Powiązania: K2A_K01, K2A_K03, O2_K02, O2_K06, O2_K07
- Weryfikacja: projekt, prezentacja
- Samodzielnie uzupełnia wiedzę teoretyczną i praktyczną w zakresie programowania, modelowania i nowych technologii informatycznych.
- Powiązania: K2A_K02, K2A_K04, O2_K01, O2_K02, O2_K05, O2_K06
- Weryfikacja: projekt
Realizacja przedmiotu
| Składnik | Waga |
|---|---|
| Test z wykładów | 20% |
| Zadania domowe | 40% |
| Projekt grupowy | 40% |
Literatura
- Zając S. (red.), Modelowanie dla biznesu. Analityka w czasie rzeczywistym — narzędzia informatyczne i biznesowe, SGH, Warszawa 2022.
- Frątczak E. (red.), Modelowanie dla biznesu: Regresja logistyczna, Regresja Poissona, Survival Data Mining, CRM, Credit Scoring, SGH, Warszawa 2019.
- Bellemare A., Mikrousługi oparte na zdarzeniach. Wykorzystanie danych w organizacji na dużą skalę, O’Reilly 2021.
- Shapira G., Palino T., Sivaram R., Petty K., Kafka: The Definitive Guide. Real-time data and stream processing at scale, O’Reilly 2022.
- Lakshmanan V., Robinson S., Munn M., Wzorce projektowe uczenia maszynowego, O’Reilly 2021.
- Gift N., Deza A., Practical MLOps: Operationalizing Machine Learning Models, O’Reilly 2022.
- Akidau T., Chernyak S., Lax R., Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing, O’Reilly 2018.
- Géron A., Uczenie maszynowe z użyciem Scikit-Learn i TensorFlow. Wydanie II, Helion.
- Hastie T., Tibshirani R., Friedman J., The Elements of Statistical Learning, Springer 2017.
- Koul A., Ganju S., Kasam M., Practical Deep Learning for Cloud, Mobile & Edge, O’Reilly 2019.