Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκευση, επεξεργασία σε πραγµατικό χρόνο και ανάλυση δεδοµένων έξυπνων µετρητών
Καθώς ο κόσμος συνεχίζει την μετάβαση προς ένα πιο βιώσιμο μέλλον, η ανάγκη για αποτελεσματική διαχείριση των φυσικών πόρων γίνεται ολοένα και πιο σημαντική. Αυτό έχει οδηγήσει τις υπηρεσίες κοινωνικής ωφέλειας στη χρήση των έξυπνων μετρητών ως κύριας τεχνολογίας. Οι έξυπνοι μετρητές είναι συσκευές που μπορούν να συλλέξουν και να αναλύσουν, σε πραγματικό χρόνο, δεδομένα κατανάλωσης ηλεκτρικής ενέργειας, νερού και αερίου, επιτρέποντας την καλύτερη παρακολούθηση και διαχείριση των πόρων. Με αυτά τα δεδομένα, οι υπηρεσίες κοινής ωφέλειας μπορούν να λάβουν εμπεριστατωμένες αποφάσεις για τη βελτιστοποίηση των δικτύων διανομής και τη μείωση της σπατάλης, προσφέροντας ταυτόχρονα στους πελάτες τους τη δυνατότητα για καλύτερη κατανόηση των συνηθειών τους και βοηθώντας τους να λάβουν ποιοτικές αποφάσεις για την κατανάλωσή τους. Προκειμένου να καλυφθεί αυτή η ανάγκη, οι υπηρεσίες κοινής ωφέλειας πρέπει να υιοθετήσουν έναν συνδυασμό από κλιμακούμενες (scalable) και ανθεκτικές σε σφάλματα (fault-tolerant) τεχνολογίες, για την αποθήκευση των δεδομένων με αποτελεσματικό και οικονομικά αποδοτικό τρόπο. Επιπλέον, τεχνολογίες επεξεργασίας ροών δεδομένων (stream processing) μπορούν να χρησιμοποιηθούν για την εισαγωγή στο σύστημα και την ανάλυση των δεδομένων που παράγονται από τους μετρητές σε πραγματικό χρόνο, επιτρέποντας στους παρόχους και τους καταναλωτές την άμεση ανίχνευση και αντίδραση σε απρόσμενες μεταβολές, βελτιώνοντας έτσι την αποδοτικότητα και την αξιοπιστία της υπηρεσίας. Η παρούσα διπλωματική επικεντρώνεται στον σχεδιασμό και την υλοποίηση μιας κλιμακούμενης και επεκτάσιμης Lambda αρχιτεκτονικής, για την αποθήκευση και ανάλυση του τεράστιου όγκου δεδομένων που συλλέγονται από έξυπνους μετρητές, αν και μπορεί να γενικευθεί για κάθε σύστημα που αποθηκεύει και αναλύει δεδομένα χρονοσειρών. Στην προτεινόμενη αρχιτεκτονική, το Apache Kafka χρησιμοποιείται ως βασικό υποσύστημα για την εισαγωγή των μηνυμάτων στο συνολικό σύστημα, ώστε, μέσω αυτού, οι μετρικές των συσκευών να γίνονται διαθέσιμες σε εφαρμογές-καταναλωτές. Για την επεξεργασία ροών δεδομένων, χρησιμοποιούνται τα Kafka Streams και ksqlDB, ώστε να γίνει συνάθροιση (aggregation), φιλτράρισμα και επαναδρομολόγηση των μηνυμάτων, καθώς και να παραχθούν ειδοποιήσεις σε περίπτωση ανίχνευσης ακραίων τιμών. Για τη μεσοπρόθεσμη αποθήκευση, επιλέγεται η Cassandra, ενώ για τη μακροπρόθεσμη αποθήκευση, προτείνεται το S3. Η υλοποίηση επικεντρώνεται στην εισαγωγή των δεδομένων στο σύστημα, την επεξεργασία ροών δεδομένων και τη μεσοπρόθεσμη αποθήκευση, ενώ παρατίθενται παραδείγματα χρήσης αυτών των υποσυστημάτων. Τέλος, συλλέγονται και παρουσιάζονται μετρικές από τον έλεγχο επίδοσης των καίριων συστατικών, ώστε να αξιολογηθεί ο βαθμός κλιμάκωσης της λύσης.
Autonomous car position calculation with particle filters using traffic data ...ISSEL
More Related Content
Similar to Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκευση, επεξεργασία σε πραγµατικό χρόνο και ανάλυση δεδοµένων έξυπνων µετρητών
Αυτοματοποίηση Ανάθεσης Εργασιών Λογισμικοπύ με εφαρμογή τεχνικών Θεματικής Μ...ISSEL
Similar to Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκευση, επεξεργασία σε πραγµατικό χρόνο και ανάλυση δεδοµένων έξυπνων µετρητών (20)
Design and implementation of an automation mechanism to automatically develop...
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκευση, επεξεργασία σε πραγµατικό χρόνο και ανάλυση δεδοµένων έξυπνων µετρητών
1. Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής
μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση
δεδομένων έξυπνων μετρητών
Διπλωματική Εργασία
Εκπόνηση:
Αλέξανδρος Σαχίνης 8906
Επίβλεψη:
Καθηγητής Ανδρέας Λ. Συμεωνίδης
2. 05
04
Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
2
02 Μεθοδολογία
Μελλοντική
Εργασία
01
Εισαγωγή
Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
3. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
3
Ποιότητα Υπηρεσίας
Κόστος
• Αύξηση αξιοπιστίας
• Βελτιωμένη εμπειρία χρήσης
• Προσαρμογή παραγωγής στις ανάγκες της
ζήτησης
• Χαμηλότερο κόστος για τον καταναλωτή
Κίνητρο
Περιβάλλον
• Μείωση σπατάλης φυσικών πόρων στην
παραγωγή
• Βελτιστοποίηση συνηθειών κατανάλωσης
4. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
4
Περιγραφή Προβλήματος
Gateway Metric Type Metric Attribute Metric
Timestamp
Value
• Ηλεκτρισμός
• Νερό
• Αέριο
• Τιμή τάσης
• Τιμή έντασης
• Στιγμιαία κατανάλωση
• Αθροιστική κατανάλωση
• …
• Σπίτι
• Συσκευή
• …
5. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
5
Σκοπός της διπλωματικής
Συλλογή δεδομένων σε κεντρικό messaging broker
Επεξεργασία ροών δεδομένων σε πραγματικό χρόνο
Μεσοπρόθεσμη αποθήκευση
Μακροπρόθεσμη αποθήκευση
Επεκτασιμότητα
Κλιμάκωση
Αποδοτικότητα
6. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
6
02 Μεθοδολογία
05
Μελλοντική
Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
7. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
7
Αρχιτεκτονική
8. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
8
Publisher: Datasets
• Συνολική κατανάλωση ενός σπιτιού
• Ευκρίνεια ενός λεπτού
• 2,075,259 δείγματα
• Χρονική διάρκεια κάλυψης 4 ετών
(∆εκέμβριος 2006, Νοέμβριος 2010)
• 133 ΜΒ για την κατανάλωση του σπιτιού
Ηλεκτρική Ενέργεια
Hebrail, G. (2012). In-dividual household
electric power consumption Data Set [1]:
Νερό & Αέριο
Makonin, S. (2016). AMPds2: The Almanac of Minutely
Power dataset (Version 2) [2]:
• Συνολική κατανάλωση ενός σπιτιού
• Ευκρίνεια ενός λεπτού
• 1,051,200 δείγματα
• Χρονική διάρκεια κάλυψης 2 ετών
(Απρίλιος 2012 έως Μάρτιος 2014)
• 60 ΜΒ για την κατανάλωση του σπιτιού
9. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
9
Publisher: Χαρακτηριστικά
• Καθορισμός αριθμού προσομοιωμένων συσκευών
• Συνθετικά δεδομένα
• Καθορισμός ρυθμού παραγωγής
• Publish στο Kafka topic metrics (4 partitions)
• Dockerized Java εφαρμογή
10. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
10
Aggregator
• Kafka Streams καταναλωτής
• Καθορισμός εύρους aggregation παραθύρου
• min, max, average, sample count
• Dockerized Java εφαρμογή
11. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
11
Cassandra Writer: Ροή Δεδομένων
12. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
12
Cassandra Writer: Μοντέλο Δεδομένων
13. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
13
ksqlDB
• Kafka Streams SQL
• Stream processing
• Tables & Streams
14. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
14
ksqlDB: Alarming
15. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
15
ksqlDB: Windowed Aggregates
16. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
16
ksqlDB: Latest Activity
17. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
17
Redis: Ροή δεδομένων
18. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
18
Amazon S3
• Χρήση ως data lake
• Απεριόριστη κλιμάκωση
• Storage tiers
• Integration με HDFS και OLAP συστήματα
19. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
19
02 Μεθοδολογία
05
Μελλοντική
Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
20. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
20
Aggregator: Παράδειγμα – 1 ώρα
21. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
21
Cassandra: Παράδειγμα
22. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
22
ksqlDB: Παράδειγμα - Alarms
alarm_thresholds table:
alarms stream:
23. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
23
ksqlDB: Παράδειγμα - Windowed Aggregates
t1:
t2:
24. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
24
ksqlDB: Παράδειγμα - Latest Activity
t1:
t2:
25. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
25
Redis: Παράδειγμα
Τιμές κλειδιών:
∆ιαθέσιμα κλειδιά:
26. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
26
Κλιμάκωση: Περιβάλλον
• CPU: AMD Ryzen 5600g, 6 cores, 4.4 GHz turbo frequency
• RAM: 2x16 GB DDR4, 2666 MHz
• Disk: 500 GB SSD NVMe
• OS: Ubuntu 22.4
• Deployment: Docker με 1 instance Kafka, 1 instance Cassandra
27. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
27
Κλιμάκωση: Aggregator
Aggregator 1 ώρας - 10 επαναλήψεις, 1K συσκευές, 240Κ μηνύματα:
Aggregator 1 λεπτού - 10 επαναλήψεις, 10K συσκευές, 100Κ μηνύματα:
Max: 18.2Κ msgs/sec
Max: 38.8Κ msgs/sec
28. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
28
Κλιμάκωση: Cassandra Writer
10 επαναλήψεις, 10K συσκευές, 100Κ μηνύματα:
Max: 8.27Κ msgs/sec
29. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
29
02 Μεθοδολογία
05
Μελλοντική
Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
30. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
30
Συμπεράσματα
Ανάλυση ροών δεδομένων σε πραγματικό χρόνο μέσω Kafka Streams και ksqlDB
Επεκτασιμότητα μέσω Kafka και Kafka Connect
Υποστήριξη πληθώρας ερωτημάτων σε aggregates μέσω Cassandra
Υποστήριξη τουλάχιστον 50Κ συσκευών με ρυθμό αποστολής 10 δευτερολέπτων
31. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
31
02 Μεθοδολογία
05
Μελλοντική
Εργασία
01
Εισαγωγή
04 Συμπεράσματα
03
Αποτελέσματα &
Αξιολόγηση
32. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
32
Μελλοντική Εργασία
Υλοποίηση υποσυστήματος μακροπρόθεσμης αποθήκευσης (S3)
Στρατηγική διαχείρισης κύκλου ζωής δεδομένων
∆οκιμή distributed deployment με παραπάνω από ένα instances Kafka και Cassandra & σύγκριση
batch με single writes στην Cassandra για περαιτέρω έλεγχο της κλιμάκωσης
33. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
33
Bibliography
[1] Alice Berard Georges Hebrail. UCI Machine Learning Repository: Individual
household electric power consumption Data Set. Aug. 2012.
URL: https://archive.ics.uci.edu/ml/datasets/Individual+household+electric+power+consumption.
[2] Stephen Makonin. AMPds2: The Almanac of Minutely Power dataset (Version2). Version V3. 2016. DOI:
10.7910/DVN/FIE0S4. URL: https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/FIE0S4.
34. Απρίλιος 2023 Σχεδιασμός και υλοποίηση μιας αρχιτεκτονικής μεγάλων δεδομένων για την αποθήκευση,
επεξεργασία σε πραγματικό χρόνο και ανάλυση δεδομένων έξυπνων μετρητών
34
Ευχαριστώ πολύ για την προσοχή σας!
Ερωτήσεις;