Skip to main content

Επισκόπηση βάσεων δεδομένων NoSQL

Web Programming - Computer Science for Business Leaders 2016 (Απρίλιος 2024)

Web Programming - Computer Science for Business Leaders 2016 (Απρίλιος 2024)
Anonim

Το ακρωνύμιο NoSQL δημιουργήθηκε το 1998. Πολλοί άνθρωποι σκέφτονται ότι ο NoSQL είναι ένας υποτιμητικός όρος που δημιουργήθηκε για να σπρώξει την SQL. Στην πραγματικότητα, ο όρος σημαίνει όχι μόνο SQL. Η ιδέα είναι ότι και οι δύο τεχνολογίες μπορούν να συνυπάρχουν και το καθένα έχει τη θέση του. Το κίνημα NoSQL έχει ανακοινωθεί τα τελευταία χρόνια, καθώς πολλοί από τους ηγέτες του Web 2.0 έχουν υιοθετήσει τεχνολογία NoSQL. Εταιρείες όπως το Facebook, το Twitter, το Digg, το Amazon, το LinkedIn και το Google χρησιμοποιούν το NoSQL με τον ένα ή τον άλλο τρόπο. Ας σπάσουμε το NoSQL, ώστε να μπορείτε να το εξηγήσετε στον CIO ή ακόμα και στους συναδέλφους σας.

NoSQL αναδύθηκε από την ανάγκη

Αποθήκευση δεδομένων: Τα αποθηκευμένα ψηφιακά δεδομένα στον κόσμο μετριούνται σε exabytes. Ένα exabyte ισούται με ένα δισεκατομμύριο gigabytes (GB) δεδομένων. Σύμφωνα με το Internet.com, ο αριθμός αποθηκευμένων δεδομένων που προστέθηκαν το 2006 ήταν 161 exabytes. Μόλις 4 χρόνια αργότερα το 2010, ο αριθμός των αποθηκευμένων δεδομένων θα είναι σχεδόν 1.000 ExaBytes που είναι μια αύξηση άνω του 500%. Με άλλα λόγια, υπάρχουν πολλά δεδομένα που αποθηκεύονται στον κόσμο και το μόνο που θα συνεχίσει να αυξάνεται.

Διασυνδεδεμένα δεδομένα: Τα δεδομένα συνεχίζουν να συνδέονται περισσότερο. Η δημιουργία του ιστότοπου που υποστηρίζεται από υπερσυνδέσμους, blogs έχει pingbacks και κάθε σημαντικό σύστημα κοινωνικού δικτύου έχει ετικέτες που συνδέουν τα πράγματα μαζί. Τα μεγάλα συστήματα είναι χτισμένα για διασύνδεση.

Σύνθετη δομή δεδομένων: Το NoSQL μπορεί να χειριστεί εύκολα τις ιεραρχικές δομές δεδομένων. Για να ολοκληρώσετε το ίδιο πράγμα σε SQL, θα χρειαστείτε πολλαπλά σχεσιακά τραπέζια με όλα τα είδη κλειδιών. Επιπλέον, υπάρχει σχέση μεταξύ της απόδοσης και της πολυπλοκότητας των δεδομένων. Η απόδοση μπορεί να υποβαθμιστεί σε ένα παραδοσιακό RDBMS καθώς αποθηκεύουμε τα τεράστια ποσά δεδομένων που απαιτούνται στις εφαρμογές κοινωνικής δικτύωσης και στον σημασιολογικό ιστό.

Τι είναι το NoSQL;

Υποθέτω ότι ένας τρόπος για τον ορισμό του NoSQL είναι να εξετάσει τι δεν είναι. Δεν είναι SQL και δεν είναι σχεσιακή. Όπως υποδηλώνει το όνομα, δεν αποτελεί αντικατάσταση ενός RDBMS, αλλά το συγχαίρει. Το NoSQL έχει σχεδιαστεί για καταστήματα κατανεμημένων δεδομένων για ανάγκες δεδομένων μεγάλης κλίμακας. Σκεφτείτε το Facebook με τους 500.000.000 χρήστες ή Twitter το οποίο συγκεντρώνει Terabits δεδομένων κάθε μέρα.

Σε μια βάση δεδομένων NoSQL, δεν υπάρχει σταθερό σχήμα και καμία σύνδεση. Ένα RDBMS "κλιμακώνεται" αυξάνοντας το γρηγορότερο και γρηγορότερο υλικό και προσθέτοντας μνήμη. Η NoSQL, από την άλλη πλευρά, μπορεί να επωφεληθεί από την "κλιμάκωση". Η κλιμάκωση αφορά την εξάπλωση του φορτίου σε πολλά συστήματα βασικών προϊόντων. Αυτή είναι η συνιστώσα του NoSQL που το καθιστά μια φθηνή λύση για μεγάλα σύνολα δεδομένων.

Κατηγορίες NoSQL

Ο σημερινός κόσμος NoSQL ταιριάζει σε 4 βασικές κατηγορίες.

  1. Καταστήματα βασικών τιμών βασίζονται κυρίως στο χαρτί Dynamo του Amazon, το οποίο γράφτηκε το 2007. Η κύρια ιδέα είναι η ύπαρξη ενός πίνακα κατακερματισμού όπου υπάρχει ένα μοναδικό κλειδί και ένας δείκτης σε ένα συγκεκριμένο στοιχείο δεδομένων. Αυτές οι αντιστοιχίσεις συνήθως συνοδεύονται από μηχανισμούς κρυφής μνήμης για τη μεγιστοποίηση της απόδοσης.
    1. Οικογενειακά καταστήματα στήλης δημιουργήθηκαν για να αποθηκεύουν και να επεξεργάζονται πολύ μεγάλες ποσότητες δεδομένων που διανέμονται σε πολλά μηχανήματα. Υπάρχουν ακόμα κλειδιά, αλλά δείχνουν σε πολλές στήλες. Στην περίπτωση του BigTable (πρότυπο Family NoSQL της οικογένειας της Google), οι σειρές προσδιορίζονται με ένα πλήκτρο γραμμής με τα δεδομένα ταξινομημένα και αποθηκευμένα από αυτό το κλειδί. Οι στήλες ταξινομούνται ανά οικογένεια στηλών.
  2. Βάση δεδομένων εγγράφωνs ήταν εμπνευσμένα από το Lotus Notes και είναι παρόμοια με τα καταστήματα βασικής αξίας. Το μοντέλο είναι βασικά εκδοθέντα έγγραφα που είναι συλλογές άλλων συλλογών βασικής αξίας. Τα ημι-δομημένα έγγραφα αποθηκεύονται σε μορφές όπως το JSON.
  3. Βάση δεδομένων γραφημάτωνs είναι χτισμένα με κόμβους, σχέσεις μεταξύ σημειώσεων και ιδιότητες κόμβων. Αντί των πινάκων των σειρών και των στηλών και της άκαμπτης δομής της SQL, χρησιμοποιείται ένα μοντέλο ευέλικτου γραφήματος το οποίο μπορεί να κλιμακωθεί σε πολλές μηχανές.

Σημαντικοί παίκτες του NoSQL

Οι κύριοι παίκτες στο NoSQL προέκυψαν κυρίως λόγω των οργανώσεων που τις έχουν υιοθετήσει. Μερικές από τις μεγαλύτερες τεχνολογίες NoSQL περιλαμβάνουν:

  • Δυναμό: Το Dynamo δημιουργήθηκε από την Amazon.com και είναι η πιο σημαντική βάση δεδομένων NoSQL βασικής αξίας. Ο Amazon χρειαζόταν μια εξαιρετικά κλιμακούμενη κατανεμημένη πλατφόρμα για τις επιχειρήσεις ηλεκτρονικού εμπορίου τους, ώστε να αναπτύξουν το Dynamo. Το Amazon S3 χρησιμοποιεί το Dynamo ως μηχανισμό αποθήκευσης.
  • Κασσάνδρα: Η Cassandra ήταν ανοιχτή από το Facebook και είναι μια βάση δεδομένων NoSQL προσανατολισμένη στη στήλη.
  • BigTable: Το BigTable είναι ιδιόκτητη βάση δεδομένων με βάση τις στήλες της Google. Η Google επιτρέπει τη χρήση του BigTable, αλλά μόνο για το Google App Engine.
  • SimpleDB: Το SimpleDB είναι μια άλλη βάση δεδομένων του Amazon. Χρησιμοποιείται για Amazon EC2 και S3, αποτελεί μέρος της Amazon Web Services που χρεώνει τέλη ανάλογα με τη χρήση.
  • CouchDB: Το CouchDB μαζί με το MongoDB είναι βάσεις δεδομένων NoSQL προσανατολισμένες προς το έγγραφο.
  • Neo4J: Το Neo4j είναι μια βάση δεδομένων γραφικών ανοιχτού κώδικα.

Ερώτημα NoSQL

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

Πολλές από τις πλατφόρμες NoSQL επιτρέπουν τη σύνδεση RESTful με τα δεδομένα. Άλλα API ερωτημάτων προσφοράς. Υπάρχουν μερικά εργαλεία αναζήτησης που έχουν αναπτυχθεί και επιχειρούν να ερωτήσουν πολλές βάσεις δεδομένων NoSQL. Αυτά τα εργαλεία συνήθως λειτουργούν σε μία μόνο κατηγορία NoSQL. Ένα παράδειγμα είναι το SPARQL. Το SPARQL είναι μια δηλωτική προδιαγραφή ερωτήματος που έχει σχεδιαστεί για βάσεις δεδομένων γραφημάτων. Ακολουθεί ένα παράδειγμα ενός ερωτήματος SPARQL που ανακτά τη διεύθυνση URL ενός συγκεκριμένου blogger (ευγενική προσφορά της IBM):

PREFIX foaf: SELECT? UrlΑΠΟ ΟΠΟΥ {συνεισφορά foaf: όνομα "Jon Foobar".συνεισφορά foaf: weblog? url.}

Το μέλλον του NoSQL

Οι οργανισμοί που έχουν τεράστιες ανάγκες αποθήκευσης δεδομένων εξετάζουν σοβαρά το NoSQL. Προφανώς, η ιδέα δεν είναι τόσο ελκτική για τους μικρότερους οργανισμούς. Σε μια έρευνα που διεξήχθη από την Εβδομάδα Πληροφοριών, το 44% των επαγγελματιών επαγγελματιών πληροφορικής δεν έχουν ακούσει για το NoSQL. Επιπλέον, μόνο το 1% των ερωτηθέντων ανέφερε ότι το NoSQL αποτελεί μέρος της στρατηγικής τους κατεύθυνσης. Σαφώς, η NoSQL έχει τη θέση της στον συνδεδεμένο κόσμο μας, αλλά θα πρέπει να συνεχίσει να εξελίσσεται για να πάρει τη μαζική έκκληση που πολλοί πιστεύουν ότι θα μπορούσε να έχει.