====== Tematy Projektów ZTB 2016 ====== Celem projektu jest zbadanie rozwiązań typu //big data//, służących do przechowywania i przetwarzania danych w postaci [[https://pl.wikipedia.org/wiki/Szereg_czasowy|szeregów czasowych]]. Dane takie powszechnie występują we wszelkich systemach sensorycznych, w tym w rozwiązaniach typu //Internet of Things// oraz aplikacjach //Smart City//. Do obowiązków każdej z grup należeć będzie: * skonfigurowanie **klastra** składającego się z dwóch maszyn poprzez instalację: * systemu operacyjnego, * niezbędnych aplikacji narzędziowych, * jednego spośród trzech wskazanych systemów gromadzenia i przetwarzania danych, * zaprojektowanie i zaimplementowanie **modelu danych** w skonfigurowanym systemie, * stworzenie i uruchomienie **modułu pobierającego cyklicznie dane** i zasilającego model, * zaprojektowanie i implementacja **procedur analizujących zebrane dane**, * przeprowadzenie **eksperymentów** i opracowanie **wyników** dotyczących wydajności oraz poprawności ===== Harmonogram ===== FIXME TBD ===== Organizacja ===== * Do dyspozycji jest łącznie 18 komputerów. * Zostaną Państwo podzieleni na 6 grup. * Do przebadania są trzy [[#Technologie|technologie]] przechowywania danych. * Każda grupa bada jedną technologię -- każda technologia jest badana przez dwie grupy. * Podział kompetencji i hierarchia organizacji w ramach każdej grupy mogą Państwo wybrać dowolnie. ===== Wymagania techniczne ===== ==== OS ==== Bazowa konfiguracja powinna zostać uzgodniona pomiędzy **wszystkimi** grupami: * wskazana dystrybucja: Ubuntu LTS, jednolita instalacja na wszystkich maszynach. * spójne zarządzanie klastrem wszystkich komputerów (np. przy pomocy Ansible), m.in: włączanie/wyłączanie, zdalne wykonywanie poleceń, itp. ==== Technologie ==== * Apache Spark https://github.com/sryza/spark-timeseries * RiakTS http://docs.basho.com/riak/ts * OpenTSDB http://opentsdb.net/ ===== Szczegóły zadań ===== ==== Pobieranie danych ==== Do bazy danych należy ładować rzeczywiste dane o natężeniu ruchu z pętli indukcyjnych rozmieszczonych na ulicach Krakowa. Są one dostępne z sieci AGH pod adresem: [[http://borg.kis.agh.edu.pl/~wojnicki/traffic.php]]. Dane zwracane są w formacie CSV, każda linijka zawiera: * identyfikator pętli, * godzinę odczytu, * liczbę pojazdów. Dane agregowane są co 90 sekund, przy czym nie ma gwarancji, że pętle działają synchronicznie. CAUTC11FD318_D11_D1_1,11:59:31,0 CAUTC11FD318_D13_D2_11,11:59:31,14 CAUTC11FD318_D14_D2_21,11:59:31,8 CAUTC11FD318_D15_D3_1,11:59:31,0 CAUTC11FD318_D16_D4_11,11:59:31,9 CAUTC11FD318_D17_D4_21,11:59:31,5 CAUTC11FD318_D4_D22_11,11:59:31,7 CAUTC11FD318_D5_D22_21,11:59:31,14 CAUTC11FD318_D6_D44_11,11:59:31,11 CAUTC11FD318_D7_D44_21,11:59:31,3 K318_K1,11:59:31,0 K318_K2,11:59:31,22 K318_K3,11:59:31,0 K318_K4,11:59:31,18 ==== Analityka ==== Należy zaimplementować następujące funkcje analityczne: - wartość współczynnika korelacji pomiędzy dowolnie wybranymi dwoma detektorami, - wykrywanie anomalii: problemy z działaniem sensora (przerwa w danych, dane nieprawdopodobne, inne). Funkcje powinny umożliwić przeprowadzenie analizy dla zadanego jako parametr przedziału dat i godzin. Fazy realizacji zadań "analitycznych" - Zaprojektowanie algorytmu, zdefiniowanie pojęć, określenie wartości brzegowych. - Dobór techniki implementacji przy uwzględnieniu przydzielonej grupie [[#Technologie|technologii]]. - Implementacja i uruchomienie. - Testy walidacyjne. - Testy wydajnościowe. ==== Pomiary ==== Zmierzyć należy następujące wartości: - Fizyczna zajętość miejsca. - Czas realizacji procesów analitycznych. W raporcie powinny się znaleźć wyniki dla danych obejmujących okres 1 miesiąca. ===== Raport końcowy ===== Każda z grup przedstawia raport końcowy, zawierający następujące elementy: - Podział kompetencji pomiędzy członkami grupy. - Krótka i zwięzła charakterystyka technologii, opis modelu danych, wymagań, dostępnych interfejsów. - Opis wszystkich kroków niezbędnych do ponownego zbudowania klastra wraz ze wszystkimi modułami software'owymi. - Opis [[#Pobieranie_danych|modułu pobierającego dane]] i zasilającego bazę. - Opis [[#Analityka|procedur analitycznych]] z uwzględnieniem wszystkich faz ich realizacji. - Opis metodyki oraz wyników [[#Pomiary|pomiarów]]. Raporty winny być przygotowane w sposób przejrzysty i z uwzględnieniem struktury sekcji w jednym z formatów: LaTeX, Markdown, DokuWiki. Raporty przygotowane przy pomocy innych narzędzi nie będą przyjmowane. Wyniki realizacji projektu będą prezentowane w terminie ostatniego wykładu (15 minut/grupa).