Πλήκτρο σε Cassandra: Παράδειγμα δημιουργίας, τροποποίησης και απόρριψης

⚡ Έξυπνη Σύνοψη

Πλήκτρο σε Cassandra είναι το εξωτερικό δοχείο δεδομένων, ισοδύναμο με μια βάση δεδομένων σε ένα σχεσιακό σύστημα, και καθορίζει τον τρόπο με τον οποίο αναπαράγεται κάθε πίνακας μέσα σε αυτό. Αυτή η σελίδα καλύπτει τη δημιουργία, την τροποποίηση και την απόρριψηping ένα keyspace, καθώς και οι ιδιότητές του και τα keyspaces του συστήματος.

  • 🗄️ Βασικός Ορισμός: Ένας χώρος κλειδιού περιέχει πίνακες, ευρετήρια και τύπους που ορίζονται από τον χρήστη και αποθηκεύει τις ρυθμίσεις αναπαραγωγής που όλα κληρονομούν.
  • 🧭 Επιλογή Στρατηγικής: Το SimpleStrategy είναι κατάλληλο για ένα μόνο κέντρο δεδομένων. Το NetworkTopologyStrategy ορίζει έναν συντελεστή αναπαραγωγής ανά κέντρο δεδομένων.
  • 🔢 Συντελεστής αναπαραγωγής: Η τυπική ρύθμιση παραγωγής είναι τρία αντίγραφα, επειδή επιβιώνει μετά από μία αποτυχία κόμβου στο QUORUM.
  • Αλλαγή ορίων: Η στρατηγική, ο συντελεστής αναπαραγωγής και οι διαρκείς εγγραφές μπορούν να αλλάξουν, ενώ το όνομα του χώρου κλειδιών όχι.
  • 💾 Ανθεκτικές εγγραφές: Αν ορίσετε αυτήν την τιμή σε false, παραλείπεται το αρχείο καταγραφής επιβολής, ανταλλάσσοντας την ασφάλεια από σφάλματα με την ταχύτητα εγγραφής.
  • 🗑️ Συμπεριφορά πτώσης: Πτώσηping αφαιρεί κάθε πίνακα και ευρετήριο, αφού Cassandra λαμβάνει ένα αυτόματο στιγμιότυπο.

Cassandra Keyspace Δημιουργία Αλλαγή Απόθεση

Σε τι είναι το Keyspace Cassandra?

Ένα Keyspace μέσα Cassandra είναι ένα δοχείο δεδομένων, παρόμοιο με μια βάση δεδομένων στο RDBMS (Συστήματα Διαχείρισης Σχεσιακών Βάσεων Δεδομένων). Cassandra Το Keyspace καθορίζει τον τρόπο με τον οποίο τα δεδομένα αναπαράγονται στους κόμβους.

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

Πώς να δημιουργήσετε Keyspace σε Cassandra

Ο χώρος κλειδιών είναι ένα αντικείμενο που κρατά τις οικογένειες στηλών, τύπους που ορίζονται από το χρήστη. Σε Cassandra, το Keyspace είναι παρόμοιο με RDBMS Βάση δεδομένων. Το Keyspace διατηρεί οικογένειες στηλών, ευρετήρια, τύπους που καθορίζονται από το χρήστη, επίγνωση του κέντρου δεδομένων, στρατηγική που χρησιμοποιείται στον χώρο κλειδιών, παράγοντα αναπαραγωγής κ.λπ.

Εντολή "Δημιουργία Keyspace" χρησιμοποιείται για τη δημιουργία keyspace στο Cassandra.

Σύνταξη

CREATE KEYSPACE KeyspaceName WITH replication = {
    'class': 'StrategyName',
    'replication_factor': 3
};

Διάφορα εξαρτήματα του Cassandra keyspace

  • Στρατηγική: Κατά τη δήλωση του ονόματος στρατηγικής σε Cassandra. Υπάρχουν δύο είδη στρατηγικών που δηλώνονται στο Cassandra Σύνταξη.
  1. Απλή Στρατηγική: Η απλή στρατηγική χρησιμοποιείται όταν έχετε μόνο ένα κέντρο δεδομένων. Σε αυτή τη στρατηγική, το πρώτο αντίγραφο τοποθετείται στον κόμβο που έχει επιλεγεί από τον καταμεριστή. Οι υπόλοιποι κόμβοι τοποθετούνται δεξιόστροφα στον δακτύλιο χωρίς να λαμβάνεται υπόψη η θέση του ραφιού ή του κόμβου.
  2. Στρατηγική Τοπολογίας Δικτύου: Η στρατηγική τοπολογίας δικτύου χρησιμοποιείται όταν έχετε περισσότερα από ένα κέντρα δεδομένων. Σε αυτήν τη στρατηγική, πρέπει να παρέχετε τον παράγοντα αναπαραγωγής για κάθε κέντρο δεδομένων ξεχωριστά. Η στρατηγική τοπολογίας δικτύου τοποθετεί αντίγραφα σε κόμβους προς τη φορά των δεικτών του ρολογιού στο ίδιο κέντρο δεδομένων. Αυτή η στρατηγική επιχειρεί να τοποθετήσει αντίγραφα σε διαφορετικά rack.
  • Συντελεστής αναπαραγωγής: Ο παράγοντας αναπαραγωγής είναι ο αριθμός των αντιγράφων δεδομένων που τοποθετούνται σε διαφορετικούς κόμβους. Για καμία αποτυχία, το 3 είναι καλός παράγοντας αναπαραγωγής. Περισσότεροι από δύο συντελεστές αναπαραγωγής διασφαλίζουν ότι δεν υπάρχει ένα μόνο σημείο αστοχίας. Μερικές φορές, ο διακομιστής μπορεί να είναι εκτός λειτουργίας ή να προκύψει πρόβλημα δικτύου και, στη συνέχεια, άλλα αντίγραφα παρέχουν υπηρεσία χωρίς αποτυχία.
  • Παράδειγμα: Εδώ είναι το στιγμιότυπο της εκτελεσθείσας εντολής "Create Keyspace" που θα δημιουργήσει keyspace στο Cassandra.

Δημιουργία Keyspace στο Cassandra

CREATE KEYSPACE University WITH replication = {
    'class': 'SimpleStrategy',
    'replication_factor': 3
};

Μετά την επιτυχή εκτέλεση της εντολής "Create Keyspace", το Keyspace University θα δημιουργηθεί στο Cassandra με στρατηγική «SimpleStrategy» και συντελεστή αναπαραγωγής 3. Σημειώστε ότι το όνομα της στρατηγικής πρέπει να περιλαμβάνεται σε εισαγωγικά. Μια τιμή χωρίς εισαγωγικά απορρίπτεται ως συντακτικό σφάλμα.

Alter Keyspace Cassandra

Η εντολή "Alter Keyspace" αλλάζει τον παράγοντα αναπαραγωγής, το όνομα στρατηγικής και τις ιδιότητες ανθεκτικής εγγραφής στον δημιουργημένο χώρο κλειδιών στο Cassandra.

Σύνταξη

ALTER KEYSPACE KeyspaceName WITH replication = {
    'class': 'StrategyName',
    'replication_factor': 3
}
AND DURABLE_WRITES = true;

Βασικές πτυχές κατά την αλλαγή του Keyspace Cassandra

  • Όνομα Keyspace: Δεν είναι δυνατή η αλλαγή του ονόματος Keyspace Cassandra.
  • Όνομα στρατηγικής: Το όνομα στρατηγικής μπορεί να τροποποιηθεί καθορίζοντας νέο όνομα στρατηγικής.
  • Συντελεστής αναπαραγωγής: Ο συντελεστής αναπαραγωγής μπορεί να τροποποιηθεί καθορίζοντας νέο συντελεστή αναπαραγωγής.
  • DURABLE_WRITES: Η τιμή DURABLE_WRITES μπορεί να τροποποιηθεί καθορίζοντας την τιμή της σε true ή false. Από προεπιλογή, είναι true. Εάν οριστεί σε false, δεν θα εγγράφονται ενημερώσεις στο αρχείο καταγραφής υποβολής και αντίστροφα.
  • Εκτέλεση: Εδώ είναι το στιγμιότυπο της εκτελεσθείσας εντολής "Alter Keyspace" που αλλάζει τη στρατηγική χώρου κλειδιών από "SimpleStrategy" σε "NetworkTopologyStrategy" και τον παράγοντα αναπαραγωγής από 3 σε 1 για το DataCenter1.

Alter Keyspace Cassandra

ALTER KEYSPACE University WITH replication = {
    'class': 'NetworkTopologyStrategy',
    'DataCenter1': 1
};

Μετά την επιτυχή εκτέλεση της εντολής «Alter Keyspace», το όνομα της στρατηγικής θα αλλάξει από «SimpleStrategy» σε «NetworkTopologyStrategy» και ο συντελεστής αναπαραγωγής θα αλλάξει από 3 σε 1 για το «DataCenter1».

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

Cassandra Απόθεση Keyspace

Εντολή 'Απόθεση Keyspace' ρίχνει τον χώρο κλειδιών συμπεριλαμβανομένων όλων των δεδομένων, των οικογενειών στηλών, των τύπων και των ευρετηρίων που ορίζονται από τον χρήστη CassandraΠριν από την πτώσηping το keyspace, Cassandra λαμβάνει ένα στιγμιότυπο του χώρου πλήκτρων. Εάν ο χώρος πλήκτρων δεν υπάρχει στο Cassandra, Cassandra θα επιστρέψει ένα σφάλμα εκτός εάν χρησιμοποιείται το IF EXISTS.

Σύνταξη

DROP KEYSPACE IF EXISTS KeyspaceName;

Παράδειγμα

Εδώ είναι το στιγμιότυπο της εκτελεσθείσας εντολής 'Drop Keyspace' που θα αποβάλει το keyspace University.

Cassandra Απόθεση Keyspace

DROP KEYSPACE University;

Μετά την επιτυχή εκτέλεση της εντολής "Drop keyspace University", το keyspace University θα διαγραφεί από Cassandra με όλα τα δεδομένα και το σχήμα.

Εδώ είναι το στιγμιότυπο όπου το σφάλμα επιστρέφεται όταν προσπαθούμε να αποκτήσουμε πρόσβαση σε χώρο κλειδιών που δεν υπάρχει.

Cassandra Απόθεση Keyspace

Σημείωση: Δεν υπάρχει διαφορά στο χώρο πλήκτρων απόθεσης και διαγραφής. Το Drop keyspace είναι ίσο με το delete keyspace.

Ιδιότητες πλήκτρων και πλήκτρα συστήματος

Πέρα από τη δημιουργία και την απόθεσηping, τρεις εντολές καλύπτουν σχεδόν όλη την καθημερινή εργασία πλήκτρων στο cqlsh.

DESCRIBE KEYSPACES;
DESCRIBE KEYSPACE University;
USE University;

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

Παράλληλα με τους χώρους πλήκτρων χρήστη, Cassandra διαθέτει αρκετά δικά του. Εμφανίζονται στην έξοδο DESCRIBE KEYSPACES και αξίζει να τα αναγνωρίζετε παρά να τα διαγράφετε.

  • Σύστημα: Κατάσταση τοπικού κόμβου, συμπεριλαμβανομένων των εύρων token του και των ομότιμων κόμβων για τους οποίους γνωρίζει.
  • σύστημα_σχήματος: Οι ορισμοί κάθε keyspace, πίνακα, στήλης και ευρετηρίου στο σύμπλεγμα.
  • system_auth: Ρόλοι, δικαιώματα και διαπιστευτήρια όταν είναι ενεργοποιημένος ο έλεγχος ταυτότητας.
  • σύστημα_κατανεμημένο: Ιστορικό επισκευών και άλλα λογιστικά στοιχεία σε ολόκληρο το σύμπλεγμαping.
  • Σύστημα_tracείναι: Απορία tracκαταγράφηκαν όταν tracείναι ενεργοποιημένη.

Δύο από αυτά αξίζουν προσοχής στην παραγωγή. system_auth Το keyspace δημιουργείται με συντελεστή αναπαραγωγής ένα από προεπιλογή. Εάν αυτός ο κόμβος χαθεί, κανείς δεν μπορεί να συνδεθεί, επομένως θα πρέπει να αυξηθεί ώστε να ταιριάζει με το σύμπλεγμα. σύστημα_σχήματος Το keyspace εξηγεί γιατί οι αλλαγές στο σχήμα πρέπει να εφαρμόζονται μία κάθε φορά, καθώς οι ταυτόχρονες αλλαγές μπορούν να παράγουν αντικρουόμενες εκδόσεις σχήματος σε όλους τους κόμβους.

Συνηθισμένα σφάλματα και διορθώσεις πλήκτρων

Οι περισσότερες βλάβες στο keyspace παράγουν ένα σύντομο, αναγνωρίσιμο μήνυμα.

Λάθος Αιτία και διόρθωση
Άγνωστο πλήκτρο Δεν έχει επιλεγεί κενό πλήκτρων. Εκτελέστε την εντολή USE KeyspaceName ή προσθέστε τον πίνακα ως πρόθεμα Keyspace.Table.
Σφάλμα σύνταξης στο 'SimpleStrategy' Το όνομα της στρατηγικής δεν περιλαμβάνεται σε εισαγωγικά. Γράψτε 'class': 'SimpleStrategy' με εισαγωγικά.
Μη αναγνωρισμένη επιλογή στρατηγικής {replication_factor} Το replication_factor χρησιμοποιήθηκε με το NetworkTopologyStrategy. Αυτή η στρατηγική λαμβάνει έναν παράγοντα ανά όνομα κέντρου δεδομένων.
Δεν είναι δυνατή η προσθήκη υπάρχοντος keyspace Ο χώρος κλειδιού υπάρχει ήδη. Προσθέστε το IF NOT EXISTS ή διαγράψτε πρώτα τον παλιό.
Λείπουν δεδομένα μετά την αύξηση του συντελεστή αναπαραγωγής Αναμενόταν. Εκτελέστε την επιδιόρθωση nodetool στο keyspace, ώστε να συμπληρωθούν τα νέα αντίγραφα.

Μόλις δημιουργηθεί ένας χώρος κλειδιών, το επόμενο βήμα είναι ο ορισμός του χώρου αποθήκευσης μέσα σε αυτόν, ο οποίος καλύπτεται από το Cassandra τραπέζι tutorial.

Συχνές Ερωτήσεις

Διατηρήστε τον αριθμό μικρό, συνήθως ένα ανά εφαρμογή. Κάθε χώρος κλειδιών και πίνακας προσθέτει μεταδεδομένα σχήματος και επιβάρυνση μνήμης σε κάθε κόμβο, επομένως εκατοντάδες χώροι κλειδιών υποβαθμίζουν την απόδοση του συμπλέγματος.

Ναι, εάν είναι ενεργοποιημένη η αυτόματη λήψη στιγμιότυπου. Cassandra γράφει ένα στιγμιότυπο πριν από την απόθεσηping, έτσι ώστε τα SSTables να μπορούν να αποκατασταθούν με το sstableloader μετά την αναδημιουργία του σχήματος.

Μόνο για δεδομένα που μπορούν να αναγεννηθούν, όπως προσωρινές μνήμες ή παράγωγες αναλύσεις. Παράλειψηping Το αρχείο καταγραφής commit σημαίνει ότι οι εγγραφές που βρίσκονται ακόμα στο memtable χάνονται εάν ο κόμβος σταματήσει απροσδόκητα.

Δεδομένης της διάταξης του κέντρου δεδομένων και του στόχου διαθεσιμότητας, η Τεχνητή Νοημοσύνη μπορεί να προτείνει μια στρατηγική και συντελεστές ποσοστού κέντρου. Επιβεβαιώστε τα ονόματα των κέντρων δεδομένων σε σχέση με την κατάσταση του nodetool, επειδή ένα τυπογραφικό λάθος υποαναπαράγεται σιωπηλά.

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

Συνοψίστε αυτήν την ανάρτηση με: