Στόχος
Ο κύριος στόχος του μαθήματος είναι να παρουσιάσει στους φοιτητές σύγχρονες τεχνικές, συστήματα και πλατφόρμες για αποδοτική διαχείριση και επεξεργασία δεδομένων μεγάλης κλίμακας. Έμφαση θα δοθεί σε θέματα που σχετίζονται με τη δυνατότητα κλιμάκωσης, την αποτελεσματικότητα και την ανεκτικότητα σε λάθη στον πλήρη κύκλο ζωής των μεγάλης κλίμακας δεδομένων, από τη συλλογή δεδομένων μέχρι την ολοκλήρωση των δεδομένων και την ερμηνεία. Μέσα από το μάθημα αυτό, οι φοιτητές αναμένεται ότι θα αποκτήσουν σημαντικές τεχνικές δεξιότητες στη διαχείριση δεδομένων μεγάλης κλίμακας και θα μάθουν να σχεδιάζουν και να υλοποιούν αλγορίθμους επεξεργασίας δεδομένων μεγάλης κλίμακας.
Περιεχόμενα Μαθήματος
Μεγάλα δεδομένα, προηγμένες τεχνικές μοντελοποίησης και MapReduce
Βασικές έννοιες. Εφαρμογές. Περιπτώσεις χρήσης. Ορισμοί. 6Vs -Volume, Variety, Velocity, Veracity, Validity και Volatility. Προηγμένες τεχνικές μοντελοποίησης σχετιζόμενες με Μεγάλα Δεδομένα. Διατύπωση προβλήματος. Απαιτήσεις για πλατφόρμες διαχείρισης μεγάλης κλίμακας δεδομένων. Ευκαιρίες και ερευνητικές προκλήσεις. Η διαδικασία ανάλυσης Μεγάλων Δεδομένων. Προκλήσεις που σχετίζονται με δεδομένα μεγάλης κλίμακας. Το προγραμματιστικό πλαίσιο MapReduce.
Hadoop & HDFS
Το κατανεμημένο σύστημα αρχείων Hadoop, δημιουργία αντιγράφων, ανοχή σε σφάλματα, υψηλός βαθμός ρυθμαπόδοσης στην ανάγνωση. Το Apache Hadoop ως μια υλοποίηση του MapReduce. Περιορισμοί του Hadoop. Σχεδίαση εργασιών MapReduce. Τεχνικές κατάτμησης δεδομένων. Απλές λειτουργίες (καταμέτρηση, συνάθροιση) και σύνθετες λειτουργίες (συζεύξεις).
Μαζική επεξεργασία I (Apache Spark)
Παράλληλη επεξεργασία, επεξεργασία στην κύρια μνήμη, τα Dataframes στο Spark, αποθήκευση κατά στήλες και κατά γραμμές, παράδειγμα χρήσης.
Μαζική επεξεργασία II (Apache Spark)
Resilient Distributed Datasets (RDDs), αμετάτρεπτες μεταβλητές, actions και transformations, νωθρή αποτίμηση, ο φλοιός του Spark, σύγκριση μεταξύ Spark και Hadoop.
Μαζική επεξεργασία III (Apache Spark)
Δηλωτική επεξεργασία επερωτήσεων, η Spark SQL, προγραμματισμός με Dataframes, η μηχανή επεξεργασίας του Spark, κατάτμηση δεδομένων, δουλεύοντας με δεδομένα JSON.
Επεξεργασία σε πραγματικό χρόνο I (Apache Storm)
Συστήματα διαχείρισης ροών δεδομένων, επεξεργασία ροών δεδομένων, προγραμματισμός σε Apache Storm, Bolts και Spouts, τοπολογίες στο Storm.
Επεξεργασία σε πραγματικό χρόνο II (Spark Streaming)
Το micro-batching, το Spark streaming, επεξεργασία με και δίχως διατήρηση κατάστασης, μηχανισμοί παραθύρων.
Επεξεργασία σε πραγματικό χρόνο III (Apache Kafka)
Το Apache Kafka, βασικές έννοιες, publish/subscribe αρχιτεκτονική, επεξεργασία δεδομένων με διασωλήνωση σε πραγματικό χρόνο.
Το σύστημα HBase
Αποθήκευση δεδομένων για τυχαία προσπέλαση, αποθήκευση κατά στήλες, βασικές έννοιες της HBase, προχωρημένες έννοιες και χαρακτηριστικά.
Ερευνητικά θέματα για Μεγάλα Δεδομένα
Επιλεγμένα ερευνητικά θέματα για διαχείριση και επεξεργασία Μεγάλων Δεδομένων.
Προτεινόμενα Συγγράμματα
- Ö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.