¿Cómo enumerar todos los espacios de teclas disponibles en Cassandra?

174

Soy novato en Cassandra y estoy tratando de implementar una aplicación de juguete con Cassandra. Había creado un espacio de teclas y pocas familias de columnas en mi Cassandra DB pero olvidé el nombre de mi clúster.

Estoy tratando de encontrar si hay alguna consulta que pueda enumerar todos los espacios de teclas disponibles.

¿Alguien sabe tal consulta o comando?

Shekhar
fuente
9
C * 3.x : SELECCIONAR * DESDE system_schema.keyspaces;
belgacea
Esta respuesta está desactualizada. La respuesta correcta está aquí ingrese la descripción del enlace aquí
Vinaya Thimmappa

Respuestas:

96

Si desea hacer esto fuera de la cqlshherramienta, puede consultar la schema_keyspacestabla en el systemespacio de teclas. También hay una tabla llamada schema_columnfamiliesque contiene información sobre todas las tablas.

Los comandos DESCRIBEy SHOWsolo funcionan en cqlshy cassandra-cli.

Theo
fuente
342

[cqlsh 4.1.0 | Cassandra 2.0.4 | Especificación CQL 3.1.1 | Protocolo de ahorro 19.39.0]

Actualmente, el comando a usar es:

DESCRIBE keyspaces;
Marco Ponzi
fuente
10
¡Acepta esto como respuesta! Y, por cierto, la salida imprimirá múltiples nombres de espacios de teclas en una línea.
Eric Wang
3
Cassandra también permite un comando de mano corta como en: espacios de teclas DESC
Hari
30

Es muy simple. Simplemente dé el siguiente comando para enumerar todos los espacios de teclas.

Cqlsh> Describir espacios de teclas;

Si desea verificar el espacio de claves en el esquema del sistema utilizando la consulta SQL

a continuación se muestra el comando.

SELECT * FROM system_schema.keyspaces;

Espero que esto responda tu pregunta ...

Puede leer la explicación sobre cómo comprender y crear los espacios de teclas a partir de los recursos a continuación.

Documentación:

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
fuente
13

Lo encontré ... el show keyspacescomando enumera todos los espacios de teclas. Creo que antes, cuando probé este comando, olvidé dar la última 's' en 'espacios de teclas'

Shekhar
fuente
8
Puede usar la finalización de tabulación para ver sugerencias sobre cómo completar un comando cassandra-cli o cqlsh. Eso puede ser útil si olvida la sintaxis. Por ejemplo, simplemente escriba "show" y luego la pestaña para ver los comandos show válidos.
Ike Walker
3
El punto secundario en su respuesta será (para algunas personas) la parte más valiosa de la respuesta. Las cosas funcionan de manera muy diferente entre "cqlsh" y "cassandra-cli" (y el póster de la pregunta no indica cuál está usando). mostrar espacios de teclas; describe (nombre del espacio de teclas). NOTA: Si uno está usando "cqlsh", requiere comillas alrededor de cualquier nombre mixto o mayúscula en un espacio de teclas o una familia de columnas (OK, el póster no preguntó esto, pero es un error común del usuario si es nuevo en C *)
Scott Prive
5

Una vez que haya iniciado sesión en cqlsh o cassandra-cli. ejecutar debajo de los comandos

  • En cqlsh

desc keyspaces;

o

describe keyspaces;

o

select * from system_schema.keyspaces;

  • En cassandra-cli

show keyspaces;

LetsNoSQL
fuente
4

El DESCRIBEcomando es tu amigo. Puede describir un espacio de teclas, enumerar espacios de teclas, una tabla o enumerar todas las tablas en el espacio de teclas, el clúster y mucho más. Puede obtener la idea completa escribiendo

HELP DESCRIBE en cqlsh.

Conectado a mscluster en 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.8 | Especificación CQL 3.4.2 | Protocolo nativo v4] Utilice HELP para obtener ayuda.

cqlsh> AYUDA A DESCRIBIR

    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>: describe el comando utilizado para crear el espacio de teclas

cqlsh> DESCRIBE testkeyspace;

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

  • DESCRIBIR espacios de teclas: enumera todos los espacios de teclas

cqlsh> DESCRIBA LOS ESPACIOS CLAVE

system_schema system testkeyspace system_auth
system_distributed system_traces

  • DESCRIBIR TABLAS - Lista todas las tablas en el espacio de teclas actual

cqlsh: sistema> DESCRIBE TABLES;

rangos disponibles pares pares paxos
range_xfers lotes compactación_historia batchlog
local "IndexInfo" sstable_activity
size_estimates pistas views_builds_in_progress peer_events
built_views

  • DESCRIBE your table nameo DESCRIBE TABLE your table name: proporciona los detalles de la tabla

cqlsh: system> DESCRIBE TABLE batchlog

CREATE TABLE system.batchlog (id uuid PRIMARY KEY, data blob, version int, written_at timestamp) CON bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = ' DEPRECATED batchlog entradas '... omitidas por brevedad

factótum
fuente
4

DESC KEYSPACES hará el trabajo.

Además, si desea describir el esquema de un espacio de teclas en particular, puede usar

DESC

Conserje de datos
fuente
2
  1. iniciar sesión en cqlsh
  2. desc espacios de teclas;
  3. seleccione * de system_schema.keyspaces;
Jay Tokala
fuente
2

Para ver todos los espacios de teclas en su servidor de base de datos Apache Cassandra NoSQL, use el comando:

> DESCRIBE KEYSPACES 
Suman Gangopadhyay
fuente
1

Los espacios de teclas desc lo harán por usted.

Chakri Stark
fuente
1

Sugiero una combinación de grepy 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
fuente
gracias por la respuesta, pero la forma más sencilla de ver espacios de teclas es usar el comando "DESCRIBE keyspace". No hay necesidad de grep y awk.
Shekhar
0
  1. iniciar sesión en cqlsh

  2. use el siguiente comando para obtener nombres / lista de espacios de teclas presentes

         SELECT keyspace_name FROM system_schema.keyspaces;
    
Suparna Raut
fuente
1
depende de la versión de Cassandra ... Además, ¿en qué se diferencia esta respuesta de la anterior?
Alex Ott
-1

El comando describe y desc le dará una lista de espacios de teclas en el clúster. Consulte la salida a continuación para obtener más detalles.

cqlsh> describe keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

O

cqlsh> desc keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces
Srikant Patra
fuente
¿Cómo es su respuesta es diferente de otras respuestas? Además, estos comandos solo funcionan cqlsh, no en todas partes ...
Alex Ott
cassandra @ node1: ~ $ nodetool tabletats | grep "Keyspace:" Keyspace: reaper_db Keyspace: system_traces Keyspace: system Keyspace: system_distributed Keyspace: system_schema Keyspace: system_auth cassandra @ node1: ~ $
Srikant Patra
Hay al menos 4 respuestas que enumeran los mismos comandos para cqlsh
Alex Ott