Comment lister tous les keyspaces disponibles dans Cassandra?

174

Je suis novice à Cassandra et j'essaie d'implémenter une application de jouet en utilisant Cassandra. J'avais créé un espace de clés et quelques familles de colonnes dans ma base de données Cassandra mais j'ai oublié le nom de mon cluster.

J'essaie de trouver s'il y a une requête qui peut lister tous les espaces de clés disponibles.

Quelqu'un connaît une telle requête ou commande?

Shekhar
la source
9
C * 3.x : SELECT * FROM system_schema.keyspaces;
belgacea
Cette réponse est dépassée. La bonne réponse est ici, entrez la description du lien ici
Vinaya Thimmappa
Possible duplication de Y a
zurfyx

Réponses:

96

Si vous souhaitez effectuer cette opération en dehors de l' cqlshoutil, vous pouvez interroger la schema_keyspacestable dans l' systemespace de clés. Il existe également une table appelée schema_columnfamiliesqui contient des informations sur toutes les tables.

Les commandes DESCRIBEet SHOWne fonctionnent que dans cqlshet cassandra-cli.

Théo
la source
342

[cqlsh 4.1.0 | Cassandra 2.0.4 | Spécification CQL 3.1.1 | Protocole Thrift 19.39.0]

Actuellement, la commande à utiliser est:

DESCRIBE keyspaces;
Marco Ponzi
la source
10
Acceptez ceci comme réponse! Et au fait, la sortie afficherait plusieurs noms d'espaces de clés sur une seule ligne.
Eric Wang
3
Cassandra autorise également une commande abrégée comme dans: DESC keyspaces
Hari
30

C'est très simple. Donnez simplement la commande ci-dessous pour lister tous les espaces de clés.

Cqlsh> Décrire les espaces de clés;

Si vous souhaitez vérifier l'espace de clés dans le schéma système à l'aide de la requête SQL

ci-dessous est la commande.

SELECT * FROM system_schema.keyspaces;

J'espère que cela répondra à votre question ...

Vous pouvez parcourir les explications sur la compréhension et la création des espaces de clés à partir des ressources ci-dessous.

Documentation:

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

Prasu
la source
13

La show keyspacescommande Found it ... liste tous les espaces de clés. Je pense que plus tôt quand j'ai essayé cette commande, j'ai oublié de donner les derniers 's' dans les 'keyspaces'

Shekhar
la source
8
Vous pouvez utiliser la complétion par tabulation pour voir des conseils sur la façon d'exécuter une commande cassandra-cli ou cqlsh. Cela peut vous être utile si vous oubliez la syntaxe. Par exemple, tapez simplement "show" puis tabulation pour voir les commandes show valides.
Ike Walker du
3
Le point secondaire de votre réponse sera (pour certaines personnes) la partie la plus précieuse de la réponse. Les choses fonctionnent très différemment entre "cqlsh" et "cassandra-cli" (et l'affiche de la question n'indique pas celui qu'il utilise). afficher les espaces de clés; décrire (nom de l'espace de clés). REMARQUE: Si l'on utilise "cqlsh", il faut des guillemets autour des noms mixtes ou majuscules dans un espace de clés ou une famille de colonnes (OK, l'affiche ne l'a pas demandé mais c'est une erreur utilisateur courante si nouveau dans C *)
Scott Prive
5

Une fois connecté à cqlsh ou cassandra-cli. exécuter sous les commandes

  • Sur cqlsh

desc keyspaces;

ou

describe keyspaces;

ou

select * from system_schema.keyspaces;

  • Sur Cassandra-cli

show keyspaces;

LetsNoSQL
la source
4

La DESCRIBEcommande est votre ami. Vous pouvez décrire un espace de clés, lister les espaces de clés, une table ou répertorier toutes les tables dans l'espace de clés, le cluster et bien plus encore. Vous pouvez avoir une idée complète en tapant

HELP DESCRIBE dans cqlsh.

Connecté à mscluster à 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3,8 | Spécification CQL 3.4.2 | Protocole natif v4] Utilisez HELP pour obtenir de l'aide.

cqlsh> AIDE À DÉCRIRE

    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>- décrit la commande utilisée pour créer un espace de clés

cqlsh> DÉCRIRE testkeyspace;

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

  • DESCRIBE keyspaces - répertorie tous les keyspaces

cqlsh> DÉCRIRE LES ESPACES CLÉS

system_schema système testkeyspace system_auth
system_distributed system_traces

  • DESCRIBE TABLES - Liste toutes les tables de l'espace de clés actuel

cqlsh: système> DÉCRIRE LES TABLES;

available_ranges peers paxos
range_xfers lots compaction_history batchlog
local "IndexInfo" sstable_activity
size_estimates hints views_builds_in_progress peer_events
built_views

  • DESCRIBE your table nameor DESCRIBE TABLE your table name- Donne les détails du tableau

cqlsh: système> DESCRIBE TABLE batchlog

CREATE TABLE (id uuid clé primaire, blob de données, la version int, written_at timestamp) AVEC bloom_filter_fp_chance = 0,01 et la mise en cache = { 'clés': 'ALL', 'rows_per_partition': 'none'} et comment = ' DEPRECATED batchlog entrées '.... omis par souci de concision

factotum
la source
4

DESC KEYSPACES fera le travail.

De plus, si vous souhaitez décrire le schéma d'un espace de clés particulier, vous pouvez utiliser

DESC

DonnéesJanitor
la source
2
  1. connectez-vous à cqlsh
  2. desc keyspaces;
  3. sélectionnez * dans system_schema.keyspaces;
Jay Tokala
la source
2

Pour voir tous les espaces de clés sur votre serveur de base de données Apache Cassandra NoSQL, utilisez la commande:

> DESCRIBE KEYSPACES 
Suman Gangopadhyay
la source
1

desc keyspaces le fera pour vous.

Chakri Stark
la source
1

Je suggère une combinaison de grepet awk:

root@DC1-Node1:/home# nodetool tablestats | grep "Keyspace :" | awk -F ":" '{print $2}'
 system_traces
 system
 system_distributed
 system_schema
 device_tool
 system_tool
Mazhar Shaikh
la source
merci pour la réponse, mais le moyen le plus simple de voir les espaces de clés est d'utiliser la commande "DESCRIBE keyspace". Pas besoin de grep et awk.
Shekhar
0

En dehors de la méthode ci-dessus, si opscenter est installé,

  1. Accédez à l'onglet Données> vous y verrez tous les espaces de clés créés par vous et certains espaces de clés système.
  2. Vous pouvez voir toutes les tables sous des espaces de clés individuels et également le facteur de réplicateur pour l'espace de clés.

pour plus de détails, consultez le lien ci-dessous. https://docs.datastax.com/en/opscenter/6.1/opsc/online_help/opscDataModelingManagingKeyspace_t.html

Daljeet Singh
la source
0
  1. connectez-vous à cqlsh

  2. utilisez la commande ci-dessous pour obtenir les noms / la liste des espaces de clés présents

         SELECT keyspace_name FROM system_schema.keyspaces;
    
Suparna Raut
la source
1
cela dépend de la version de Cassandra ... Aussi, en quoi cette réponse est-elle différente de la précédente?
Alex Ott
-1

décrit et la commande desc donnera la liste des espaces de clés dans le cluster.Veuillez trouver ci-dessous la sortie pour plus de détails.

cqlsh> describe keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

OU

cqlsh> desc keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces
Srikant Patra
la source
en quoi votre réponse est-elle différente des autres réponses? Aussi - ces commandes ne fonctionnent que dans cqlsh, pas partout ...
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
Il y a au moins 4 réponses qui listent les mêmes commandes pour cqlsh
Alex Ott