INDEX erstellen und einfügen Cassandra
Cassandra Index erstellen
Der Befehl „Index erstellen“ erstellt einen Index für die vom Benutzer angegebene Spalte. Wenn die Daten für die Spalte, die Sie indizieren möchten, bereits vorhanden sind, Cassandra erstellt während der Ausführung der Anweisung „create index“ Indizes für die Daten.
- Nachdem Sie einen Index erstellt haben, Cassandra Indiziert neue Daten automatisch, wenn Daten eingefügt werden.
- Der Index kann nicht für den Primärschlüssel erstellt werden, da ein Primärschlüssel bereits indiziert ist.
- Indizes für Sammlungen werden in nicht unterstützt Cassandra.
- Ohne Indizierung der Spalte, Cassandra Diese Spalte kann nicht gefiltert werden, es sei denn, es handelt sich um einen Primärschlüssel.
Deshalb zum Filtern von Spalten Cassandra, Indizes müssen erstellt werden.
Syntax
Create index IndexName on KeyspaceName.TableName(ColumnName);
Beispiel
Hier ist der Schnappschuss, in dem versucht wurde, die Spalte „dept“ zu filtern, ohne den Index zu erstellen. Als Antwort wurde der Fehler zurückgegeben.
Hier ist der Schnappschuss, in dem der Index für die Abteilungsspalte erstellt wird.
Create index DeptIndex on University.Student(dept);
Hier ist der Schnappschuss, in dem die Spalte „Abteilung“ erfolgreich gefiltert wird.
select * from University.Student where dept='CS';
Cassandra Index löschen
Der Befehl „Index löschen“ löscht den angegebenen Index. Wenn bei der Indexerstellung kein Indexname angegeben wurde, lautet der Indexname TableName_ColumnName_idx.
- Wenn der Index nicht vorhanden ist, wird ein Fehler zurückgegeben, es sei denn, IF EXISTS wird verwendet, was no-op zurückgibt.
- Während der Indexerstellung müssen Sie den Schlüsselbereichsnamen mit dem Indexnamen angeben, andernfalls wird der Index aus dem aktuellen Schlüsselbereich gelöscht.
Syntax
Drop index IF EXISTS KeyspaceName.IndexName
Beispiel
Hier ist der Schnappschuss des ausgeführten Befehls „Drop index“, der den Index DeptIndex löscht.
drop index IF EXISTS University.DeptIndex;
Nach erfolgreicher Ausführung des Befehls wird DeptIndex aus dem Schlüsselraum gelöscht. Jetzt können Daten nicht nach der Spaltenabteilung gefiltert werden.