Jak wyświetlić listę wszystkich dostępnych przestrzeni kluczowych w Cassandrze?


174

Jestem nowicjuszem w Cassandrze i próbuję zaimplementować jedną aplikację zabawkową za pomocą Cassandry. Utworzyłem jedną przestrzeń kluczy i kilka rodzin kolumn w mojej bazie danych Cassandra, ale zapomniałem nazwy mojego klastra.

Próbuję sprawdzić, czy jest jakieś zapytanie, które może wyświetlić wszystkie dostępne obszary kluczy.

Czy ktoś zna takie zapytanie lub polecenie?


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

Ta odpowiedź jest nieaktualna. Prawidłowa odpowiedź jest tutaj wprowadź opis linku tutaj
Vinaya Thimmappa

Odpowiedzi:


96

Jeśli chcesz to zrobić poza cqlshnarzędziem, możesz wysłać zapytanie do schema_keyspacestabeli w obszarze systemkluczy. Istnieje również tabela o nazwie, schema_columnfamiliesktóra zawiera informacje o wszystkich tabelach.

DESCRIBEI SHOWpolecenia działają tylko w cqlshi cassandra-cli.


340

[cqlsh 4.1.0 | Cassandra 2.0.4 | Specyfikacja CQL 3.1.1 | Protokół Thrift 19.39.0]

Obecnie polecenie do użycia to:

DESCRIBE keyspaces;

10
Zaakceptuj to jako odpowiedź! A tak przy okazji, wynik wypisałby wiele nazw przestrzeni kluczy w jednym wierszu.
Eric Wang

3
Cassandra zezwala również na komendę krótką ręką, jak w: Przestrzenie klawiszy DESC
Hari

30

To jest bardzo proste. Po prostu podaj poniższe polecenie, aby wyświetlić wszystkie przestrzenie klawiszy.

Cqlsh> Opisz przestrzenie kluczy;

Jeśli chcesz sprawdzić obszar kluczy w schemacie systemu za pomocą zapytania SQL

poniżej jest polecenie.

SELECT * FROM system_schema.keyspaces;

Mam nadzieję, że to odpowie na twoje pytanie ...

Możesz przejść przez wyjaśnienie dotyczące zrozumienia i tworzenia kluczowych przestrzeni z poniższych zasobów.

Dokumentacja:

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


13

Znaleziono to ... show keyspacespolecenie wyświetla listę wszystkich przestrzeni klawiszy. Myślę, że wcześniej, kiedy próbowałem tego polecenia, zapomniałem podać ostatnie „s” w „przestrzeniach klawiszy”


8
Możesz użyć uzupełniania tabulatorów, aby zobaczyć wskazówki dotyczące wykonywania polecenia cassandra-cli lub cqlsh. Może to być pomocne, jeśli zapomnisz składni. Na przykład po prostu wpisz „show”, a następnie tabulator, aby zobaczyć prawidłowe polecenia show.
Ike Walker,

3
Drugi punkt w twojej odpowiedzi będzie (dla niektórych osób) najcenniejszą częścią odpowiedzi. Rzeczy działają zupełnie inaczej w przypadku "cqlsh" i "cassandra-cli" (a plakat z pytaniem nie wskazuje, którego używa). pokaż przestrzenie klawiszy; opisać (nazwa przestrzeni kluczy). UWAGA: Jeśli ktoś używa "cqlsh", wymaga cudzysłowów wokół wszelkich nazw mieszanych lub wielkich liter w obszarze klawiszy lub w rodzinie kolumn (OK, plakat nie pytał o to, ale jest to częsty błąd użytkownika, jeśli nowy w C *)
Scott Prive

5

Po zalogowaniu się do cqlsh lub cassandra-cli. uruchom poniższe polecenia

  • Na cqlsh

desc keyspaces;

lub

describe keyspaces;

lub

select * from system_schema.keyspaces;

  • W cassandra-cli

show keyspaces;


4

DESCRIBEKomenda jest twoim przyjacielem. Możesz opisać jedną przestrzeń kluczy, listę przestrzeni kluczy, jedną tabelę lub wyświetlić wszystkie tabele w obszarze kluczy, klaster i wiele więcej. Możesz uzyskać pełny pomysł, wpisując

HELP DESCRIBE w cqlsh.

Połączono z mscluster pod adresem 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3,8 | Specyfikacja CQL 3.4.2 | Natywny protokół v4] Użyj HELP, aby uzyskać pomoc.

cqlsh> HELP DESCRIBE

    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>- opisuje polecenie używane do tworzenia przestrzeni kluczy

cqlsh> DESCRIBE testkeyspace;

UTWÓRZ KEYSPACE testkeyspace Z replication = {'class': 'SimpleStrategy', 'replication_factor': '3'} AND Durable_writes = true;

  • DESCRIBE przestrzenie kluczy - wyświetla wszystkie przestrzenie kluczy

cqlsh> OPISUJ PRZESTRZEŃ KLAWISZY

system_schema system testkeyspace system_auth
system_distributed system_traces

  • DESCRIBE TABLES - wyświetla wszystkie tabele w bieżącym obszarze kluczy

cqlsh: system> DESCRIBE TABLES;

available_ranges peers paxos
range_xfers partie compaction_history batchlog
lokalna "IndexInfo" sstable_activity
size_estimates wskazówki views_builds_in_progress peer_events
built_views

  • DESCRIBE your table namelub DESCRIBE TABLE your table name- podaje szczegóły tabeli

cqlsh: system> DESCRIBE TABLE batchlog

UTWÓRZ TABELĘ system.batchlog (identyfikator uuid KLUCZ PODSTAWOWY, blob danych, wersja int, sygnatura czasowa write_at) Z bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = ' DEPRECATED batchlog wpisy „.... pominięte ze względu na zwięzłość


4

DESC KEYSPACES zrobi to.

Ponadto, jeśli chcesz opisać schemat konkretnego obszaru kluczy, możesz użyć

DESC


2
  1. zaloguj się do cqlsh
  2. desc przestrzenie klawiszy;
  3. wybierz * z system_schema.keyspaces;

2

Aby wyświetlić wszystkie obszary kluczy na serwerze bazy danych Apache Cassandra NoSQL, użyj polecenia:

> DESCRIBE KEYSPACES 



1

Proponuję połączenie grepi awk:

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

dziękuję za odpowiedź, ale najprostszym sposobem zobaczenia przestrzeni klawiszy jest użycie polecenia „DESCRIBE keyspace”. Nie ma potrzeby grep i awk.
Shekhar

0

Oprócz powyższej metody, jeśli masz zainstalowany opscenter,

  1. Przejdź do zakładki danych> tam zobaczysz wszystkie utworzone przez Ciebie przestrzenie klawiszy i niektóre przestrzenie klawiszy systemu.
  2. Możesz zobaczyć wszystkie tabele w poszczególnych obszarach kluczy, a także współczynnik replikatora dla obszaru kluczy.

Aby uzyskać więcej informacji, sprawdź poniższy link. https://docs.datastax.com/en/opscenter/6.1/opsc/online_help/opscDataModelingManagingKeyspace_t.html


0
  1. zaloguj się do cqlsh

  2. użyj poniższego polecenia, aby uzyskać nazwy / listę obecnych przestrzeni kluczy

         SELECT keyspace_name FROM system_schema.keyspaces;
    

1
to zależy od wersji Cassandry ... Poza tym, czym ta odpowiedź różni się od poprzedniej?
Alex Ott

-1

Opisy i opis polecenia podają listę przestrzeni kluczy w klastrze. Więcej szczegółów znajdziesz poniżej.

cqlsh> describe keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

LUB

cqlsh> desc keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

czym Twoja odpowiedź różni się od innych odpowiedzi? Poza tym - te polecenia działają tylko w cqlsh, nie wszędzie ...
Alex Ott

cassandra @ node1: ~ $ nodetool tablestats | grep "Przestrzeń kluczy:" Przestrzeń kluczy: reaper_db Przestrzeń kluczy: system_traces Przestrzeń kluczy: system Przestrzeń kluczy: dystrybucja systemu Przestrzeń kluczy: system_schema Przestrzeń kluczy: system_auth cassandra @ węzeł1: ~ $
Srikant Patra

Istnieją co najmniej 4 odpowiedzi, które zawierają te same polecenia dla cqlsh
Alex Ott
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.