Page 10 - Linux Inside τ. 11 preview

A
ρχίζοντας την αναφορά μας στα NoSQL (διαβάζεται Not
Only SQL) συστήματα και βάσεις δεδομένων, ας αναφέ-
ρουμε (για τους φίλους μας που τώρα αρχίζουν να
ασχολούνται με το αντικείμενο) ότι πρόκειται για μία ευρεία
ομάδα συστημάτων διαχείρισης βάσεων δεδομένων
(
database management system), που το κύριο χαρακτηριστι-
κό του είναι η μη τήρηση του μοντέλου RDBMS (Relational
Database Management System), το οποίο χρησιμοποιείται
«
τυφλά» στη συντριπτική πλειονότητα των περιπτώσεων. Ίσως
επίσης παρατηρήσατε ότι δεν γίνεται καμία αναφορά στο «τι
είναι NoSQL βάσεις». Και αυτό γιατί δεν μπορούμε να δώσου-
με έναν σαφή ορισμό τι είναι ή τι δεν είναι ένα σύστημα
NoSQL, απλά λέμε ότι δεν είναι RDBMS και ότι χρησιμοποιεί
εντελώς διαφορετικό τρόπο από τον κλασικό για τη διαχείρι-
ση των δεδομένων μέσα στη βάση (data manipulation). Οι
NoSQL βάσεις δεδομένων γενικώς δεν χρησιμοποιούν κά-
ποιο δομημένο σύστημα για τα στοιχεία που περιλαμβάνουν,
π.χ., πίνακες, ούτε χρησιμοποιούν κάποια Structured Query
Language (SQL) για τη διαχείριση των δεδομένων, αλλά χρη-
σιμοποιούν αποκλειστικά non-relational τρόπους οργάνωσης
και ανάλυσης των δεδομένων.
Τα NoSQL συστήματα κατά κύριο λόγο είναι βελτιστοποιη-
μένα (optimized) ώστε να ανακτούν και να επισυνάπτουν δε-
δομένα. Η μειωμένη ευελιξία του χρόνου εκτέλεσης σε σύ-
γκριση με συστήματα SQL (δηλαδή με τα RDBMS) αντισταθμί-
ζεται από τη σημαντική αύξηση στην απόδοση (και στην επε-
κτασιμότητα) για ορισμένα μοντέλα δεδομένων. Τα δεδομένα
θα μπορούσαν να είναι δομημένα, αλλά αυτό είναι στην πραγ-
ματικότητα ασήμαντο, καθώς αν κάτι έχει ουσιαστική σημασία
στα NoSQL συστήματα, αυτό είναι η ικανότητα να αποθηκεύ-
ουν και να ανακτούν μεγάλες ποσότητες δεδομένων, «αδια-
φορώντας» για τις σχέσεις μεταξύ των στοιχείων αυτών.
Τα βασικά χαρακτηριστικά των NoSQL database systems
είναι 1) η μη χρήση της SQL ως query language 2) δεν μπο-
ρεί να εγγυηθεί ότι οι διεργασίες στη βάση δεδομένων θα γί-
νονται αξιόπιστα 3) έχουν μία ιδιαίτερη αρχιτεκτονική και φι-
λοσοφία λειτουργίας.
Αναλυτικότερα, τα NoSQL συστήματα αναπτύχθηκαν και
εξελίχθηκαν παράλληλα με τις μεγαλύτερες εταιρείες Πληρο-
φορικής στον κόσμο, όπως η Google ή η Amazon, που είχαν
ανάγκη να διαχειρίζονται έναν τεράστιο όγκο δεδομένων, κάτι
στο οποίο δεν βόλευαν τα παραδοσιακά μέχρι τότε συστήμα-
τα RDBMS. Τα NoSQL συστήματα έχουν φτιαχτεί έτσι ώστε να
μπορούν να διαχειριστούν μεγάλες ποσότητες δεδομένων
χωρίς κατ’ ανάγκη να διατηρούν μία συγκεκριμένη δομή
(
schema). Επίσης, οι μέθοδοι υλοποίησης και εφαρμογής
τους αξιοποιούν μία αρχιτεκτονική που επιτρέπει (και ίσως δι-
ευκολύνει) την κατανεμημένη λειτουργία του συστήματος. Με
αυτόν τον τρόπο το σύστημα μπορεί θεωρητικά να «απογειω-
θεί» σε επιδόσεις, από τη στιγμή που μπορούν να προστε-
θούν θεωρητικά άπειροι servers, οι οποίοι θα επεξεργάζονται
κατανεμημένα τα δεδομένα του συστήματος. Ακόμη, η ενδε-
χόμενη αδυναμία λειτουργίας ενός server του συστήματος
μπορεί να αντιμετωπιστεί εύκολα. Αυτός ο τύπος βάσεων δε-
δομένων αναπτύσσεται διαρκώς οριζόντια, καθώς αυξάνονται
οι ανάγκες για storage δεδομένων, που συνεχώς πληθαίνουν
(
data growth), ενώ είναι πιο σημαντικές οι επιδόσεις προσπέ-
λασης των δεδομένων από τη συνοχή που παρουσιάζουν.
Αφού είδαμε συγκεκριμένα κάποια στοιχεία σχετικά με τη
λειτουργία των NoSQL συστημάτων, τώρα θα αναφερθούμε
πιο ειδικά στα πλεονεκτήματα τους σε πρακτικό επίπεδο.
Αρχικά, παρουσιάζουν μεγάλη «ελαστικότητα» στη βελτίωση
της επίδοσής τους. Μάλιστα, από τη στιγμή που η υλοποίησή
τους τις περισσότερες φορές γίνεται σε υποδομές cloud ή
σε virtualized environments, συμφέρουν πολύ από οικονομική
άποψη, σε αντίθεση με τα κλασικά RDBMS συστήματα. Ειδι-
κότερα, ενώ στα RDBMS συστήματα, όταν θέλουμε να τα βελ-
τιώσουμε, προσθέτουμε περισσότερη μνήμη RΑΜ ή καλύτε-
ρους επεξεργαστές στις υποδομές μας, αντίθετα στα NoSQL
συστήματα απλώς προσθέτουμε κόμβους ώστε να επεξεργά-
ζονται ακόμη περισσότερα δεδομένα ταυτόχρονα. Επίσης, η
συντήρηση ενός high-end συστήματος RDBMS που διαχειρί-
ζεται τεράστιο όγκο δεδομένων απαιτεί εξίσου μεγάλο κό-
στος (κυρίως Database Administrators, που αρχίζουν πια να
χάνουν την αξία τους). Αντίθετα, τα NoSQL συστήματα εξ ορι-
σμού είναι σχεδιασμένα ώστε να απαιτούν τη λιγότερη δυνατή
διαχείριση από τον ανθρώπινο παράγοντα, χρησιμοποιώντας
μεθόδους, όπως automatic repair και data distribution, καθώς
και πιο απλά μοντέλα δεδομένων. Όλα αυτά οδηγούν σε σα-
φώς μικρότερες ανάγκες για διαχείριση ή βελτιστοποίηση του
συστήματος. Επιπλέον, οποιαδήποτε αλλαγή στο μοντέλο δε-
δομένων ενός συστήματος RDBMS είναι μία διαδικασία που
απαιτεί ένα σεβαστό χρονικό διάστημα όπου η εφαρμογή που
στηρίζεται στη συγκεκριμένη βάση δεδομένων θα είναι «κατε-
βασμένη» (downtime) ή θα μειωθούν σε μεγάλο βαθμό τα
επίπεδα λειτουργίας της υπηρεσίας, ενώ ένα NoSQL σύστη-
μα έχει πολύ λιγότερους (έως μηδαμινούς) περιορισμούς σε
αυτό το ζήτημα.
Ας δούμε όμως λίγο πιο προσεκτικά ορισμένες λεπτομέρει-
ες για τα NoSQL συστήματα. Εδώ θα πρέπει να αναφερθεί ότι
Linux Inside
82
Οι NoSQL βάσεις δεδομένων γενικώς δεν
χρησιμοποιούν κάποιο δομημένο σύστημα για
τα στοιχεία που περιλαμβάνουν, π.χ., πίνακες,
ούτε χρησιμοποιούν κάποια Structured Query
Language (SQL).
Του Κωνσταντίνου Λιβιεράτου <koslibpro@klivieratos.info>
Linux Labs - NoSQL
Ξεχάστε για λίγο τις κλασικές βάσεις RDBMS και τη
MySQL. Καιρός να εντρυφήσετε στα μυστικά των
NoSQL βάσεων δεδομένων...
Εργαλεία:
Cassandra, Thrift,
Boost, JRE, SPARQL
Δυσκολία:
URL:
Τεκμηρίωση
Βάσεις δεδομένων NoSQL
Ο Κώστας είναι φοιτητής και του αρέσουν ο προγραμματισμός και το IT administration.
ΚΩΔΙΚΑΣ
ΣΤΟ DVD