温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Cassandra CLI 命令详解

发布时间:2020-06-30 23:15:15 来源:网络 阅读:676 作者:无锋剑 栏目:大数据

Cassandra Shell命令详解

Login

cqlsh 172.20.101.252  -u cassandra -p cassandra 
Connected to cn-engage-dev at 172.20.101.252:9042.
[cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]

创建一个Keyspace

CREATE KEYSPACE <identifier> WITH <properties>
详细:
CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’}
AND durable_writes = ‘Boolean value’;

CREATE KEYSPACE语句有两个属性:replication和durable_writes。

replication

复制支持的策略

策略名称                                        描述
简单的策略 (SimpleStrategy)              为集群指定简单的复制因子。
网络拓扑策略(NetworkTopologyStrategy)     使用此选项,可以单独为每个数据中心设置复制因子。
旧网络拓扑策略                             使用此选项,可以单独为每个数据中心设置复制因子。
Durable_writes

默认情况下,表的durable_writes属性设置为true,但可以将其设置为false。
durable_writes参数用于设置写数据时是否写入commit log,如果设置为false,则写请求不会写commit log,会有丢失数据的风险。此参数默认为true,即要写commit log,生产系统应该将该参数设置为true。

实例:

创建一个名为ptmind_test的KeySpace,使用网络拓扑策略(NetworkTopologyStrategy),在数据中心1里面复制两份,另外开启写commit log。

创建
cassandra@cqlsh> create keyspace ptmind_test with replication = {'class':'NetworkTopologyStrategy','dc1':2} and durable_writes = true;

查看创建语法
cassandra@cqlsh> desc keyspace ptmind_test;

CREATE KEYSPACE ptmind_test WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '2'}  AND durable_writes = true;

####Capture
此命令捕获命令的输出并将其添加到文件。例如,看看下面的代码,它将输出捕获到名为Outputfile的文件。
当我们在终端中键入任何命令时,输出将被给定的文件捕获。下面给出的是使用的命令和输出文件的快照。

cassandra@cqlsh> capture './cassandra.out'
Now capturing query output to './cassandra.out'.

关闭捕获:
cqlsh:cqlsh> capture off;

Consistency

此命令显示当前的一致性级别,或设置新的一致性级别。
Consistency可以理解读和写操作的Consistency Level
写操作的consistency level指定了写操作在通知客户端请求成功之前,必须确保已经成功完成写操作的replica的数量。

详细介绍:https://blog.51cto.com/michaelkang/2415292

显示当前级别 CONSISTENCY

cassandra@cqlsh> CONSISTENCY 
Current consistency level is ONE.

Describe

此命令描述Cassandra及其对象的当前集群。此命令的变体说明如下。

Describe cluster -此命令提供有关集群的信息。

cassandra@cqlsh> DESCRIBE cluster;

Cluster: cn-engage-dev
Partitioner: Murmur3Partitioner

Describe Keyspaces

-此命令列出集群中的所有键空间。下面给出了这个命令的用法。

cassandra@cqlsh> DESCRIBE keyspaces;
system_schema  system       system_distributed
system_auth    ptmind_test  system_traces     

创建 tables

创建带有Set类型列的表
CREATE TABLE users (
  user_id text PRIMARY KEY,
  first_name text,
  last_name text,
  emails set<text>
);

插入数据
INSERT INTO users (user_id, first_name, last_name, emails) VALUES('2', 'kevin', 'kevin', {'kevin@ptmind.com', 'kevin@gmail.com'});

Describe tables

-此命令列出了键空间中的所有表。下面给出了这个命令的用法。

cassandra@cqlsh:ptmind_test> Describe tables;

users  emp  ptemp

Describe tables

-此命令提供表的描述。下面给出了这个命令的用法。

cqlsh:cqlsh> describe table emp;

Describe tables

此命令用于描述用户定义的数据类型。下面给出了这个命令的用法。

cassandra@cqlsh:ptmind_test> DESCRIBE table users;

CREATE TABLE ptmind_test.users (
    user_id text PRIMARY KEY,
    emails set<text>,
    first_name text,
    last_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';

Describe Types

此命令列出所有用户定义的数据类型。下面给出了这个命令的用法。假设有两种用户定义的数据类型:users和test_tables。

cassandra@cqlsh:ptmind_test> DESCRIBE TYPES;

users test_tables

Copy

此命令将数据从Cassandra复制到文件并从中复制。下面给出一个将名为emp的表复制到文件myfile的示例。

cassandra@cqlsh:ptmind_test> COPY users (user_id, first_name, last_name, emails) TO 'kevinfile';
Using 3 child processes

Starting copy of ptmind_test.users with columns [user_id, first_name, last_name, emails].
Processed: 2 rows; Rate:       1 rows/s; Avg. rate:       1 rows/s
2 rows exported to 1 files in 1.472 seconds.

验证:
[root@kubm-01 ~]# more kevinfile 

2,kevin,kevin,"{'kevin@gmail.com', 'kevin@ptmind.com'}"
frodo,Frodo,Baggins,"{'baggins@gmail.com', 'f@baggins.com'}"

Expand

此命令用于扩展输出。在使用此命令之前,您必须打开expand命令。下面给出了这个命令的用法。

cqlsh:cqlsh> expand on;
cqlsh:cqlsh> select * from users;
cassandra@cqlsh:ptmind_test> select * from users;

@ Row 1
------------+-----------------------------------------
 user_id    | 2
 emails     | {'kevin@gmail.com', 'kevin@ptmind.com'}
 first_name | kevin
 last_name  | kevin

@ Row 2
------------+-----------------------------------------

(2 rows)

使用以下命令关闭展开选项。

cqlsh:cqlsh> expand off;
Disabled Expanded output.

Source

使用此命令,可以在文件中执行命令。假设我们的输入文件如下:

然后可以执行包含命令的文件,如下所示。

[root@kubm-01 ~]# pwd
/root

[root@kubm-01 ~]# more cqshell.source 
select * from users;

登陆执行;
cassandra@cqlsh:ptmind_test> SOURCE '/root/cqshell.source'

 user_id | emails                                  | first_name | last_name
---------+-----------------------------------------+------------+-----------
       2 | {'kevin@gmail.com', 'kevin@ptmind.com'} |      kevin |     kevin
   frodo |  {'baggins@gmail.com', 'f@baggins.com'} |      Frodo |   Baggins

(2 rows)
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI