Como listar todos os espaços de teclas disponíveis no Cassandra?

174

Sou novato no Cassandra e estou tentando implementar um aplicativo de brinquedo usando o Cassandra. Eu criei um espaço de chave e poucas famílias de colunas no meu Cassandra DB, mas esqueci o nome do meu cluster.

Estou tentando descobrir se existe alguma consulta que possa listar todos os espaços de teclas disponíveis.

Alguém conhece tal consulta ou comando?

Shekhar
fonte
9
C * 3.x : SELECT * FROM system_schema.keyspaces;
belgacea
Esta resposta está desatualizada. Resposta correta é aqui , indique descrição link aqui
Vinaya Thimmappa

Respostas:

96

Se você quiser fazer isso fora da cqlshferramenta, poderá consultar a schema_keyspacestabela no systemespaço de chave. Há também uma tabela chamada schema_columnfamiliesque contém informações sobre todas as tabelas.

Os comandos DESCRIBEe SHOWfuncionam apenas em cqlshe cassandra-cli.

Theo
fonte
340

[cqlsh 4.1.0 | Cassandra 2.0.4 | CQL spec 3.1.1 | Protocolo Thrift 19.39.0]

Atualmente, o comando a ser usado é:

DESCRIBE keyspaces;
Marco Ponzi
fonte
10
Aceite isso como resposta! E, a propósito, a saída imprimiria vários nomes de espaços de chaves em uma linha.
Eric Wang
3
Cassandra também permite um comando de mão curta como em: espaços de teclas DESC
Hari
30

É muito simples. Basta fornecer o comando abaixo para listar todos os espaços de teclas.

Cqlsh> Descrever espaços de teclas;

Se você deseja verificar o espaço de chave no esquema do sistema usando a consulta SQL

abaixo está o comando

SELECT * FROM system_schema.keyspaces;

Espero que isso responda sua pergunta ...

Você pode seguir a explicação sobre como entender e criar os espaços-chave a partir dos recursos abaixo.

Documentação:

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

Encontrei ... o show keyspacescomando lista todos os espaços de teclas. Acho que antes, quando tentei esse comando, esqueci de dar o último 's' em 'espaços de teclas'

Shekhar
fonte
8
Você pode usar o preenchimento de guias para ver dicas sobre como concluir um comando cassandra-cli ou cqlsh. Isso pode ser útil para você, se você esquecer a sintaxe. Por exemplo, basta digitar "show" e depois tab para ver os comandos show válidos.
Ike Walker
3
O ponto secundário da sua resposta será (para algumas pessoas) a parte mais valiosa da resposta. As coisas funcionam de maneira muito diferente entre "cqlsh" e "cassandra-cli" (e o pôster da pergunta não indica qual ele está usando). mostrar espaços de teclas; descreva (nome do espaço da chave). NOTA: Se alguém estiver usando "cqlsh", ele precisará de aspas em torno de nomes mistos ou maiúsculos em um espaço de chave ou família de colunas (OK, o pôster não pediu isso, mas é um erro comum de usuário se for novo em C *)
Scott Prive
5

Uma vez logado no cqlsh ou cassandra-cli. executar comandos abaixo

  • No cqlsh

desc keyspaces;

ou

describe keyspaces;

ou

select * from system_schema.keyspaces;

  • Em cassandra-cli

show keyspaces;

LetsNoSQL
fonte
4

O DESCRIBEcomando é seu amigo. Você pode descrever um espaço para chaves, listar espaços para chaves, uma tabela ou listar todas as tabelas no espaço para chaves, o cluster e muito mais. Você pode ter uma idéia completa digitando

HELP DESCRIBE no cqlsh.

Conectado ao mscluster em 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.8 | Especificação CQL 3.4.2 | Protocolo nativo v4] Use HELP para obter ajuda.

cqlsh> AJUDA A DESCREVER

    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>- descreve o comando usado para criar espaço de chave

cqlsh> DESCRIBE testkeyspace;

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

  • DESCRIBE keypaces - lista todos os espaços de teclas

cqlsh> DESCREVA OS ESPAÇOS DE CHAVE

system_schema system testkeyspace system_auth
system_distributed system_traces

  • DESCRIBE TABLES - lista todas as tabelas no espaço de chave atual

cqlsh: system> DESCREVER TABELAS;

available_ranges pares paxos
range_xfers lotes compaction_history batchlog
local "IndexInfo" sstable_activity
size_estimates dicas views_builds_in_progress peer_events
built_views

  • DESCRIBE your table nameou DESCRIBE TABLE your table name- fornece os detalhes da tabela

cqlsh: system> DESCRIBE TABLE batchlog

CREATE TABLE system.batchlog (id uuid PRIMARY KEY, blob de dados, versão int, Written_at timestamp) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = ' batchlog DEPRECATED entradas '.... omitido por brevidade

faz-tudo
fonte
4

DESC KEYSPACES fará o trabalho.

Além disso, se você quiser descrever o esquema de um espaço de chave específico, poderá usar

DESC

DataJanitor
fonte
2
  1. faça login no cqlsh
  2. espaços de teclas desc;
  3. selecione * em system_schema.keyspaces;
Jay Tokala
fonte
2

Para ver todos os espaços de chave no servidor de banco de dados Apache Cassandra NoSQL, use o comando:

> DESCRIBE KEYSPACES 
Suman Gangopadhyay
fonte
1

desc keyspaces fará isso por você.

Chakri Stark
fonte
1

Sugiro uma combinação de grepe 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
fonte
obrigado pela resposta, mas a maneira mais simples de ver espaços de teclas é usar o comando "DESCRIBE keyspace". Não há necessidade de grep e awk.
Shekhar #
0
  1. faça login no cqlsh

  2. use o comando abaixo para obter nomes / lista de espaços de teclas presentes

         SELECT keyspace_name FROM system_schema.keyspaces;
    
Suparna Raut
fonte
1
depende da versão do Cassandra ... Além disso, como essa resposta é diferente da anterior?
Alex Ott
-1

O comando descreve e desc fornecerá uma lista de espaços de chaves no cluster. Encontre a saída abaixo para obter mais detalhes.

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
fonte
Como sua resposta é diferente de outras respostas? Também - estes comandos apenas estão trabalhando em cqlsh, não em todos os lugares ...
Alex Ott
cassandra @ node1: ~ $ tablodados de nodetool | grep "keyspace:" keyspace: reaper_db keyspace: system_traces keyspace: Sistema keyspace: system_distributed keyspace: system_schema keyspace: system_auth Cassandra @ node1: ~ $
Srikant Patra
Há pelo menos 4 respostas que listam os mesmos comandos para cqlsh
Alex Ott