Πίνακας περιεχομένων:
Βίντεο: An Introduction To NoSQL Databases 2024
Μόλις διαχειριστείτε σωστά τα κλειδιά, είστε έτοιμοι να σχεδιάσετε τον τρόπο αποθήκευσης δεδομένων με το NoSQL και να βεβαιωθείτε ότι είναι ασφαλές και πάντα προσβάσιμο για το έργο πρέπει να κάνετε.
Τύποι δεδομένων σε καταστήματα βασικής αξίας
Τα καταστήματα βασικής αξίας τυπικά λειτουργούν ως & ldquo; κουβάδες & rdquo; για δυαδικά δεδομένα. Ορισμένες βάσεις δεδομένων παρέχουν ισχυρή εσωτερική πληκτρολόγηση δεδομένων και ακόμη και υποστήριξη σχήματος. Άλλοι παρέχουν απλά βολικές λειτουργίες βοήθειας στους οδηγούς πελατών τους για τη σειριοποίηση κοινών δομών δεδομένων εφαρμογών σε ένα κατάστημα βασικής αξίας. Παραδείγματα περιλαμβάνουν χάρτες, λίστες και ταξινομημένα σύνολα.
Η Oracle NoSQL μπορεί να λειτουργήσει σε δύο λειτουργίες:
-
Απλό δυαδικό κατάστημα
-
Εξαιρετικά δομημένη υποστήριξη για το σχήμα
Ένα σχήμα Avro είναι παρόμοιο με ένα σχήμα σχεσιακής βάσης δεδομένων των κανόνων μορφοποίησης των δεδομένων JavaScript Notation Object (JSON) που αποθηκεύονται στη βάση δεδομένων, όπως απεικονίζεται εδώ:
{username: & ldquo; afowler & rdquo;, sessionid: 13452673, δεδομένου ότι: 1408318745, θέμα: & ldquo; bluesky & rdquo;}
Ορίζετε ένα σχήμα Avro χρησιμοποιώντας ένα έγγραφο JSON. Αυτό είναι ένα παράδειγμα του σχήματος Avro για τα αποθηκευμένα δεδομένα που δείξατε προηγουμένως:
{& ldquo; type & rdquo;: & ldquo; εγγραφή & rdquo;, & ldquo; όνομα χώρου & rdquo;: & ldquo; com. παράδειγμα & rdquo;, & ldquo; όνομα & rdquo;: & ldquo; UserSession & rdquo;, & ldquo; πεδία & rdquo;: [{& ldquo; όνομα & rdquo;: & ldquo; username & rdquo;, & ldquo; type & rdquo;: [& ldquo; string & rdquo;, & rdquo; null & rdquo;]}, {& ldquo; όνομα & rdquo;: & ldquo; sessionid & rdquo;, & ldquo; type & rdquo;: & ldquo; int & rdquo;}, {& ldquo; όνομα & rdquo;: & ldquo; από & rdquo;, & ldquo; type & rdquo;: & ldquo; long & rdquo;}, {& ldquo; όνομα & rdquo;: & ldquo; θέμα & rdquo;, & ldquo; type & rdquo;: [& ldquo; string & rdquo;, & rdquo; null & rdquo;]}]}
Ένα σχήμα Avro παρέχει πολύ ισχυρή πληκτρολόγηση στη βάση δεδομένων όταν το σχήμα είναι σημαντικό. Στο προηγούμενο παράδειγμα, βλέπετε δεδομένα στοιχειοσειράς, αριθμητικό αναγνωριστικό περιόδου σύνδεσης, ημερομηνία (χιλιοστά του δευτερολέπτου, από τη χρονική περίοδο Unix ως μακρύ ακέραιο αριθμό) και μια ρύθμιση εξατομίκευσης για το θέμα που θα χρησιμοποιηθεί στον ιστότοπο.
Σημειώστε επίσης ότι ο τύπος του ονόματος χρήστη και του θέματος έχει δύο επιλογές - συμβολοσειρά και μηδέν, που είναι ο τρόπος που καθοδηγείτε το Oracle NoSQL ότι επιτρέπονται οι μηδενικές τιμές. Θα μπορούσατε να αφήσετε το θέμα ως συμβολοσειρά και να παράσχετε μια επιπλέον παράμετρο διαμόρφωσης του & ldquo; default & rdquo;: & ldquo; bluesky & rdquo;.
Άλλες βάσεις δεδομένων του NoSQL παρέχουν δευτερογενή ευρετήρια σε οποιαδήποτε αυθαίρετη ιδιότητα μιας τιμής που έχει περιεχόμενο JSON. Ο Riak, για παράδειγμα, παρέχει δευτερεύοντα ευρετήρια με βάση το διαχωρισμό εγγράφων - βασικά, μια γνωστή ιδιότητα μέσα σε ένα έγγραφο JSON είναι ευρετηριασμένη με έναν τύπο.Αυτό επιτρέπει ερωτήματα εύρους (μικρότερα ή μεγαλύτερα από) εκτός από απλές ίσες και όχι ίσες συγκρίσεις. Ο Riak καταφέρνει να παρέχει ερωτήματα εύρους χωρίς αυστηρό σχήμα - απλό ορισμό ευρετηρίου. Εάν τα δεδομένα υπάρχουν, προστίθενται στο ευρετήριο.
Αναπαραγωγή δεδομένων
Η αποθήκευση πολλαπλών αντιγράφων των ίδιων δεδομένων σε άλλους διακομιστές ή ακόμα και σε ράφια εξυπηρετητών βοηθά στη διασφάλιση της διαθεσιμότητας δεδομένων σε περίπτωση αποτυχίας ενός διακομιστή. Η αποτυχία του διακομιστή συμβαίνει κυρίως στο ίδιο σύμπλεγμα.
Μπορείτε να χειριστείτε αντίγραφα με δύο βασικούς τρόπους:
- Master-slave: Όλες οι αναγνώσεις και οι εγγραφές συμβαίνουν στον κύριο. Οι σκλάβοι αναλαμβάνουν και λαμβάνουν αιτήματα μόνο εάν αποτύχει ο πλοίαρχος.
Η αναπαραγωγή master-slave χρησιμοποιείται συνήθως σε καταστήματα κλειδιών αξίας συμβατών με το ACID. Για να ενεργοποιήσετε τη μέγιστη συνοχή, το κύριο κατάστημα εγγράφεται και όλα τα αντίγραφα ενημερώνονται πριν ολοκληρωθεί η συναλλαγή. Αυτός ο μηχανισμός ονομάζεται διφασική δέσμευση και δημιουργεί επιπλέον χρόνο δικτύου και επεξεργασίας στα αντίγραφα.
- Master-master: Οι ανάγνωσεις και οι εγγραφές μπορούν να συμβούν σε όλους τους κόμβους που διαχειρίζονται ένα κλειδί. Δεν υπάρχει έννοια του " πρωτεύουσα & rdquo; ιδιοκτήτη διαμερισμάτων.
Τα αντίγραφα Master Master είναι συνήθως τελικά συνεπή, με το σύμπλεγμα να εκτελεί μια αυτόματη λειτουργία για να καθορίσει την τελευταία τιμή ενός κλειδιού και να καταργήσει παλαιότερες, παλιές τιμές.
Στα περισσότερα καταστήματα βασικής αξίας, αυτό συμβαίνει αργά - σε χρόνο ανάγνωσης. Το Riak αποτελεί την εξαίρεση εδώ, διότι έχει μια υπηρεσία αντι-εντροπίας που ελέγχει τη συνοχή κατά τη διάρκεια κανονικών λειτουργιών.
Δεδομένα έκδοσης
Προκειμένου να ενεργοποιηθεί η αυτόματη επίλυση συγκρούσεων, χρειάζεστε έναν μηχανισμό που να υποδεικνύει την τελευταία έκδοση δεδομένων. Τελικά συνεπείς καταστήματα κλειδιών-αξίας επιτυγχάνουν την επίλυση συγκρούσεων με διάφορους τρόπους.
Ο Riak χρησιμοποιεί ένα μηχανισμό ρολογιού διάνυσμα για να προβλέψει ποιο αντίγραφο είναι το πιο πρόσφατο. Άλλα καταστήματα βασικής αξίας χρησιμοποιούν απλά χρονικά σήματα για να υποδείξουν την ακίνδυνη κατάσταση. Όταν οι συγκρούσεις δεν μπορούν να επιλυθούν αυτόματα, αποστέλλονται και τα δύο αντίγραφα των δεδομένων στον πελάτη. Δεδομένα που έρχονται σε σύγκρουση με τον πελάτη μπορούν να εμφανιστούν στην ακόλουθη περίπτωση:
-
Ο πελάτης 1 γράφει στο αντίγραφο Α 'Adam: {likes: Cheese}'.
-
Το Replica A αντιγράφει τα δεδομένα στο αντίγραφο Β.
-
Ο πελάτης 1 ενημερώνει τα δεδομένα για το αντίγραφο A στο 'Adam: {αρέσει: Cheese, hates: sunlight}'.
Σε αυτό το σημείο, το αντίγραφο Α δεν έχει αρκετό χρόνο για να αντιγράψει τα πιο πρόσφατα δεδομένα στο ρεπλίκα Β.
-
Ο πελάτης 2 ενημερώνει τα δεδομένα για το αντίγραφο Β στο «Adam: {αρέσει: Σκυλιά, μισεί: καγκουρό}».
Σε αυτό το σημείο, το αντίγραφο Α και το αντίγραφο Β βρίσκονται σε διένεξη και το σύμπλεγμα βάσεων δεδομένων δεν μπορεί να επιλύσει αυτόματα τις διαφορές.
Ένας εναλλακτικός μηχανισμός είναι να χρησιμοποιείτε χρονικές σφραγίδες και να τους εμπιστεύεστε για να υποδείξετε τα πιο πρόσφατα δεδομένα. Σε μια τέτοια κατάσταση, είναι κοινή λογική για την εφαρμογή να ελέγξει ότι οι χρονικές σφραγίδες διαβάσουν την τελευταία τιμή πριν από την ενημέρωση της τιμής.
Ελέγχουν τον έλεγχο και ορίζουν τον μηχανισμό, που ουσιαστικά σημαίνει Αν η τελευταία έκδοση εξακολουθεί να είναι έκδοση 2 τότε αποθηκεύστε την έκδοση 3 '. Αυτός ο μηχανισμός αναφέρεται μερικές φορές ως ανάγνωσης αντιστοιχίας ανάγνωσης ανάγνωσης (RMU) ή ανάγνωσης αντιστοιχίας ανάγνωσης (RMW). Αυτός ο μηχανισμός είναι ο προεπιλεγμένος μηχανισμός που χρησιμοποιούν οι Oracle NoSQL, Redis, Riak και Voldemort.