ventajas que español desventajas caracteristicas cassandra cql cassandra-2.0 cqlsh

cassandra - que - ¿Ejecutando CQL a través de Shell Script?



mongodb español (5)

Estoy tratando de ejecutar los comandos CQL desde el script de shell. Puedo conectarme a cqlsh (la versión de CQL que estoy usando es 1.1.18) pero no puedo enviar las consultas a cql.

¿Alguna idea o sugerencia de cómo proceder en esto? ¿Necesito conectarme a Cassandra y ejecutar algunos comandos (seleccionar / actualizar) con el script de shell?


Necesita conectarse a cassandra y ejecutar algunos comandos (seleccionar / actualizar) con el script de shell

Puedes ejecutar tus comandos con shell script de la siguiente manera:

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


El comando "exit" en la última sugerencia es un poco pirateado.

Propondría usar cqlsh -e con cqlsh -e .

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

Hace poco tuve que usar este enfoque cuando trabajaba con la clqsh -f acoplable, porque clqsh -f no era una opción (demasiado complejo para configurar el acceso al archivo necesario).


No estoy seguro de Cassandra 1.1.18, pero deberías poder lograr esto con la bandera -f de cqlsh . Digamos que tenemos un archivo de comandos CQL llamado "commands.cql". Puedo invocar esos comandos contra mi instancia local de Cassandra de esta manera:

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

Si quisiera invocar eso desde un script de Bash, el código del script se vería así:

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

Guárdelo como un archivo ejecutable y ejecútelo como cualquier otro.


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


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

Pero, ¿qué sucede si la instancia de Cassandra se encuentra en un servidor diferente al que se ejecuta el script de shell? (Específicamente en StreamSets, ¿lo anterior no requeriría que Cassandra esté instalada en el mismo servidor de manera que tenga acceso a la biblioteca cqlsh?)