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

  1. Od plików płaskich do Data Lake. Modele przetwarzania danych w erze Big Data. Mity i fakty przetwarzania danych w czasie rzeczywistym.
  2. Przetwarzanie wsadowe (batch) a strumieniowe (stream). Architektura Lambda i Kappa. Systemy NRT (near real-time).
  3. Uczenie maszynowe w trybie wsadowym (offline) i przyrostowym (online). Stochastic Gradient Descent. Problemy online learning.
  4. Apache Kafka — architektura rozproszonego systemu komunikacji. Producent, konsument, tematy, partycje, grupy konsumentów.
  5. Apache Spark i Structured Streaming — przetwarzanie danych strumieniowych na dużą skalę. Integracja Spark–Kafka.

Laboratoria (część praktyczna):

  1. Środowisko pracy: Git, Docker, Docker Compose, Python. Konfiguracja środowiska do przetwarzania danych.
  2. Przetwarzanie danych w Pythonie (Pandas, NumPy). Analiza eksploracyjna danych (EDA) w trybie wsadowym.
  3. Modele uczenia maszynowego (scikit-learn): regresja, klasyfikacja, ewaluacja modeli. Przygotowanie modelu do wdrożenia.
  4. Apache Kafka w praktyce — producent i konsument w Pythonie (confluent-kafka). Przesyłanie i odbieranie danych w czasie rzeczywistym.
  5. Wprowadzenie do PySpark — DataFrame API, transformacje, akcje. Praca z danymi ustrukturyzowanymi i nieustrukturyzowanymi.
  6. Spark Structured Streaming + Kafka — budowa pipeline’u przetwarzania danych strumieniowych.
  7. Mikroserwisy z FastAPI — deployment modelu ML jako usługi REST. Konteneryzacja z Dockerem.
  8. Budowa kompletnego pipeline’u: źródło danych → Kafka → Spark Streaming → model ML → dashboard/raportowanie.
  9. Projekt grupowy — praca nad realnym problemem biznesowym z użyciem poznanych technologii (cz. 1).
  10. Projekt grupowy — finalizacja, prezentacje i zaliczenie (cz. 2).
Note

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

  1. Zając S. (red.), Modelowanie dla biznesu. Analityka w czasie rzeczywistym — narzędzia informatyczne i biznesowe, SGH, Warszawa 2022.
  2. Frątczak E. (red.), Modelowanie dla biznesu: Regresja logistyczna, Regresja Poissona, Survival Data Mining, CRM, Credit Scoring, SGH, Warszawa 2019.
  3. Bellemare A., Mikrousługi oparte na zdarzeniach. Wykorzystanie danych w organizacji na dużą skalę, O’Reilly 2021.
  4. Shapira G., Palino T., Sivaram R., Petty K., Kafka: The Definitive Guide. Real-time data and stream processing at scale, O’Reilly 2022.
  5. Lakshmanan V., Robinson S., Munn M., Wzorce projektowe uczenia maszynowego, O’Reilly 2021.
  6. Gift N., Deza A., Practical MLOps: Operationalizing Machine Learning Models, O’Reilly 2022.
  7. Akidau T., Chernyak S., Lax R., Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing, O’Reilly 2018.
  8. Géron A., Uczenie maszynowe z użyciem Scikit-Learn i TensorFlow. Wydanie II, Helion.
  9. Hastie T., Tibshirani R., Friedman J., The Elements of Statistical Learning, Springer 2017.
  10. Koul A., Ganju S., Kasam M., Practical Deep Learning for Cloud, Mobile & Edge, O’Reilly 2019.