Big Data
Inżynieria przetwarzania dużych zbiorów danych

Wykład

  1. Zajęcia 1 Big Data concepts and terminology
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Czym jest Big Data? Zdefiniuj to pojęcie.
      • Opisz czynniki charakteryzujące Big Data (volume, velocity, variety, veracity, value).
      • Czym różnią się dane jakościowe od danych ilościowych? Podaj przykłady danych należących do każdego z typów.
      • Opisz związki jakie zachodzą pomiędzy danymi, informacją, wiedzą i mądrością. Czym się one różnią między sobą?
      • Czym różni się analiza danych od analityki danych? Wymień rodzaje analityki danych (descriptive, diagnostic, predictive , prescriptive).
  2. Zajęcia 2 Message queues
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Podaj możliwe uzasadnienia wyboru kolejki komunikatów jako elementu składowego większego systemu.
      • Wymień i opisz rolę poszczególnych elementów kolejki komunikatów.
      • Podaj przykłady użycia kolejki komunikatów.
      • Wymień i scharakterysuj najbardziej znane protokoły wykorzystywane przez kolejki komunikatów.
  3. Zajęcia 3 Big Data paradigm
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • O czym mówi prawo Amdahl'a? Scharakteryzuj skalowanie pionowe i poziome (vertical scaling, hor­izontal scaling).
      • Wymień i opisz czynniki jakie należy brać pod uwagę w przypadku systemów Big Data.
  4. Zajęcia 4 Processing concepts for Big Data
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Wyjaśnij pojęcia: przetwarzanie równoległe, przetwarzanie rozproszone, klaster, grid, chmura, metoda dziel i zwyciężaj. Jaki widzisz związek pomiędzy tymi pojęciami?
      • W jaki sposób możemy rozumieć określenie przetwarzania w czasie rzeczywistym (realtime).
      • Czym różni się przetwarzanie wsadowe (batch) od przetwarzania w czasie rzeczywistym (realtime)?
      • Porównaj ze sobą divide and conquere i mapreduce.
      • Opisz czego dotyczy zasada SVC (Speed, Consistency and Volume (SCV) principle).
  5. Zajęcia 5 Do we really need Big Data? oraz Big Data adoption issues and considerations
  6. Zajęcia 6 Data model for Big Data
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Opisz pożądane cechy danych. W wykładzie jest taki fragment: Because of this I want to focus now on most wanted and versatile set of properties. Whatever we think one is true: we don't want lose our date; we want it to be true now and in the future; we want to be able to get back with all changes we made on it. More technically we want it to be raw, immutable and eternally true. Dlaczego wymienione cechy (raw, immutable, eternally true) uznajemy za tak istotne?
  7. Zajęcia 7 Wzbogacanie danych - wykład prowadzony przez DBMS

Ćwiczenia

  1. Zajęcia 8 Virtual machine and Anaconda installation and configuration
  2. Zajęcia 9 pandas
  3. Zajęcia 10, 11 Picture in picture
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Umieć posługiwać się biblioteką pillow.
      • Umieć zintegrować bazę CouchDB z aplikacją napisaną w języku Python (lub innym preferowanym).
  4. Zajęcia 12 Basics of messaging with RabbitMQ
    • Materials
      • Basics of messaging with RabbitMQ
      • fence_cipher.py skrypt szyfrujący
      • hidden.txt tekst zaszyfrowany
      • dictionary.txt słownik
      • plain.txt tekst jawny
      • Tekst jawny:
        ABCDEFGHIJKLMNOPQR
        
        Zaszyfrowany dla R=4, O=0:
        AGMSBFHLNRCEIKOQDJP
        
        Zaszyfrowany dla R=4, O=2:
        EKQDFJLPRACGIMOSBHN
        
        
        
        
        Tekst jawny:
        ALA_MA_KOTA_TO_JEST_KOT_ALI_KOT_LUBI_MLEKO
        
        Zaszyfrowany dla R=6, O=0:
        AAKTKLT__OO_EOAOTTTKLL_KOS__UMM__EAIB_AJLI
        
        Zaszyfrowany dla R=6, O=7:
        _O_UAMT_TALBLA_JOL_IOA_AEKIT_KKTS__OMEOTKL
        
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Znać różne modele Exchange'ów i umieć użyć je w praktyce.
  5. Zajęcia 13 Task queues with Celery
    • Materials
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Umieć użyć kolejki zadań.
  6. Zajęcia 14 Duży zbiór danych - zliczanie słów
    • Materials
      • wc_1000_100_10.dat, wielkość 12 MiB
      • wc_1000_1000_100.dat, wielkość 1,2GiB
      • Państwa aplikacja będzie testowana na pliku wc_1000_1000_800.dat o wielkości 9,4GiB
      • python words_count.py 1000 100 10 wc_1000_100_10.dat
        Execution time:  17.169215769999937 s
        fulmanp@fulmanp-T500:~/Pulpit/data_generator/words_count$ ls -l
        -rw-rw-r-- 1 fulmanp fulmanp 12494957 maj  6 00:59 wc_1000_100_10.dat
        
        python words_count.py 1000 1000 100 wc_1000_1000_100.dat
        Execution time:  1758.2499708960004 s
        -rw-rw-r-- 1 fulmanp fulmanp 1250004745 maj  6 01:30 wc_1000_1000_100.dat
        
        python words_count.py 1000 1000 800 wc_1000_1000_800.dat
        Execution time:  14203.515917937 s
        -rw-rw-r-- 1 fulmanp fulmanp 10000210142 maj  6 05:31 wc_1000_1000_800.dat
        -rw-rw-r-- 1 fulmanp fulmanp 9,4G maj  6 05:31 wc_1000_1000_800.dat
        
    • Co po tych zajęciach powinno się znać / wiedzieć / umieć
      • Umieć zaproponować rozwiązanie problemu operującego na danych znacznie przekaczających wielkość dostępnej pamięci operacyjnej w systemie.

Materiały