📜  Cassandra 中的模式描述

📅  最后修改于: 2022-05-13 01:56:18.636000             🧑  作者: Mango

Cassandra 中的模式描述

在本文中,我们将讨论我们可以在哪里使用 describe 命令,它如何帮助描述模式,还讨论 describe 命令如何有用。让我们一一讨论。

    describe 命令在 CQL 中非常有用,因为它给出了新创建的数据库、新创建的表、函数的描述(如果有)、任何用户定义的函数(如果有)的描述。您可以看到为描述命令列出的以下几点。
  • 它提供有关集群的信息。
  • 它提供有关在任何表上创建的索引类型的信息。
  • 它给出了新创建的数据库的信息。
  • 它还提供了有关函数的信息。
  • 如果有的话,它会给出用户定义类型的信息。

现在,您可以使用 help 命令查看 describe 命令的所有用例。我们来看一下。

cassandra@cqlsh> help describe

输出:

  • 描述 [仅限 cqlsh]
    (DESC 可以用作简写。)
    输出有关连接的 Cassandra 集群或存储在集群中的数据对象的信息。以下列方式之一使用:
  • 描述键空间
    输出所有键空间的名称。
  • 描述键空间 []
    输出可用于重新创建给定键空间的 CQL 命令以及其中的对象(例如表、类型、函数等)。
    在某些情况下,随着 CQL 接口的成熟,将会有一些关于键空间的元数据不能用 CQL 表示。该元数据将不会显示。
    ” 参数可以省略,在这种情况下将描述当前键空间。
  • 描述表格
    输出当前键空间中所有表的名称,如果没有当前键空间,则输出所有键空间中的名称。
    DESCRIBE TABLE [.]
    

    输出可用于重新创建给定表的 CQL 命令。在某些情况下,如上所述,可能存在不可表示且不会显示的表元数据。

  • 描述索引
    输出可用于重新创建给定索引的 CQL 命令。在某些情况下,可能存在不可表示且不会显示的索引元数据。
  • 描述物化视图
    输出可用于重新创建给定物化视图的 CQL 命令。在某些情况下,可能存在不可表示且不会显示的物化视图元数据。
  • 描述集群
    输出有关连接的 Cassandra 集群的信息,例如集群名称,以及正在使用的分区器和告密者。当您连接到非系统密钥空间时,它还会显示 Cassandra 环的端点范围所有权信息。
  • 描述 [完整] 架构
    输出可用于重新创建整个(非系统)模式的 CQL 命令。就像为每个非系统密钥空间 k 调用“DESCRIBE KEYSPACE k”一样工作。使用 DESCRIBE FULL SCHEMA 包含系统键空间。
  • 描述类型
    输出当前键空间中所有用户定义类型的名称,如果没有当前键空间,则输出所有键空间中的名称。
  • 描述类型 [.]
    输出可用于重新创建给定用户定义类型的 CQL 命令。
  • 描述函数
    输出当前键空间中所有用户定义函数的名称,如果没有当前键空间,则输出所有键空间中的名称。
  • 描述函数 [.]
    输出可用于重新创建给定用户定义函数的 CQL 命令。
  • 描述聚合
    输出当前键空间中所有用户定义聚合的名称,如果没有当前键空间,则输出所有键空间中的名称。
  • 描述聚合 [.]
    输出可用于重新创建给定用户定义聚合的 CQL 命令。
  • 描述
    输出可用于重新创建整个对象模式的 CQL 命令,其中对象可以是键空间或表或索引或物化视图(按此顺序)。

例如:
示例:列出所有现有的键空间

cassandra@cqlsh> describe keyspaces;

输出

system_schema  system    backup_copy         system_traces  university
system_auth    app_data  system_distributed  operation

示例:app_data 键空间架构

cassandra@cqlsh> describe app_data;

输出

CREATE KEYSPACE app_data WITH replication = 
{
'class': 'NetworkTopologyStrategy', 
         'datacenter1': '3', 'datacenter2': '2'
}  
AND durable_writes = true;

CREATE TABLE app_data.t (
    k text,
    i int,
    s text static,
    PRIMARY KEY (k, i)
) WITH CLUSTERING ORDER BY (i ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {
'class': 'org.apache.cassandra
          .db.compaction
          .SizeTieredCompactionStrategy', 
'max_threshold': '32', 'min_threshold': '4'
}
    AND compression = {
'chunk_length_in_kb': '64',
 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'
}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

CREATE TABLE app_data.user_data (
    user_id uuid PRIMARY KEY,
    address text,
    name text
) WITH bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {
'class': 'org.apache.cassandra.db
               .compaction.SizeTieredCompactionStrategy', 
'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {
'chunk_length_in_kb': '64', 
'class': 'org.apache.cassandra.io
               .compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

示例:user_data 表架构

cassandra@cqlsh> describe app_data.user_data;

输出

CREATE TABLE app_data.user_data (
    user_id uuid PRIMARY KEY,
    address text,
    name text
) WITH bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = 
{
'class': 'org.apache.cassandra
             .db.compaction.SizeTieredCompactionStrategy',
 'max_threshold': '32', 'min_threshold': '4'
}
    AND compression = {
'chunk_length_in_kb': '64', 
'class': 'org.apache.cassandra.io.compress.LZ4Compressor'
}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';