This project was part of the Analysis and Design of Information Systems course at NTUA. (2022-23, Fall Semester)
An IoT live streaming system for smart homes, leveraging artificial data inspired by real-world scenarios. The system stores data in the OpenTSDB - a time series database- while performing aggregations. Users can monitor the system using an open-source visualization platform, which presents data through various informative graphs.
Name | Εmail | AM |
---|---|---|
Papanikolaou Ioannis | el18064@mail.ntua.gr | 031 18 064 |
Andreas Chrysovalantis-Konstantinos | el18102@mail.ntua.gr | 031 18 102 |
Maniatis Andreas | el18070@mail.ntua.gr | 031 18 070 |
Οδηγίες εγκατάστασης εφαρμογής
- Εγκατέστησε το Docker Desktop
- Για να καταβάσεις όλα τα containers, τρέξε το αρχείο
./downloadAllDocker.sh
σε ένα terminal. Βεβαιώσου από το Docker Destrop έχουν κατέβει όλα τα απαραίτητα containers. Σε περίπτωση προβλήματος ακολούθησε τους παρακάτω συνδέσμους για εγκατάσταση: RabbitMQ, Apache Flink, OpenTSDB, Grafana
Στο OpenTSDB container, Θα πρέπει να πειράξουμε μία παράμετρο (configuration) εσωτερικά, απαραίτητη για την αποθήκευση των δεδομένων μετέπειτα. Για αυτό το σκοπό, ανοίγουμε ένα terminal για το συγκεκριμένο container, και βρίσκουμε το αρχείο
opentsdb.conf
. To αρχείο βρίσκεται εσωτερικά του φακέλου/usr/local/share/opentsdb/etc/opentsdb
. Ανοίγουμε το αρχείο(vi opentsdb.conf)
και προσθέτουμε στο τέλος το εξής:tsd.storage.fix_duplicates = true
. Τέλος κλείνουμε και αποθηκεύουμε το αρχείο (:wq) και επανεκκινούμε το container ώστε να ενημερωθεί το configuration. Με την ‘ενεργοποίηση’ αυτού του flag, επιλύονται πιθανά προβλήματα εγγραφής διπλότυπων τιμών, μιας και έτσι θα διατηρείται το πιο πρόσφατο σημείο δεδομένων.
-
Εγκατέστησε την Java 11 - προσοχή με τα path.
-
Εγκατέστησε την Python.
-
Εγκατέστησε την Maven Apach - 3.8.6 - Αν χρειαστεί άλλαξε στις οδηγίες σε .3.8.6
- Κατέβασε τοπικά το repository:
git clone https://github.com/john-papani/IoT-Live-streaming.git
- Έπειτα
cd IoT-Live-streaming
. - Τρέξε το αρχείο
./installMvnFlink.sh
Οδηγίες λειτουργίας εφαρμογής
Σε δύο terminal τρέχουμε ταυτόχρονα το java αρχείο all_aggregation.java
και το python αρχείο send.py
.
Έπειτα, τα δεδομένουν έχουν επεξεργαστεί και αποθηκευτεί στην βάση δεδομένων. Άρα είμαστε σε θέση μέσω του Grafana να παρατηρήσουμε τα διαγραμμάτα και τους πίνακες.
Οδηγίες Εκκαθάρισης Βάσης Δεδομένων
Σε περίπτωση που επιθυμούμε να διαγράψουμε ολα τα δεδομένα από την βάση δεδομένων, ανοίγουμε το terminal εσωτερικά του docker, στο opentsdb container και τρέχουμε τις παρακάτω εντολές. Για περισσότερες οδηγίες πατήστε ΕΔΩ.
Προσοχή: Οι παρακάτω εντολές οδηγούν στην οριστική διαγραφή των δεδομένων.
tsdb scan 2022/01/01 --delete none th1
tsdb scan 2022/01/01 --delete none th2
tsdb scan 2022/01/01 --delete none hvac1
tsdb scan 2022/01/01 --delete none hvac2
tsdb scan 2022/01/01 --delete none miac1
tsdb scan 2022/01/01 --delete none miac2
tsdb scan 2022/01/01 --delete none etot
tsdb scan 2022/01/01 --delete none mov1
tsdb scan 2022/01/01 --delete none wtot
tsdb scan 2022/01/01 --delete none w1
tsdb scan 2022/01/01 --delete none avgTh1
tsdb scan 2022/01/01 --delete none avgTh2
tsdb scan 2022/01/01 --delete none sumHvac1
tsdb scan 2022/01/01 --delete none sumHvac2
tsdb scan 2022/01/01 --delete none sumMiac1
tsdb scan 2022/01/01 --delete none sumMiac2
tsdb scan 2022/01/01 --delete none maxEtot
tsdb scan 2022/01/01 --delete none sumMov1
tsdb scan 2022/01/01 --delete none sumW1
tsdb scan 2022/01/01 --delete none diffMaxEtot
tsdb scan 2022/01/01 --delete none diffMaxWtot
tsdb scan 2022/01/01 --delete none aggDiffWto_DayW1
tsdb scan 2022/01/01 --delete none aggDayEtot_Hvac_Miac
tsdb scan 2022/01/01 --delete none twoDaysLateStreamW1
tsdb scan 2022/01/01 --delete none tenDaysLateStreamW1