如何在cqlsh中运行cql文件(.cql)?

65

我遇到的问题是,我想运行以下命令(但我无法运行):

cqlsh < cql_directory/cql_create_stuff.cql

因为我尚未登录cqlsh。

所以我登录了:

cqlsh -u 'my_username' -p 'my_super_secret_password'

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

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

4个回答

58

3
好的,已经成功了。你介意在回复中明确提供一个示例吗?谢谢! :) - Charlie Parker
但是很烦人的是我必须进入cqlsh,难道我不能在bash中登录并在bash中执行操作并保持在bash中吗?比如 cqlsh < cql_directory/cql_create_stuff.cql?之前可以这样做的原因是因为我没有设置身份验证,所以只有在设置了身份验证后才能使用这个技巧。 - Charlie Parker
11
bin/cqlsh -u user -p pwd -f file.cql 应该可以工作。 - Mikhail Stepura
3
截至2019年10月,此回答中的原始链接已失效。新链接为https://docs.datastax.com/en/dse/5.1/cql/cql/cql_reference/cqlsh_commands/cqlshSource.html。 - Devy

34
假设包含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')。

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


5
假设您的文件名为 "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选项以使用用户名/密码组合。

0

这是针对Windows系统的

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

假设您的.cql文件或cql查询文件所在的目录为 D:\ ril \ s \ developement \ new one \ excel after parse \ Women catalogue 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 catalogue template.cql"

就完成了。

重要提示:

请确保列值中不要有单引号'字符,例如('如果您找不到精确匹配项,请选择下一个大尺码'),否则会失败。 如果您想插入单引号,请使用两次,如下所示,Cassandra 将把它视为一次 ('如果你don''t find a exact match,go for the next large size')。 所有文本列都应使用单引号''括起来,例如'Sale category'。对于空值,请使用两个单引号''

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接