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

Πίνακας περιεχομένων:

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

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

Image
Image

NoSQL προέκυψε από μια ανάγκη

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

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

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

Τι είναι το NoSQL;

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

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

NoSQL Κατηγορίες

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

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

  3. Οι βάσεις δεδομένων εγγράφων εμπνεύστηκαν από τα Lotus Notes και είναι παρόμοιες με τα καταστήματα βασικών τιμών. Το μοντέλο είναι βασικά έγγραφα έκδοσης που είναι συλλογές άλλων συλλογών κλειδιών-τιμών. Τα ημιδομημένα έγγραφα αποθηκεύονται σε μορφές όπως JSON.
  4. Γράφημα βάσης δεδομένωνs είναι χτισμένα με κόμβους, σχέσεις μεταξύ των σημειώσεων και τις ιδιότητες των κόμβων. Αντί για πίνακες γραμμών και στηλών και της άκαμπτης δομής της SQL, χρησιμοποιείται ένα ευέλικτο μοντέλο γραφήματος που μπορεί να κλιμακωθεί σε πολλά μηχανήματα.

Κύρια προγράμματα αναπαραγωγής NoSQL

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

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

Querying NoSQL

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

SELECT ?url

FROM

WHERE {

WHERE {

?contributor foaf:name "Jon Foobar".

?contributor foaf:weblog ?url.}

Μέλλον του NoSQL

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

Συνιστάται: