【问题标题】:How to list all the available keyspaces in Cassandra?如何列出 Cassandra 中所有可用的键空间?
【发布时间】:2013-09-13 19:29:00
【问题描述】:

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

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

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

【问题讨论】:

标签: cassandra cassandra-cli


【解决方案1】:

找到它...show keyspaces 命令列出了所有的键空间。我想早先尝试此命令时,我忘记在'keyspaces'中给出最后一个's'

【讨论】:

  • 您可以使用制表符完成来查看有关如何完成 cassandra-cli 或 cqlsh 命令的提示。如果您忘记了语法,这可能会对您有所帮助。例如,只需键入“show”,然后按 Tab 即可查看有效的 show 命令。
  • 您答案中的第二点将是(对于某些人)答案中最有价值的部分。 “cqlsh”和“cassandra-cli”之间的工作方式有很大不同(并且问题海报并未指出他正在使用哪个)。显示键空间;描述(键空间名称)。注意:如果使用“cqlsh”,它需要在键空间或列族中的任何混合或大写名称周围加上引号(好的,发帖人没有问这个,但如果是 C* 新手,这是一个常见的用户错误)
【解决方案2】:

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

DESCRIBESHOW 命令仅适用于 cqlshcassandra-cli

【讨论】:

  • 太多细节有时会带走简单性,Marco 的回答很到位。
【解决方案3】:

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

目前使用的命令是:

DESCRIBE keyspaces;

【讨论】:

  • 接受这个作为答案!顺便说一句,输出将在一行中打印多个键空间名称。
  • Cassandra 还允许使用简写命令,例如:DESC 键空间
【解决方案4】:

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

HELP DESCRIBE 在 cqlsh 中。

在 127.0.0.1:9042 连接到 mscluster。 [cqlsh 5.0.1 |卡桑德拉 3.8 | CQL 规范 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 &lt;your key space name&gt; - 描述用于创建密钥空间的命令

cqlsh> DESCRIBE testkeyspace;

创建密钥空间 testkeyspace WITH 复制= {'class':'SimpleStrategy','replication_factor':'3'} AND 持久写入 = true;

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

cqlsh> 描述键空间

system_schema 系统测试密钥空间 system_auth
system_distributed system_traces

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

cqlsh:system> 描述表;

available_ranges 对等 paxos
range_xfers 批次 compaction_history 批次日志
本地“索引信息”sstable_activity
size_estimates 提示 views_builds_in_progress peer_events
内置视图

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

cqlsh:system> DESCRIBE TABLE 批处理日志

创建表 system.batchlog ( id uuid 主键, 数据块, 版本 int, 书面时间戳)与bloom_filter_fp_chance = 0.01 AND 缓存 = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = 'DEPRECATED 批处理日志条目' ....为简洁起见省略

【讨论】:

    【解决方案5】:

    desc 键空间将为您完成。

    【讨论】:

      【解决方案6】:

      DESC KEYSPACES 将完成这项工作。

      另外,如果你想描述特定键空间的模式,你可以使用

      降序

      【讨论】:

        【解决方案7】:

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

        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/

        【讨论】:

        • DESCRIBE 不适用于最新的 cqlsh。这有效
        【解决方案8】:
        1. 登录cqlsh
        2. 描述键空间;
        3. 从 system_schema.keyspaces 中选择 * ;

        【讨论】:

          【解决方案9】:

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

          • 在 cqlsh 上

          desc keyspaces;

          describe keyspaces;

          select * from system_schema.keyspaces;

          • 在 cassandra-cli 上

          show keyspaces;

          【讨论】:

            【解决方案10】:

            除了上述方法,如果你安装了 opscenter,

            1. 转到数据选项卡 > 在那里您将看到您创建的所有键空间和一些系统键空间。
            2. 您可以查看各个键空间下的所有表,还可以查看键空间的复制因子。

            更多详情请查看以下链接。 https://docs.datastax.com/en/opscenter/6.1/opsc/online_help/opscDataModelingManagingKeyspace_t.html

            【讨论】:

              【解决方案11】:

              【讨论】:

                【解决方案12】:

                我建议grepawk 的组合:

                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。
                【解决方案13】:

                describes 和 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:~$ nodetool tablestats | grep“密钥空间:”密钥空间:reaper_db 密钥空间:system_traces 密钥空间:系统密钥空间:system_distributed 密钥空间:system_schema 密钥空间:system_auth cassandra@node1:~$
                • 至少有 4 个答案列出了 cqlsh 的相同命令
                【解决方案14】:
                1. 登录cqlsh

                2. 使用下面的命令来获取名称/键空间列表

                       SELECT keyspace_name FROM system_schema.keyspaces;
                  

                【讨论】:

                • 这取决于 Cassandra 的版本...另外,这个答案与以前的答案有何不同?
                【解决方案15】:

                要查看 Apache Cassandra NoSQL 数据库服务器上的所有键空间,请使用以下命令:

                > DESCRIBE KEYSPACES 
                

                【讨论】:

                • 这应该是公认的答案。简短而直接。
                【解决方案16】:

                在 CLI 模式下使用 cqlsh 列出 cassandra 中所有可用的键空间。

                命令:描述键空间;

                例子:

                cqlsh> DESCRIBE keyspaces;
                

                【讨论】:

                  猜你喜欢
                  • 2014-09-23
                  • 2014-01-14
                  • 2021-10-22
                  • 2021-09-16
                  • 1970-01-01
                  • 1970-01-01
                  • 2022-08-11
                  • 2015-10-26
                  • 2016-12-06
                  相关资源
                  最近更新 更多