Laboratorijske vježbe
Section outline
-
-
Funkcija reduce prebačena je u modul functools, pa ju je potrebno posebno učitati:
from functools import reduce
-
Ako ne uspijete iz prvog pokušaja pokrenuti DES naredbom des_start, kako je opisano u prezentaciji, na kraj datoteke ~/.bashrc dodajte sljedeću liniju:
PATH="~/software/des:$PATH"
-
U slučaju da ne možete pokrenuti MongoDB, proučite linije 22-38 u ažuriranoj instalacijskoj skripti od 13.12.2022., a posebno linije 32-37. MongoDB server pokrećemo kao servis korištenjem naredbe
sudo systemctl start mongod
. MongoDB konzolu koja se spominje u prezentaciji pokrećemo naredbommongosh
. -
Proučite prezentacije i slijedite upute. Rješenja predajte ovdje.
Zadatak: Zamislimo da imamo uređaj koji odašilje događaje. Događaj koji je poslan sadrži geolokaciju. Svako kućanstvo može sadržavati
N
prijemnika koji osluškuju događaje (svaki prijemnik također sadrži geolokaciju). Recimo da prijemnik može osluškivati događaje koji su reproducirani u radijusu odM
(npr. 10). Potrebno je napraviti upit na tok podataka koji ispisuje detalje o događaju te adresu kućanstva u kojem postoji prijemnik koji je taj događaj zaprimio.Hint: Takvo rješenje treba se sastojati od jednog toka podatka (dogadaj) te dvije tablice (prijemnik i kucanstvo). Tok podataka
dogadaj
i tablicaprijemnik
sadrže geolokaciju (po uzoru na primjer iz prezentacije), dok tablicakucanstvo
sadrži adresu. Proizvoljno dodajte još poneki atribut u tok podataka i tablice.Podaci [
insert
] u tablicama i toku podataka neka budu konstruirani da imamo barem dva kućanstva i barem četiri prijemnika (svako kućanstvo barem jedan prijemnik). Podaci događaja neka budu konstruirani na način da sva kućanstva zaprime barem jedan događaj, no također neka postoje događaji koje neće zaprimiti niti jedan prijemnik (jer nisu u radijusu).Rješenje zadatka priložite kao privitak u odgovoru na zadatak. Rješenje se treba sastojati od tri datoteke:
create.sql
datoteka (sadrži upite korištene za kreiranje streamova/tablica te unos podataka [insert
]),select.sql
(sadrži upit za dohvaćanje podataka iz streama) te.txt
ili sliku s rezultatom upita za dohvaćanje [select
].