1 概述

CQL Shell 简称cqlsh,是一个可以和Cassandra数据库通信的客户端,使用这个cqlsh客户端可以执行Cassandra查询语言(CQL)。

启动cqlsh

进入cassandra安装目录下的 bin 目录,执行 cqlsh 命令

./cqlsh -u cassandra -p 'cassandra' 192.168.137.110 9042

3 启动说明

上面的操作在启动cqlsh的时候并没有指定需要连接的节点以及端口,默认 cqlsh 会自动探测本机及端口。上面的操作时已经启动了 Cassandra 服务并绑定相关端口,注:【 端口列表】,cqlsh默认就会连接本机的9042端口。

从上面的命令可以看出cqlsh 连接到名为 Test Cluster 的集群,这个名字是默认值,可以自定义,配置在 conf/cassandra.yaml 文件的 cluster_name 参数,注:【yaml全内容】

另外,也可以在启动cqlsh 的时候指定节点和端口,效果和不指定一样:

CQL Shell 客户端_SQL

cqlsh的基本命令

CQL Shell 客户端_查询语言_02

4.1 help 帮助

输入命令,可以查看cqlsh 支持的命令

cqlsh> help

显示效果:

CQL Shell 客户端_Cassandra_03

4.2 DESCRIBE

此命令配合 一些内容可以输入信息

1、Describe cluster 提供有关集群的信息

输入命令

cqlsh> Describe cluster;

效果

CQL Shell 客户端_SQL_04

2、Describe Keyspaces 列出集群中的所有Keyspaces(键空间)

输入命令

cqlsh> Describe Keyspaces;

效果,显示当前Cassandra里的所有键空间

CQL Shell 客户端_SQL_05

3、Describe tables 列出键空间的所有表

输入命令

cqlsh> Describe tables;

效果,当前没有创建任何的键空间,这里显示的默认内置的表

CQL Shell 客户端_查询语言_06

4、Describe tables 列出键空间内指定表的信息

先指定键空间 ,这里使用

USE system_traces ;

列出system_traces 下的 sessions信息

DESCRIBE sessions;

效果

CQL Shell 客户端_查询语言_07

4.3 Capture 捕获命令输出到文件

此命令捕获命令的输出并将其添加到文件。

输入命令,将输出内容捕获到名为outputfile的文件

CAPTURE '/tmp/outputfile'

执行效果

CQL Shell 客户端_Cassandra_08

执行一个查询,控制台可以看到输出。

然后去看outputfile文件,会发现把刚才查询的结果也写入到文件中了

select * from sessions limit 1;

CQL Shell 客户端_查询语言_09

4.4 show 显示当前cqlsh会话的详细信息

show命令后可以跟3个内容 ,分别是 HOST 、SESSION 、VERSION 输入SHOW ,点击2次TAB 按键,可以看到3个内容提示

输入SHOW HOST,显示当前cqlsh 连接的Cassandra服务的ip和端口

CQL Shell 客户端_查询语言_10

输入

CQL Shell 客户端_SQL_11

出入SHOW SESSION 显示会话信息,需要参数uuid

4.5 Exit 用于终止cql shell

5 CQL-Cassandra查询语言

CQL:Cassandra Query Language 和关系型数据库的 SQL 很类似(一些关键词相似),可以使用CQL和 Cassandra 进行交互,实现 定义数据结构,插入数据,执行查询。

注意:CQL 和 SQL 是相互独立,没有任何关系的。CQL 缺少 SQL 的一些关键功能,比如 JOIN 等。

5.1 数据定义命令

CQL Shell 客户端_查询语言_12

5.2 数据操作指令

CQL Shell 客户端_Cassandra_13

5.3 查询指令

CQL Shell 客户端_SQL_14