Выполнение CQL через оболочку Script?

Я пытаюсь выполнить команды CQL из оболочки script. Я могу подключиться к cqlsh (CQL-версия, которую я использую, это 1.1.18), но не могу отправить запросы в cql.

Любые идеи или предложения о том, как действовать дальше? Нужно ли подключиться к Cassandra и выполнить несколько команд (выбрать/обновить) с помощью оболочки script??

Ответ 1

cqlsh -e "select * from ks.table limit 1;" > ~/output

Ответ 2

Я не уверен в Cassandra 1.1.18, но вы можете сделать это с помощью флага -f cqlsh. Пусть, скажем, файл CQL-команд под названием "commands.cql". Я могу вызвать эти команды против моего локального экземпляра Cassandra следующим образом:

$ cqlsh -f commands.cql -u myusername -p mypassword localhost

Если бы я хотел вызвать это из Bash script, код script выглядел бы примерно так:

#!/bin/bash
cqlsh -f commands.cql -u myusername -p mypassword localhost

Сохраните это как исполняемый файл и запустите его, как и любой другой.

Ответ 3

Вам нужно подключиться к cassandra и выполнить несколько команд (выбрать/обновить) с помощью оболочки script

Вы можете выполнить свои команды с помощью оболочки script следующим образом:

echo "some QUERY; exit" | cqlsh CASSANDRA_HOST -u 'USER' -p 'PASS'

Ответ 4

Команда "exit" в последнем предложении немного взломана.

Я бы предложил использовать xargs с cqlsh -e.

echo "some QUERY;" | xargs cqlsh CASSANDRA_HOST -u 'USER' -p 'PASS' -e

Недавно мне пришлось использовать этот подход при работе с docker, потому что clqsh -f не был вариантом (слишком сложным для настройки доступа к файлу).