Executar as pesquisas da cassandra a partir da linha de comandos

quero executar consultas cql do comando bash.

[cqlsh 3.1.8 | Cassandra 1.2.19 | CQL spec 3.0.5 | Protocolo Thrift 19.36.2]

[root@hostname ~]# /opt/apache-cassandra-1.2.19/bin/cqlsh -k "some_keyspace" -e "SELECT column FROM Users where key=value"

tenho:

Cqlsh: erro: nenhuma opção: -e

opções:

  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -C, --color           Always use color output
  --no-color            Never use color output
  -u USERNAME, --username=USERNAME
                        Authenticate as user.
  -p PASSWORD, --password=PASSWORD
                        Authenticate using password.
  -k KEYSPACE, --keyspace=KEYSPACE
                        Authenticate to the given keyspace.
  -f FILE, --file=FILE  Execute commands from FILE, then exit
  -t TRANSPORT_FACTORY, --transport-factory=TRANSPORT_FACTORY
                        Use the provided Thrift transport factory function.
  --debug               Show additional debugging information
  --cqlversion=CQLVERSION
                        Specify a particular CQL version (default: 3.0.5).
                        Examples: "2", "3.0.0-beta1"
  -2, --cql2            Shortcut notation for --cqlversion=2
  -3, --cql3            Shortcut notation for --cqlversion=3
Alguma sugestão ?

Author: 4EACH, 2017-03-16

3 answers

Em primeiro lugar, você deve considerar seriamente atualizar. Você está perdendo um monte de novos recursos e correções de bugs.

Em segundo lugar, com o cqlsh na Cassandra 1. 2, poderá usar a opção -f para indicar um ficheiro que contém declarações de cql:

$ echo "use system_auth; SELECT role,is_superuser FROM roles WHERE role='cassandra';" > userQuery.cql
$ bin/cqlsh -u aploetz -p reindeerFlotilla -f userQuery.cql 

 role      | is_superuser
-----------+--------------
 cassandra |         True


(1 rows)
 1
Author: Aaron, 2017-03-16 13:31:09

Pode usar o-f para executar a partir de um ficheiro ou código, logo que inicie o CQLSH. Eu não acho que-e é uma opção válida com essa versão.

 0
Author: juniormint88, 2017-03-16 12:40:52
É um pouco sujo e instável,mas aqui está a resposta:
/opt/apache-cassandra-1.2.19/bin/cqlsh -k "keyspace" -f  /path/to/file.cql  > /path/to/output.txt
tail -2 /path/to/output.txt | head -1 > /path/to/output-value.txt
 0
Author: 4EACH, 2017-03-16 14:06:09