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

问题描述 投票:49回答:4

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

cqlsh < cql_directory/cql_create_stuff.cql

因为我还没有登录到cqlsh。

所以我登录了:

cqlsh -u 'my_username' -p 'my_super_secret_password'

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

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

cassandra cql cassandra-2.0
4个回答

22
投票

假设使用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')也得到支持。

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


0
投票

这适用于Window系统

假设你cassandra dir是C:\ Program Files \ DataStax-DDC \ apache-cassandra \ bin

假设你的.cql文件或cql查询文件的目录是D:\ ril \ s \ developement \ new one \ excel后解析\ Women catalog template.cql

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

  1. 继续命令提示符(cmd)
  2. 转到cql文件所在的目录(cd“.. \ _ \ ril \ size guide \ development \ new one \ excel after parse”)
  3. 运行以下命令“c:\ Program Files \ DataStax-DDC \ apache-cassandra \ bin \ cqlsh.bat”<“Women catalog template.cql”

它完成了。

重要的提示:

  • 请确保列值不应该有单引号'字符('如果你找不到完全匹配,去寻找下一个大尺寸'),否则它将失败。
  • 如果你想要插入单引号,请使用它两次,如下所示,Cassandra会将其视为一次('如果你找不到完全匹配,那就选择下一个大尺寸')
  • 所有文本列都应该用单引号“'类似'销售类别'括起来。对于空值,请使用两个单引号''。

0
投票

假设您的文件名是“tables.cql”,它的位置为:/files/tables.cql;

A - Locally

cqlsh -f /files/tables.cql

B - Connecting To A Docker Container Running Cassandra

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.