cqlsh: the CQL shell
cqlsh是通过CQL(Cassandra查询语言)与Cassandra交互的命令行shell。它随每个Cassandra软件包一起提供,可以在bin目录下的cassandra可执行文件中找到。cqlsh使用Python本机协议驱动程序,并连接到在命令行上指定的单个节点。
兼容性
cqlsh与Python 2.7兼容。
一般来说,给定版本的cqlsh只能保证与发布的Cassandra版本一起工作。在某些情况下,cqlsh使用较旧或较新版本的Cassandra,但这不被官方支持。
可选依赖关系
cqlsh附带所有必要的依赖关系。但是,有一些可选的依赖关系可以安装以提高cqlsh的功能。
pytz
默认情况下,cqlsh显示具有UTC时区的所有时间戳。要支持使用另一个时区显示时间戳,必须安装pytz库。
cython
通过安装cython可以提高cqlsh的COPY操作的性能。这将编译对COPY性能至关重要的python模块。
cqlshrc
cqlshrc文件保存cqlsh的配置选项。默认情况下,这是在用户的主目录〜/ .cassandra / cqlsh,但是可以使用--cqlshrc选项指定自定义位置。
例如配置值和文档可以在通过tar压缩包方式安装的数据库conf / cqlshrc.sample文件中找到。
命令行选项
用法:
cqlsh[options][host [port]]
选项:
- 强制颜色输出
- 禁用颜色输出
- 指定用于显示cqlsh帮助的浏览器。这可以是受支持的浏览器名称(例如firefox)或后面跟山%s的浏览器路径(例如/ usr / bin / google-chrome-stable%s)。
- 连接到Cassandra时使用SSL
- 用于验证Cassandra的用户名
-
用于验证Cassandra的密码,应与--user一起使用
-
要验证的键空间,应与--user结合使用
- 从给定文件执行命令,然后退出
- 打印其他调试信息
- 为输出指定非默认编码(默认为UTF-8)
- 为cqlshrc文件指定非缺省位置
- 执行给定的语句,然后退出
- 以秒为单位指定连接超时(默认为2秒)
- 指定请求超时(以秒为单位)(默认为10秒)
- 强制tty模式(命令提示符)
-C
--color
--no-color
--browser
--ssl
-u
--user
-p
--password
-k
--keyspace
-f
--file
--debug
--encoding
--cqlshrc
-e
--execute
--connect-timeout
--request-timeout
-t
--tty
特殊命令
除了支持常规CQL语句外,cqlsh还支持一些不属于CQL的特殊命令。这些详细如一致性(CONSISTENCY)
用法: CONSISTENCY<consistencylevel>
设置要遵循的操作的一致性级别。有效参数包括:
ANY
ONE
TWO
THREE
QUORUM
ALL
LOCAL_QUORUM
LOCAL_ONE
SERIAL
LOCAL_SERIAL
串行一致性(SERIALCONSISTENCY)
用法: SERIALCONSISTENCY<consistency level>
设置要遵循的操作的串行一致性级别。有效参数包括:
SERIAL
LOCAL_SERIAL
串行一致性级别仅由条件更新使用(具有IF条件的INSERT,UPDATE和DELETE)。对于这些,串行一致性级别定义串行阶段(或“paxos”阶段)的一致性级别,而正常一致性级别定义“学习”阶段的一致性,即,什么类型的读取将被保证以立即看到更新。例如,如果条件写入的一致性级别为QUORUM(并且成功),那么QUORUM读取保证看到该写入。但是如果该写入的常规一致性级别为ANY,则只有具有一致性级别SERIAL的读取可以保证看到它(即使具有一致性的读取也不能保证足够)。
版本(SHOWVERSION)
打印正在使用的cqlsh,Cassandra,CQL和本机协议版本。例:
cqlsh> SHOW VERSION
[cqlsh 5.0.1 | Cassandra 3.8 | CQL spec 3.4.2 | Native protocol v4]
节点主机(SHOWHOST)
除了集群名称之外,还打印cqlsh连接的Cassandra节点的IP地址和端口。例:
cqlsh> SHOW HOST
Connected to Prod_Cluster at 192.0.0.1:9042.
会话(SHOWSESSION)
打印特定的跟踪会话。
用法: SHOWSESSION<session id>
用法示例:
cqlsh> SHOW SESSION 95ac6470-327e-11e6-beca-dfb660d92ad8
Tracing session: 95ac6470-327e-11e6-beca-dfb660d92ad8
activity | timestamp | source | source_elapsed | client
-----------------------------------------------------------+----------------------------+-----------+----------------+-----------
Execute CQL3 query | 2016-06-14 17:23:13.979000 | 127.0.0.1 | 0 | 127.0.0.1
Parsing SELECT * FROM system.local; [SharedPool-Worker-1] | 2016-06-14 17:23:13.982000 | 127.0.0.1 | 3843 | 127.0.0.1
...
资源(SOURCE)
读取文件的内容,并以CQL语句或特殊的cqlsh命令执行每行。
用法: SOURCE<stringfilename>
用法示例:
cqlsh> SOURCE '/home/thobbs/commands.cql'
捕获(CAPTURE)
开始捕获命令输出并将其附加到指定的文件。 捕获时,输出将不会显示在控制台。
用法:
CAPTURE '<file>';
CAPTURE OFF;
CAPTURE;
也就是说,要附加到文件的路径必须在字符串文字中给出。 相对于当前工作目录解释路径。 支持参考$ HOME的波形符简写符号('〜/ mydir')。
仅捕获查询结果输出。 cqlsh-only命令的错误和输出仍将显示在cqlshsession中。
要停止捕获输出并再次在cqlsh会话中显示,请使用CAPTURE OFF。
要检查当前捕获配置,请使用没有参数的CAPTURE。
帮助(HELP)
提供有关cqlsh命令的信息。 要查看可用的主题,请输入不带任何参数的HELP。要查看某个主题的帮助,请使用HELP <topic>。另请参阅--browser参数,设置用于显示帮助的浏览器。
跟踪(TRACING)
启用或禁用查询的跟踪。启用跟踪时,查询完成后,将打印查询过程中的事件跟踪。
用法:
TRACING ON
TRACING OFF
分页(PAGING)
启用分页,禁用分页,或设置读取查询的页面大小。 启用分页时,每次只能提取一页数据,并会出现提示以获取下一页。 一般来说,在交互式会话中保留启用分页是一个好主意,以避免同时获取和打印大量的数据。
用法:
PAGING ON
PAGING OFF
PAGING <page size in rows>
扩展(EXPAND)
启用或禁用行的垂直打印。启用EXPAND在提取多个列或单个列的内容很大时很有用。
用法:
EXPAND ON
EXPAND OFF
登录(LOGIN)
为当前会话的指定Cassandra用户进行身份验证。
用法:
LOGIN <username> [<password>]
退出(EXIT)
结束当前会话并终止cqlsh进程。
用法:
EXIT
QUIT
清除(CLEAR)
清除控制台。
用法:
CLEAR
CLS
描述(DESCRIBE)
打印架构元素或集群的描述(通常是一系列DDL语句)。这对转储模式的所有或部分非常有用。
用法:
DESCRIBE CLUSTER
DESCRIBE SCHEMA
DESCRIBE KEYSPACES
DESCRIBE KEYSPACE <keyspace name>
DESCRIBE TABLES
DESCRIBE TABLE <table name>
DESCRIBE INDEX <index name>
DESCRIBE MATERIALIZED VIEW <view name>
DESCRIBE TYPES
DESCRIBE TYPE <type name>
DESCRIBE FUNCTIONS
DESCRIBE FUNCTION <function name>
DESCRIBE AGGREGATES
DESCRIBE AGGREGATE <aggregate function name>
在任何命令中,可以使用DESC代替DESCRIBE。
DESCRIBE CLUSTER命令打印群集名称和分区程序:
cqlsh> DESCRIBE CLUSTER
Cluster: Test Cluster
Partitioner: Murmur3Partitioner
DESCRIBE SCHEMA命令打印重新创建整个模式所需的DDL语句。这对于转储模式以克隆集群或从备份还原特别有用。
复制到(COPYTO)
将表中的数据复制到CSV文件。
用法:
COPY <table name> [(<column>, ...)] TO <file name> WITH <copy option> [AND <copy option> ...]
如果未指定列,则表中的所有列都将复制到CSV文件。 要复制的列的子集可以通过在表名称后面添加由括号括起来的列名称的逗号分隔列表来指定。
<filename>
应为表示目标文件路径的字符串文字(带单引号)。也可以使用特殊值STDOUT(不带单引号)将CSV打印到stdout。
COPYTO
选项
- 同时获取的最大令牌数量。默认值为6。
- 在单个页面中提取的行数。默认为1000。
- 默认情况下,页面超时为页面大小每1000个条目为10秒,如果pagesize较小,则为10秒。
- 令牌范围导出。 默认为导出完整环。
- 以行数测量的输出文件的最大大小;超出此最大值,输出文件将被分割成段。-1表示无限制,是默认值。
- 用于字符的编码。 默认为utf8。
MAXREQUESTS
PAGESIZE
PAGETIMEOUT
BEGINTOKEN
,ENDTOKEN
MAXOUTPUTSIZE
ENCODING
从哪复制(COPYFROM)
将CSV文件中的数据复制到表。
用法:
COPY <table name> [(<column>, ...)] FROM <file name> WITH <copy option> [AND <copy option> ...]
如果未指定列,则CSV文件中的所有列都将复制到表中。 要复制的subsetof列可以通过添加逗号分隔的列名称列表来指定,列表名称后面用圆括号括起来。
<filename>
应为表示目标文件路径的字符串文字(带单引号)。也可以使用特殊值STDIN(不带单引号)将CSV打印到stdin。
COPY FROM选项
- 每秒处理的最大行数。默认值为100000。
- 要导入的最大行数。 -1表示无限制,是默认值。
- 要跳过的初始行数。 默认值为0。
- 要忽略的列名称的逗号分隔列表。默认情况下,不跳过任何列。
- 要忽略的解析错误的最大全局数。-1表示无限制,是默认值。
- 要忽略的插入错误的最大全局数。-1表示无限。默认值为1000。
- 默认情况下,存储所有无法导入的行的文件是import_ <ks> _ <table> .err,其中<ks>是您的键空间,<table>是您的表名。
- 单个批次中插入的最大行数。默认为20。
- 在单个批处理中插入的最小行数。默认为2。
- 一次从主进程传递到子工作进程的行数。默认为1000。
INGESTRATE
MAXROWS
SKIPROWS
SKIPCOLS
MAXPARSEERRORS
MAXINSERTERRORS
ERRFILE
MAXBATCHSIZE
MINBATCHSIZE
CHUNKSIZE