As the world continues to shift towards a more sustainable future, the need for efficient management of natural resources is becoming increasingly critical. This has led to the emergence of smart meters as a key technology in the utilities sector. Smart meters are intelligent devices that can collect and analyze electricity, water and gas consumption data in real-time, allowing for better monitoring and management of resource usage. With this data, utilities can make informed decisions about how to optimize their distribution networks and reduce wastage, while also providing customers with greater insight into their usage patterns and helping them to make more informed choices about their consumption. In order to meet these needs, utilities must employ a combination of scalable and fault-tolerant storage systems, to store large amounts of data in an efficient and cost-effective manner. Additionally, stream processing technologies can be used to ingest and process real-time data as it is generated by the smart meters, enabling utilities and customers to quickly detect and respond to anomalies, ultimately improving the efficiency and reliability of the service. This dissertation focuses on the design and implementation of a scalable and extensible Lambda architecture for storing and analyzing the huge volume of data generated by smart meter devices, although it can generally be applied to any system that stores and processes time series data. In the proposed architecture, Apache Kafka is used as the messaging backbone, through which device metrics are made available to consumer applications. For real time processing, Kafka Streams and ksqlDB are used to calculate aggregates, filter and re-route messages, as well as alarm when outliers are detected. Cassandra is selected as the database for storing data for the medium-term, while S3 as the data lake for the long-term. The implementation focuses on the main data ingestion, stream processing and medium-term storage, with example flows being presented. Finally, performance tests are conducted to collect metrics to assess the scalability of key components of the architecture.
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of a big data architecture for storage, real-time processing and batch analysis of smart metering data
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
Ευχαριστώ πολύ για την προσοχή σας!
Ερωτήσεις;