62

我遇到的问题是我想运行以下命令(但我不能):

cqlsh < cql_directory/cql_create_stuff.cql

因为我还没有登录cqlsh。

于是我登录了:

cqlsh -u 'my_username' -p 'my_super_secret_password'

现在我尝试在 cqlsh shell 中执行命令,但它只是响应语法错误。

基本上,我如何登录到 cqlsh 并在我的文件系统中运行外部 CQL 脚本?

4

4 回答 4

60

使用SOURCE

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/source_r.html

您也可以使用-f选项从文件中执行命令

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/cqlsh.html

于 2014-03-19T04:08:26.623 回答
31

假设CQL命令文件的路径为/mydir/myfile.cql,有两种方式:

如果你没有登录cqlsh:

cqlsh -u 'my_username' -p 'my_password' -f /mydir/myfile.cql

如果您登录到 cqlsh:

SOURCE '/mydir/myfile.cql'

注意单引号。还支持$HOME(例如, )的简写符号。'~/mydir/myfile.cql'

这两种方式也适用于相对路径(到当前目录)。

于 2015-08-13T03:58:14.943 回答
2

假设您的文件名是“ tables.cql ”并且它被放置为/files/tables.cql

A - 本地

cqlsh -f /files/tables.cql

B - 连接到运行 Cassandra 的 Docker 容器

假设运行Cassandra的 Docker 容器的名称是“ cas ”(请记住,如果没有分配名称,您也可以使用 docker 容器的哈希 id);

docker exec -it cas cqlsh -f /files/tables.cql

如其他答案所述,-u可以-p添加选项以使用用户名/密码组合。

于 2019-03-11T16:33:10.973 回答
0

这是针对 Window 系统的

假设您的 cassandra 目录是 C:\Program Files\DataStax-DDC\apache-cassandra\bin

假设您的 .cql 文件或 cql 查询文件所在的目录是 D:\ril\s\developement\new one\excel after parse\Women catalog template.cql

现在按照以下步骤导入 cql 文件

  1. 继续命令提示符(cmd
  2. 进入 cql 文件所在的目录(cd "..\ril\sizeguide\developement\new one\excel after parse"
  3. 运行以下命令 "c:\Program Files\DataStax-DDC\apache-cassandra\bin\cqlsh.bat" <"Women catalog template.cql"

它完成了。

重要的提示:

  • 请确保列值不应包含单引号'字符,例如('如果找不到完全匹配,请选择下一个大尺寸')否则它将失败。
  • 如果要插入单引号,请像下面这样使用两次,Cassandra 会将其视为一次('如果找不到完全匹配,请使用下一个大号')
  • 所有文本列都应该用单引号 '' 括起来,例如 'Sale category'。对于空值,请使用两个单引号''
于 2016-07-27T06:35:19.293 回答