Κωδικός Μαθήματος

ΜΔΑ-285

Εξάμηνο Μαθήματος

2ου Εξαμήνου

Πιστωτικές Μονάδες

7,5

Ηλεκτρονικό Υλικό

https://evdoxos.ds.unipi.gr/courses/DSERV141

Κατηγορία Μαθήματος

Υποχρεωτικό

Επεξεργασία Μεγάλων Δεδομένων: Τεχνικές και Εργαλεία

Στόχος

Ο κύριος στόχος του μαθήματος είναι να παρουσιάσει στους φοιτητές σύγχρονες τεχνικές, συστήματα και πλατφόρμες για αποδοτική διαχείριση και επεξεργασία δεδομένων μεγάλης κλίμακας. Έμφαση θα δοθεί σε θέματα που σχετίζονται με τη δυνατότητα κλιμάκωσης, την αποτελεσματικότητα και την ανεκτικότητα σε λάθη στον πλήρη κύκλο ζωής των μεγάλης κλίμακας δεδομένων, από τη συλλογή δεδομένων μέχρι την ολοκλήρωση των δεδομένων και την ερμηνεία. Επιπρόσθετα θα αναλυθούν θέματα σχετικά με την επεξεργασία δεδομένων πολλαπλών πηγών με χρήση ροών υπηρεσιών επεξεργασίας, με στόχο το συνδυασμό της πληροφορίας που παράγεται από την προαναφερθείσα επεξεργασία δεδομένων από τις διαφορετικές υπηρεσίες των ροών. Μέσα από το μάθημα αυτό, οι φοιτητές αναμένεται ότι θα αποκτήσουν σημαντικές τεχνικές δεξιότητες στη διαχείριση δεδομένων μεγάλης κλίμακας και θα μάθουν να σχεδιάζουν και να υλοποιούν αλγορίθμους επεξεργασίας δεδομένων μεγάλης  κλίμακας.

 

Περιεχόμενα Μαθήματος

Μεγάλα δεδομένα και προηγμένες τεχνικές μοντελοποίησης

Βασικές έννοιες. Εφαρμογές. Περιπτώσεις χρήσης. Ορισμοί. 6Vs -Volume, Variety, Velocity, Veracity, Validity και Volatility. Προηγμένες τεχνικές μοντελοποίησης σχετιζόμενες με Μεγάλα Δεδομένα. Διατύπωση προβλήματος. Απαιτήσεις για πλατφόρμες διαχείρισης μεγάλης κλίμακας δεδομένων. Ευκαιρίες και ερευνητικές προκλήσεις. Η διαδικασία ανάλυσης Μεγάλων Δεδομένων. Προκλήσεις που σχετίζονται με δεδομένα μεγάλης κλίμακας.

MapReduce

Το προγραμματιστικό πλαίσιο MapReduce. Σχεδίαση εργασιών MapReduce. Τεχνικές κατάτμησης δεδομένων. Απλές λειτουργίες (καταμέτρηση,  συνάθροιση) και σύνθετες λειτουργίες (συζεύξεις).

Hadoop & HDFS (Εργαστήριο)

Το κατανεμημένο σύστημα αρχείων Hadoop, δημιουργία αντιγράφων, ανοχή σε σφάλματα, υψηλός βαθμός ρυθμαπόδοσης στην ανάγνωση. Το Apache Hadoop ως μια υλοποίηση του MapReduce. Περιορισμοί του Hadoop.

Μαζική επεξεργασία I (Εργαστήριο)

Παράλληλη επεξεργασία, επεξεργασία στην κύρια μνήμη, το Apache Spark, Resilient Distributed Datasets (RDDs), αμετάτρεπτες μεταβλητές, actions και transformations, νωθρή αποτίμηση, ο φλοιός του Spark, σύγκριση μεταξύ Spark και Hadoop.

Μαζική επεξεργασία II (Εργαστήριο)

Τα Dataframes στο Spark, αποθήκευση κατά στήλες και κατά γραμμές, δηλωτική επεξεργασία επερωτήσεων, η Spark SQL.

Επεξεργασία σε πραγματικό χρόνο I

Επεξεργασία ροών δεδομένων, προγραμματισμός σε Apache Storm, Bolts και Spouts, τοπολογίες στο Storm, το Apache Kafka, επεξεργασία δεδομένων με διασωλήνωση σε πραγματικό χρόνο.

Επεξεργασία σε πραγματικό χρόνο II (Εργαστήριο)

Το micro-batching, επεξεργασία με και δίχως διατήρηση κατάστασης, μηχανισμοί παραθύρων, το Spark streaming.

Αρχιτεκτονικές λάμδα για ανάλυση δεδομένων

Προσεγγίσεις για την αποθήκευση, χρήση και ανάλυση δεδομένων μέσω ροών υπηρεσιών ανάλυσης δεδομένων. Batch layer για την αποθήκευση των δεδομένων σε ένα μέσο, Serving layer για τη δημιουργία δεικτών και Real-time processing layer.

Ασύγχρονη επεξεργασία δεδομένων

Προσεγγίσεις τεχνικών στην πλευρά του εξυπηρετητή για την εξυπηρέτηση πολλαπλών ταυτόχρονων συνδέσεων με ελάχιστο overhead (CPU / memory) ανά υπηρεσία επεξεργασίας, η έννοια των callbacks, χρήση ενός μόνο thread για την υλοποίηση event loops. To framework Node.js.

NodeRed για ροές υπηρεσιών επεξεργασίας δεδομένων (Εργαστήριο)

Απεικόνιση κόμβων / υπηρεσιών για διάφορες λειτουργίες, μετασχηματισμός μορφής δεδομένων, δημιουργία/χρήση REST services, ανάγνωση αρχείων, δημιουργία υπηρεσιών / λειτουργιών (functions) επεξεργασίας δεδομένων.

 

Προτεινόμενα Συγγράμματα

  • Özsu, M. T., Valduriez P. (2011): Principles of Distributed Database Systems, Third Edition. Springer, ISBN 978-1-4419-8833-1, pp. I-XIX, 1-845.
  • Jagadish, H. V., Gehrke, J., Labrinidis, A., Papakonstantinou, Y., Patel, J. M., Ramakrishnan, R., Shahabi, C. (2014): Big Data and Its Technical Challenges. Communications of the ACM, Vol. 57 No. 7, pages 86-94.
  • Marz, N., Warren, J. (2015): Big Data: Principles and best practices of scalable realtime systems. Manning publications. ISBN:  9781617290343.
  • White, T. (2012): Hadoop: The Definitive Guide, 3rd Edition. O’Reilly Media, ISBN-10: 1449311520.
  • Karau, H., Konwinski, A., Wendell, P., Zaharia, M. (2015): Learning Spark: Lightning-fast big data analysis. O’Reilly Media. ISBN-10: 1449358624.
  • Golab, L., Özsu, M.T. (2010): Data Stream Management. Morgan & Claypool Publishers, Synthesis Lectures on Data Management.
  • Kleppmann, M., (2017): Designing data-intensive applications. O’Reilly Media. ISBN-10: 1449373321.