Schlüsselraum in CassandraBeispiel erstellen, ändern und löschen
⚡ Intelligente Zusammenfassung
Schlüsselraum in Cassandra Die Tabelle ist der äußerste Datencontainer, vergleichbar mit einer Datenbank in einem relationalen System, und legt fest, wie jede darin enthaltene Tabelle repliziert wird. Diese Seite behandelt das Erstellen, Ändern und Löschen von Tabellen.ping Ein Keyspace, zuzüglich seiner Eigenschaften und der System-Keyspaces.

Was ist Keyspace? Cassandra?
Ein Schlüsselraum in Cassandra ist ein Datencontainer, ähnlich einer Datenbank in RDBMS (Relational Database Management Systems). Cassandra Keyspace bestimmt, wie Daten auf Knoten repliziert werden.
Da die Replikation auf Ebene des Keyspace und nicht auf Ebene einzelner Tabellen festgelegt wird, erbt jede darin erstellte Tabelle dieselbe Strategie und denselben Replikationsfaktor. Daher ist der Keyspace die erste Entscheidung in jedem Schema.
So erstellen Sie einen Keyspace in Cassandra
Ein Schlüsselraum ist ein Objekt, das die Spaltenfamilien und benutzerdefinierten Typen enthält. In Cassandra, Keyspace ähnelt RDBMS Datenbank. Keyspace enthält Spaltenfamilien, Indizes, benutzerdefinierte Typen, Rechenzentrumsbewusstsein, im Keyspace verwendete Strategie, Replikationsfaktor usw.
Befehl "Schlüsselraum erstellen„wird verwendet, um einen Schlüsselraum zu erstellen Cassandra.
Syntax
CREATE KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 };
Verschiedene Komponenten von Cassandra Schlüsselraum
- Strategie: Beim Deklarieren des Strategienamens in Cassandra. Es gibt zwei Arten von Strategien, die in deklariert sind Cassandra Syntax.
- Einfache Strategie: Die einfache Strategie wird verwendet, wenn Sie nur ein Rechenzentrum haben. Bei dieser Strategie wird die erste Replik auf dem vom Partitionierer ausgewählten Knoten platziert. Die verbleibenden Knoten werden im Uhrzeigersinn im Ring platziert, ohne den Rack- oder Knotenstandort zu berücksichtigen.
- Netzwerktopologiestrategie: Die Netzwerktopologiestrategie wird verwendet, wenn Sie über mehr als ein Rechenzentrum verfügen. Bei dieser Strategie müssen Sie für jedes Rechenzentrum separat einen Replikationsfaktor angeben. Die Netzwerktopologiestrategie platziert Replikate in Knoten im Uhrzeigersinn im selben Rechenzentrum. Diese Strategie versucht, Replikate in verschiedenen Racks zu platzieren.
- Replikationsfaktor: Der Replikationsfaktor ist die Anzahl der Replikate von Daten, die auf verschiedenen Knoten platziert werden. Für keinen Fehler ist 3 ein guter Replikationsfaktor. Mehr als zwei Replikationsfaktoren stellen sicher, dass es keinen Single Point of Failure gibt. Manchmal ist der Server ausgefallen oder es kann ein Netzwerkproblem auftreten, dann stellen andere Replikate den Dienst ohne Fehler bereit.
- Ejemplo: Hier ist der Schnappschuss des ausgeführten Befehls „Create Keyspace“, der den Keyspace erstellt Cassandra.
CREATE KEYSPACE University WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': 3 };
Nach erfolgreicher Ausführung des Befehls „Create Keyspace“ wird die Keyspace University erstellt Cassandra mit der Strategie „SimpleStrategy“ und dem Replikationsfaktor 3. Beachten Sie, dass der Strategiename in Anführungszeichen gesetzt werden muss; ein Wert ohne Anführungszeichen wird als Syntaxfehler abgelehnt.
Schlüsselraum ändern Cassandra
Der Befehl „Alter Keyspace“ ändert den Replikationsfaktor, den Strategienamen und die Eigenschaften für dauerhafte Schreibvorgänge im erstellten Schlüsselraum Cassandra.
Syntax
ALTER KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 } AND DURABLE_WRITES = true;
Wichtige Aspekte beim Ändern des Keyspace in Cassandra
- Schlüsselraumname: Der Schlüsselraumname kann nicht geändert werden Cassandra.
- Strategiename: Der Strategiename kann durch Angabe eines neuen Strategienamens geändert werden.
- Replikationsfaktor: Der Replikationsfaktor kann durch Angabe eines neuen Replikationsfaktors geändert werden.
- DURABLE_WRITES: Der Wert von DURABLE_WRITES kann durch Angabe von „true“ oder „false“ geändert werden. Standardmäßig ist er auf „true“ gesetzt. Bei „false“ werden keine Aktualisierungen in das Commit-Log geschrieben und umgekehrt.
- Ausführung: Hier ist die Momentaufnahme des ausgeführten Befehls „Alter Keyspace“, der die Keyspace-Strategie von „SimpleStrategy“ in „NetworkTopologyStrategy“ und den Replikationsfaktor von 3 auf 1 für DataCenter1 ändert.
ALTER KEYSPACE University WITH replication = { 'class': 'NetworkTopologyStrategy', 'DataCenter1': 1 };
Nach erfolgreicher Ausführung des Befehls „Alter Keyspace“ wird der Strategiename für „DataCenter1“ von „SimpleStrategy“ in „NetworkTopologyStrategy“ geändert und der Replikationsfaktor von 3 auf 1.
Wichtig: Das Erhöhen des Replikationsfaktors kopiert nicht automatisch vorhandene Daten. nodetool repair Anschließend muss der betroffene Schlüsselraum aktualisiert werden, andernfalls bleiben die neuen Replikate leer, bis eine Lesereparatur erfolgt, die jede Zeile bearbeitet.
Cassandra Schlüsselraum löschen
Befehl 'Schlüsselraum löschen' löscht den Schlüsselraum einschließlich aller Daten, Spaltenfamilien, benutzerdefinierten Typen und Indizes CassandraVor dem Fallenlassenping der Tastenraum, Cassandra macht einen Schnappschuss des Schlüsselraums. Wenn kein Schlüsselraum vorhanden ist Cassandra, Cassandra gibt einen Fehler zurück, es sei denn, IF EXISTS wird verwendet.
Syntax
DROP KEYSPACE IF EXISTS KeyspaceName;
Beispiel
Hier ist der Schnappschuss des ausgeführten Befehls „Drop Keyspace“, der den Keyspace University löscht.
DROP KEYSPACE University;
Nach erfolgreicher Ausführung des Befehls „Drop keyspace University“ wird keyspace University gelöscht Cassandra mit allen Daten und Schema.
Hier ist der Snapshot, in dem der Fehler zurückgegeben wird, wenn versucht wird, auf einen nicht vorhandenen Schlüsselraum zuzugreifen.
Hinweis: Es gibt keinen Unterschied zwischen „Drop Keyspace“ und „Delete Keyspace“. Schlüsselraum löschen ist gleichbedeutend mit Schlüsselraum löschen.
Keyspace-Eigenschaften und System-Keyspaces
Über das Erstellen und Ablegen hinauspingDrei Befehle decken nahezu alle alltäglichen Arbeiten mit dem Keyspace in cqlsh ab.
DESCRIBE KEYSPACES; DESCRIBE KEYSPACE University; USE University;
Die erste Liste zeigt alle Keyspaces im Cluster an, die zweite gibt das vollständige Schema eines Keyspace einschließlich seiner Tabellen aus, und die dritte legt den aktuellen Keyspace fest, sodass Tabellennamen kein Präfix mehr benötigen.
Neben Benutzer-Keyspaces, Cassandra Es gibt mehrere eigene Schiffe. Diese erscheinen in der Ausgabe von DESCRIBE KEYSPACES und sollten beachtet statt gelöscht werden.
- System: Lokaler Knotenstatus, einschließlich seiner Tokenbereiche und der ihm bekannten Peers.
- system_schema: Die Definitionen aller Keyspaces, Tabellen, Spalten und Indizes im Cluster.
- system_auth: Rollen, Berechtigungen und Anmeldeinformationen, wenn die Authentifizierung aktiviert ist.
- system_distributed: Reparaturhistorie und sonstige clusterweite Buchhaltungping.
- System_tracist: Abfrage traces erfasst, als tracing ist eingeschaltet.
Zwei davon verdienen Beachtung in der Produktion. Systemauthentifizierung Der Keyspace wird standardmäßig mit einem Replikationsfaktor von eins erstellt; wenn dieser Knoten ausfällt, kann sich niemand mehr anmelden, daher sollte der Replikationsfaktor an den Cluster angepasst werden. system_schema Der Keyspace erklärt, warum Schemaänderungen einzeln angewendet werden müssen, da gleichzeitige Änderungen zu widersprüchlichen Schemaversionen auf den verschiedenen Knoten führen können.
Häufige Keyspace-Fehler und deren Behebung
Die meisten Keyspace-Fehler erzeugen eine kurze, erkennbare Fehlermeldung.
| Fehler | Ursache und Lösung |
|---|---|
| Unbekannter Schlüsselraum | Es ist kein Keyspace ausgewählt. Führen Sie USE KeyspaceName aus oder geben Sie der Tabelle das Präfix Keyspace.Table an. |
| Syntaxfehler bei 'SimpleStrategy' | Der Strategiename steht nicht in Anführungszeichen. Schreiben Sie 'class': 'SimpleStrategy' mit Anführungszeichen. |
| Nicht erkannte Strategieoption {replication_factor} | Der Replikationsfaktor wurde in Verbindung mit der Netzwerktopologiestrategie verwendet. Diese Strategie verwendet stattdessen einen Faktor pro Rechenzentrumsnamen. |
| Vorhandenen Schlüsselraum kann nicht hinzugefügt werden | Der Schlüsselraum existiert bereits. Fügen Sie IF NOT EXISTS hinzu oder löschen Sie zuerst den alten. |
| Daten fehlen nach Erhöhung des Replikationsfaktors | Erwartet. Führen Sie nodetool repair für den Keyspace aus, damit die neuen Replikate erstellt werden. |
Sobald ein Schlüsselraum existiert, besteht der nächste Schritt darin, den darin enthaltenen Speicher zu definieren, was im Abschnitt über … behandelt wird. Cassandra Tabelle Tutorial.




