Wie liste ich alle verfügbaren Keyspaces in Cassandra auf?


174

Ich bin ein Neuling in Cassandra und versuche, eine Spielzeuganwendung mit Cassandra zu implementieren. Ich hatte einen Schlüsselbereich und einige Spaltenfamilien in meiner Cassandra-Datenbank erstellt, aber den Namen meines Clusters vergessen.

Ich versuche herauszufinden, ob es eine Abfrage gibt, die alle verfügbaren Schlüsselbereiche auflisten kann.

Kennt jemand eine solche Abfrage oder einen solchen Befehl?


9
C * 3.x : SELECT * FROM system_schema.keyspaces;
Belgacea

Diese Antwort ist veraltet. Die richtige Antwort finden Sie hier.
Geben Sie

Antworten:


96

Wenn Sie dies außerhalb des cqlshTools tun möchten, können Sie die schema_keyspacesTabelle im systemSchlüsselbereich abfragen. Es gibt auch eine Tabelle mit schema_columnfamiliesInformationen zu allen Tabellen.

Die Befehle DESCRIBEund SHOWfunktionieren nur in cqlshund cassandra-cli.


340

[cqlsh 4.1.0 | Cassandra 2.0.4 | CQL-Spezifikation 3.1.1 | Sparsamkeitsprotokoll 19.39.0]

Derzeit lautet der zu verwendende Befehl:

DESCRIBE keyspaces;

10
Akzeptiere dies als Antwort! Übrigens würde die Ausgabe mehrere Schlüsselraumnamen in einer Zeile drucken.
Eric Wang

3
Cassandra erlaubt auch einen Kurzbefehl wie in: DESC Keyspaces
Hari

30

Es ist sehr einfach. Geben Sie einfach den folgenden Befehl ein, um alle Schlüsselbereiche aufzulisten.

Cqlsh> Schlüsselbereiche beschreiben;

Wenn Sie den Schlüsselbereich im Systemschema mithilfe der SQL-Abfrage überprüfen möchten

unten ist der Befehl.

SELECT * FROM system_schema.keyspaces;

Hoffe das wird deine Frage beantworten ...

Sie können die Erläuterungen zum Verständnis und Erstellen der Schlüsselbereiche anhand der folgenden Ressourcen durchgehen.

Dokumentation:

https://docs.datastax.com/de/cql/3.1/cql/cql_reference/create_keyspace_r.html https://www.i2tutorials.com/cassandra-tutorial/cassandra-create-keyspace/


13

Found it ... show keyspacesBefehl listet alle Keyspaces auf. Ich denke, als ich diesen Befehl ausprobiert habe, habe ich vergessen, die letzten 's' in 'keyspaces' anzugeben.


8
Sie können die Tab-Vervollständigung verwenden, um Hinweise zum Ausführen eines Befehls cassandra-cli oder cqlsh anzuzeigen. Das kann hilfreich sein, wenn Sie die Syntax vergessen. Geben Sie beispielsweise einfach "show" und dann die Registerkarte ein, um die gültigen show-Befehle anzuzeigen.
Ike Walker

3
Der sekundäre Punkt in Ihrer Antwort wird (für einige Leute) der wertvollste Teil der Antwort sein. Zwischen "cqlsh" und "cassandra-cli" sieht es ganz anders aus (und das Fragenplakat zeigt nicht an, welches er verwendet). Schlüsselbereiche anzeigen; beschreiben (Schlüsselraumname). HINWEIS: Wenn "cqlsh" verwendet wird, sind Anführungszeichen für gemischte oder Großbuchstaben in einem Schlüsselbereich oder einer Spaltenfamilie erforderlich (OK, das Poster hat dies nicht gefragt, aber es ist ein häufiger Benutzerfehler, wenn es neu in C * ist)
Scott Prive

5

Einmal bei cqlsh oder cassandra-cli angemeldet. Führen Sie die folgenden Befehle aus

  • Auf cqlsh

desc keyspaces;

oder

describe keyspaces;

oder

select * from system_schema.keyspaces;

  • Auf Cassandra-Cli

show keyspaces;


4

Der DESCRIBEBefehl ist dein Freund. Sie können einen Schlüsselbereich beschreiben, Schlüsselbereiche auflisten, eine Tabelle oder alle Tabellen im Schlüsselbereich, im Cluster und vielem mehr auflisten. Sie können die vollständige Idee durch Eingabe erhalten

HELP DESCRIBE in cqlsh.

Verbunden mit mscluster um 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.8 | CQL-Spezifikation 3.4.2 | Natives Protokoll v4] Verwenden Sie HILFE, um Hilfe zu erhalten.

cqlsh> HILFE BESCHREIBEN

    DESCRIBE [cqlsh only]

    (DESC may be used as a shorthand.)

      Outputs information about the connected Cassandra cluster, or about
      the data objects stored in the cluster. Use in one of the following ways:...<omitted for brevity>
  • DESCRIBE <your key space name>- beschreibt den Befehl zum Erstellen des Schlüsselraums

cqlsh> DESCRIBE testkeyspace;

CREATE KEYSPACE testkeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'} AND durable_writes = true;

  • Schlüsselbereiche BESCHREIBEN - listet alle Schlüsselbereiche auf

cqlsh> TASTATUREN BESCHREIBEN

system_schema system testkeyspace system_auth
system_distributed system_traces

  • TABELLEN BESCHREIBEN - Listet alle Tabellen im aktuellen Schlüsselbereich auf

cqlsh: system> TABELLEN BESCHREIBEN;

available_ranges Peers paxos range_xfers
batches compaction_history batchlog
local "IndexInfo" sstable_activity
size_estimates Hinweise views_builds_in_progress peer_events
built_views

  • DESCRIBE your table nameoder DESCRIBE TABLE your table name- Gibt die Tabellendetails an

cqlsh: system> DESCRIBE TABLE batchlog

CREATE TABLE system.batchlog (ID uuid PRIMARY KEY, Daten-Blob, Version int, Zeitstempel geschrieben_at) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = ' DEPRECATED batchlog Einträge '.... der Kürze halber weggelassen


4

DESC KEYSPACES erledigt den Job.

Wenn Sie das Schema eines bestimmten Schlüsselbereichs beschreiben möchten, können Sie es auch verwenden

DESC


2
  1. Login bei cqlsh
  2. desc Keyspaces;
  3. Wählen Sie * aus system_schema.keyspaces.

2

Verwenden Sie den folgenden Befehl, um alle Schlüsselbereiche auf Ihrem Apache Cassandra NoSQL-Datenbankserver anzuzeigen:

> DESCRIBE KEYSPACES 



1

Ich schlage eine Kombination von grepund vor awk:

root@DC1-Node1:/home# nodetool tablestats | grep "Keyspace :" | awk -F ":" '{print $2}'
 system_traces
 system
 system_distributed
 system_schema
 device_tool
 system_tool

Vielen Dank für die Antwort. Die einfachste Möglichkeit, Keyspaces anzuzeigen, ist die Verwendung des Befehls "DESCRIBE keyspace". Keine Notwendigkeit zu grep und awk.
Shekhar

0

Abgesehen von der oben genannten Methode, wenn Sie opscenter installiert haben,

  1. Gehen Sie zur Registerkarte Daten> dort sehen Sie alle von Ihnen erstellten Schlüsselbereiche und einige Systemschlüsselbereiche.
  2. Sie können alle Tabellen unter einzelnen Schlüsselbereichen sowie den Replikatorfaktor für den Schlüsselbereich anzeigen.

Weitere Details finden Sie unter dem folgenden Link. https://docs.datastax.com/de/opscenter/6.1/opsc/online_help/opscDataModelingManagingKeyspace_t.html


0
  1. Login bei cqlsh

  2. Verwenden Sie den folgenden Befehl, um Namen / Liste der vorhandenen Schlüsselbereiche abzurufen

         SELECT keyspace_name FROM system_schema.keyspaces;
    

1
es hängt von der Version von Cassandra ab ... Auch wie unterscheidet sich diese Antwort von der vorherigen?
Alex Ott

-1

Der Befehl description and desc gibt eine Liste der Schlüsselbereiche im Cluster an. Weitere Informationen finden Sie in der folgenden Ausgabe.

cqlsh> describe keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

ODER

cqlsh> desc keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

Wie unterscheidet sich Ihre Antwort von anderen Antworten? Auch - diese Befehle funktionieren nur in cqlsh, nicht überall ...
Alex Ott

cassandra @ node1: ~ $ nodetool tablestats | grep "Keyspace:" Keyspace: reaper_db Keyspace: system_traces Keyspace: system Keyspace: system_distributed Keyspace: system_schema Keyspace: system_auth cassandra @ node1: ~ $
Srikant Patra

Es gibt mindestens 4 Antworten, die die gleichen Befehle für cqlsh
Alex Ott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.