如何列出Cassandra中所有可用的键空间?


173

我是Cassandra的新手,正在尝试使用Cassandra实现一个玩具应用程序。我在Cassandra DB中创建了一个键空间和几个列族,但是忘记了集群的名称。

我试图查找是否有任何查询可以列出所有可用的键空间。

有人知道这样的查询或命令吗?


9
C * 3.x:选择* FROM system_schema.keyspaces;
比利时

这个答案已经过时了。正确的答案是在这里输入链接说明
Vinaya Thimmappa 17-4-14

可能的重复在cqlsh 2
zurfyx

Answers:


96

如果要在cqlsh工具外部执行此操作,则可以查询键空间中的schema_keyspacessystem。还有一个名为的表schema_columnfamilies,其中包含有关所有表的信息。

DESCRIBESHOW命令只有在工作cqlshcassandra-cli


339

[cqlsh 4.1.0 | 卡桑德拉2.0.4 | CQL规范3.1.1 | 节俭协议19.39.0]

当前,要使用的命令是:

DESCRIBE keyspaces;

10
接受这个作为答案!顺便说一句,输出将在一行中打印多个键空间名称。
埃里克·王

3
卡桑德拉(Cassandra)还允许使用以下快捷命令:DESC键空间
Hari

30

非常简单。只需给出以下命令以列出所有键空间。

Cqlsh>描述键空间;

如果要使用SQL查询检查系统架构中的键空间

下面是命令。

SELECT * FROM system_schema.keyspaces;

希望这能回答您的问题...

您可以从以下资源中获得有关理解和创建键空间的说明。

说明文件:

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


13

找到它... show keyspaces命令列出了所有键空间。我想早些时候尝试此命令时,我忘记在“键空间”中输入最后一个“ s”


8
您可以使用制表符补全来查看有关如何完成cassandra-cli或cqlsh命令的提示。如果您忘记了语法,这可能对您有所帮助。例如,只需键入“ show”,然后使用Tab键查看有效的show命令。
艾克·沃克

3
对于某些人来说,答案的第二点将是答案中最有价值的部分。“ cqlsh”和“ cassandra-cli”之间的工作原理大不相同(问题张贴者没有指出他使用的是哪个)。显示键空间;描述(键空间名称)。注意:如果使用的是“ cqlsh”,则需要在键空间或列族中使用任何混合的或大写的名称加引号(好的,张贴者没有问这个,但是如果是C *的新手,这是一个常见的用户错误)
Scott Prive

5

一旦登录到cqlsh或cassandra-cli。运行以下命令

  • 在cqlsh上

desc keyspaces;

要么

describe keyspaces;

要么

select * from system_schema.keyspaces;

  • 在cassandra-cli

show keyspaces;


4

DESCRIBE命令是您的朋友。您可以描述一个键空间,列出键空间,一个表或列出键空间中的所有表,集群等等。您可以通过键入获得完整的想法

HELP DESCRIBE 在cqlsh中。

在127.0.0.1:9042连接到mscluster。[cqlsh 5.0.1 | 卡桑德拉3.8 | CQL规范3.4.2 | [原始协议v4]使用帮助获得帮助。

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;

使用复制= {'class':'SimpleStrategy','replication_factor':'3'}和持久写入= true来创建密钥空间测试密钥空间;

  • DESCRIBE键空间-列出所有键空间

cqlsh>描述键盘空间

system_schema系统测试键空间system_auth
system_distributed system_traces

  • DESCRIBE TABLES-列出当前键空间中的所有表

cqlsh:system> DESCRIBE TABLES;

available_ranges对等方paxos
range_xfers批处理compaction_history batchlog
本地“ IndexInfo” sstable_activity
size_estimates提示views_builds_in_progress peer_events
Built_views

  • DESCRIBE your table name或DESCRIBE TABLE- your table name提供表的详细信息

cqlsh:system> DESCRIBE TABLE批处理日志

CREATE TABLE system.batchlog(ID的uuid PRIMARY KEY,数据blob,版本INT,written_at时间戳)WITH bloom_filter_fp_chance = 0.01和缓存= { '键': 'ALL', 'rows_per_partition': 'NONE'}和注释=' DEPRECATED batchlog条目....为了简洁起见


4

DESC 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键空间”命令。无需grep和awk。
Shekhar


0
  1. 登录到cqlsh

  2. 使用以下命令获取存在的名称/键空间列表

         SELECT keyspace_name FROM system_schema.keyspaces;
    

1
它取决于Cassandra的版本...而且,这个答案与以前有何不同?
Alex Ott

-1

describe和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,而不是在所有地方都起作用...
Alex Ott

cassandra @ node1:〜$ nodetool tablestats | grep“ Keyspace:” Keyspace:reaper_db Keyspace:system_traces Keyspace:系统Keyspace:system_distributed Keyspace:system_schema Keyspace:system_auth cassandra @ node1:〜$
Srikant Patra

至少有4个答案列出了与cqlsh相同的命令
Alex Ott
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.