Как перечислить все доступные пространства клавиш в Кассандре?


174

Я новичок в Кассандре и пытаюсь реализовать одно игрушечное приложение, используя Кассандру. Я создал одно пространство ключей и несколько семейств столбцов в моей базе данных Cassandra, но я забыл название своего кластера.

Я пытаюсь найти, если есть какой-либо запрос, который может перечислить все доступные пространства клавиш.

Кто-нибудь знает такой запрос или команду?


9
C * 3.x : SELECT * FROM system_schema.keyspaces;
Бельгия

Этот ответ устарел. Правильный ответ здесь, введите описание ссылки здесь
Vinaya Thimmappa

Ответы:


96

Если вы хотите сделать это вне cqlshинструмента, вы можете запросить schema_keyspacesтаблицу в systemпространстве ключей. Также есть таблица, schema_columnfamiliesкоторая содержит информацию обо всех таблицах.

DESCRIBEИ SHOWкоманды работают только в cqlshи cassandra-cli.


342

[cqlsh 4.1.0 | Кассандра 2.0.4 | CQL spec 3.1.1 | Комиссионный протокол 19.39.0]

В настоящее время используется команда:

DESCRIBE keyspaces;

10
Примите это как ответ! И, кстати, выходные данные будут печатать несколько имен пространств клавиш в одной строке.
Эрик Ван

3
Кассандра также допускает команду
Hari

30

Это очень просто. Просто дайте команду ниже для перечисления всех пространств клавиш.

Cqlsh> Опишите ключевые пространства;

Если вы хотите проверить пространство клавиш в схеме системы, используя запрос SQL

ниже команда.

SELECT * FROM system_schema.keyspaces;

Надеюсь, что это ответит на ваш вопрос ...

Вы можете пройти объяснение понимания и создания пространств клавиш из следующих ресурсов.

Документация:

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

Найдено ... show keyspacesкоманда выводит список всех клавиш. Я думаю ранее, когда я попробовал эту команду, я забыл дать последние '' 'в' пространствах клавиш '


8
Вы можете использовать завершение табуляции, чтобы увидеть подсказки о том, как выполнить команду cassandra-cli или cqlsh. Это может быть полезно для вас, если вы забудете синтаксис. Например, просто введите «show» и затем вкладку, чтобы увидеть действительные команды show.
Айк Уокер

3
Второй пункт в вашем ответе будет (для некоторых людей) наиболее ценной частью ответа. Вещи работают по-разному между "cqlsh" и "cassandra-cli" (и плакат с вопросом не указывает, какой он использует). показать пробелы; описать (имя пространства ключей). ПРИМЕЧАНИЕ: если кто-то использует «cqlsh», он требует кавычек вокруг любых смешанных или заглавных имен в пространстве ключей или колонке (ОК, автор не спрашивал об этом, но это обычная ошибка пользователя, если новичок в C *)
Скотт Приве

5

После входа в систему cqlsh или cassandra-cli. запустить ниже команд

  • На cqlsh

desc keyspaces;

или

describe keyspaces;

или

select * from system_schema.keyspaces;

  • На кассандра-кли

show keyspaces;


4

DESCRIBE твой друг. Вы можете описать одно пространство ключей, список пространств ключей, одну таблицу или список всех таблиц в пространстве ключей, кластер и многое другое. Вы можете получить полную идею, набрав

HELP DESCRIBE в cqlsh.

Подключен к mscluster на 127.0.0.1:9042. [cqlsh 5.0.1 | Кассандра 3.8 | CQL spec 3.4.2 | Собственный протокол v4] Используйте HELP для помощи.

cqlsh> ПОМОГИТЕ ОПИСАТЬ

    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>- описывает команду, используемую для создания пространства ключей

cqlsh> DESCRIBE testkeyspace;

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

  • DESCRIBE keyspaces - перечисляет все пространства ключей

cqlsh> ОПИСАТЬ КЛАВИШИ

system_schema системное тестовое
пространство ключей system_auth system_distributed system_traces

  • DESCRIBE TABLES - список всех таблиц в текущем пространстве ключей

cqlsh: system> ОПИСАТЬ ТАБЛИЦЫ;

available_ranges peers paxos
range_xfers пакеты compaction_history batchlog
local "IndexInfo" sstable_acctivity
size_estimates подсказки views_builds_in_progress peer_events
built_views

  • DESCRIBE your table nameили DESCRIBE TABLE your table name- Предоставляет данные таблицы

cqlsh: system> ОПИСАНИЕ ТАБЛИЦЫ batchlog

CREATE TABLE system.batchlog (идентификатор UUID PRIMARY KEY, BLOB данных, версия INT, written_at метку времени) с bloom_filter_fp_chance = 0,01 и кэширование = { 'клавиши': 'ВСЕ', 'rows_per_partition': 'NONE} и комментарий =' РЕКОМЕНДУЕТСЯ batchlog записи ... пропущены для краткости


4

DESC KEYSPACES сделает всю работу.

Кроме того, если вы хотите описать схему конкретного пространства ключей, вы можете использовать

DESC



2

Чтобы увидеть все пространства ключей на вашем сервере баз данных Apache Cassandra NoSQL, используйте команду:

> DESCRIBE KEYSPACES 



1

Я предлагаю комбинацию grepи awk:

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

спасибо за ответ, но самый простой способ увидеть пространства ключей - использовать команду «DESCRIBE keyspace». Не нужно grep и awk.
Шехар

0

Помимо вышеописанного метода, если у вас установлен opscenter,

  1. Перейдите на вкладку данных> там вы увидите все созданные вами пространства ключей и некоторые системные пространства ключей.
  2. Вы можете увидеть все таблицы в отдельных пространствах ключей, а также коэффициент репликации для пространства ключей.

для более подробной информации проверьте ссылку ниже. https://docs.datastax.com/en/opscenter/6.1/opsc/online_help/opscDataModelingManagingKeyspace_t.html


0
  1. войти в cqlsh

  2. используйте команду ниже, чтобы получить имена / список присутствующих ключей

         SELECT keyspace_name FROM system_schema.keyspaces;
    

1
это зависит от версии Cassandra ... Кроме того, чем этот ответ отличается от предыдущего?
Алекс Отт

-1

Описание и команда desc приведут список пространств ключей в кластере. Для получения более подробной информации, пожалуйста, найдите вывод ниже.

cqlsh> describe keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

ИЛИ

cqlsh> desc keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

Чем ваш ответ отличается от других ответов? Кроме того - эти команды работают только внутри cqlsh, а не везде ...
Алекс Отт,

cassandra @ node1: ~ $ tabletool tablestats | grep "Пространство ключей:" Пространство ключей: reaper_db Пространство ключей: system_traces Пространство ключей: система Пространство ключей: system_distributed Пространство ключей: system_schema Пространство ключей: system_auth cassandra @ node1: ~ $
Srikant Patra

Есть по крайней мере 4 ответа, которые перечисляют те же команды для cqlsh
Алекс Отт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.