Χρήστος Δουλκερίδης
Αναπλ. Καθηγητής
Ερευνητές από το Τμήμα Ψηφιακών Συστημάτων προτείνουν έναν καινοτόμο και ομοιόμορφο τρόπο πρόσβασης σε δεδομένα αποθηκευμένα σε μη-σχεσιακά NoSQL συστήματα.
Παρόλο που τα NoSQL συστήματα αποθήκευσης δεδομένων (MongoDB, CouchDB, HBase, Cassandra, Redis, κτλ.) αποτελούν την τεχνολογία αιχμής για διαχείριση Μεγάλων Δεδομένων, εξακολουθούν να χρησιμοποιούν διαφορετικές γλώσσες και προγραμματιστικές διεπαφές, δυσχεραίνοντας την ανάπτυξη εφαρμογών.
Στην πράξη, όπως φαίνεται στην εικόνα, για να αναπτύξει κανείς μια εφαρμογή στη MongoDB πρέπει πρώτα να μάθει το API της, και το ίδιο για την HBase, Redis, κτλ., τα οποία είναι – κατά κανόνα – εντελώς διαφορετικά καθώς μπορεί να υποστηρίζουν διαφορετικά μοντέλα δεδομένων. Σαν αποτέλεσμα, ο κώδικας της ίδιας εφαρμογής διαφέρει τελείως από NoSQL σύστημα σε άλλο, γεγονός που δυσχεραίνει τη μετάβαση από το ένα σύστημα στο άλλο.
Στα πλαίσια του ερευνητικού έργου Track&Know προτείνεται μια νέα μέθοδος για την ενοποίηση διαφορετικών NoSQL συστημάτων κάτω από μια κοινή προγραμματιστική διεπαφή. Η μέθοδος αυτή ονομάζεται NoDA (NoSQL Data Access Operators) και έχει ομοιότητες με άλλες διεπαφές (ODBC, JDBC) που χρησιμοποιούνται εδώ και δεκαετίες για Σχεσιακά Συστήματα Αποθήκευσης Δεδομένων.
Με απλά λόγια το NoDA είναι μια προγραμματιστική διεπαφή (βλ. μπλε επίπεδο δεξιά στην εικόνα) που αποτελείται από βασικούς τελεστές πρόσβασης σε δεδομένα (όπως filter, project, aggregate, sort) οι οποίοι υλοποιούνται για κάθε NoSQL σύστημα ξεχωριστά, προσφέροντας έτσι στον προγραμματιστή ένα εύκολο λεξιλόγιο για να αναπτύξει τις εφαρμογές του, με τα εξής πλεονεκτήματα:
- Είναι απλό και εύκολο στην εκμάθηση, καθώς αποκρύπτει την ιδιοσυγκρασία καθενός NoSQL συστήματος.
- Είναι ενιαίο και ομοιόμορφο, επιτρέποντας έτσι τη φορητότητα κώδικα από ένα NoSQL σύστημα σε άλλο, ακριβώς όπως γίνεται στις Σχεσιακές Βάσεις Δεδομένων.
- Παρέχει επιπρόσθετα διεπαφή σε μια γλώσσα που μοιάζει με την SQL, κάνοντάς το ακόμη πιο εύχρηστο για προγραμματιστές και αναλυτές δεδομένων.
Η εργασία αυτή εκπονείται από τον Υποψήφιο Διδάκτορα του Τμήματος Ψηφιακών Συστημάτων Νικόλαου Κουτρουμάνη, υπό την επίβλεψη του Αναπληρωτή Καθηγητή Χρήστου Δουλκερίδη.
Περισσότερες πληροφορίες:
- Άρθρο: https://www.ds.unipi.gr/prof/cdoulk/papers/sstd19a.pdf
- Σύντομο βίντεο: https://www.youtube.com/watch?v=Rf6OYWP6lic
- Ερευνητικό έργο Track&Know: https://trackandknowproject.eu/
- Γενικά για NoSQL συστήματα: https://dl.acm.org/doi/10.1145/3158661