我正在尝试从 shell 脚本执行 CQL 命令。 我能够连接到 cqlsh(我使用的 CQL 版本是 1.1.18),但无法将查询发送到 cql。
有任何想法或建议该如何解决这个问题? 我需要连接到 Cassandra 并在 shell 脚本中执行一些命令(例如 select/update)吗?
我正在尝试从 shell 脚本执行 CQL 命令。 我能够连接到 cqlsh(我使用的 CQL 版本是 1.1.18),但无法将查询发送到 cql。
有任何想法或建议该如何解决这个问题? 我需要连接到 Cassandra 并在 shell 脚本中执行一些命令(例如 select/update)吗?
cqlsh -e "select * from ks.table limit 1;" > ~/output
我不确定关于Cassandra 1.1.18的情况,但你应该能够通过cqlsh
的-f
标志来完成此操作。假设有一个名为"commands.cql"的CQL命令文件,我可以像这样调用这些命令对我的本地Cassandra实例执行:
$ cqlsh -f commands.cql -u myusername -p mypassword localhost
如果我想在Bash脚本中调用它,那么脚本的代码会类似于这样:#!/bin/bash
cqlsh -f commands.cql -u myusername -p mypassword localhost
将其保存为可执行文件,并像其他文件一样运行。
echo "some QUERY; exit" | cqlsh CASSANDRA_HOST -u 'USER' -p 'PASS'
echo "some QUERY;" | xargs cqlsh CASSANDRA_HOST -u 'USER' -p 'PASS' -e
但是如果您的Cassandra实例位于与执行shell脚本的服务器不同的位置呢?(特别是在StreamSets中 - 上述是否需要安装Cassandra在同一台服务器上,以便其可以访问cqlsh库?)