keyspace commands comandos cassandra cqlsh

cassandra - comandos - cqlsh commands



Exportar el resultado de la consulta de Casandra a un archivo csv (7)

Soy nuevo en Casandra y tengo que exportar el resultado de una consulta específica a un archivo csv.

Encontré el comando COPY , pero (por lo que entiendo) solo te permite copiar una tabla ya existente en un archivo csv, y lo que quiero es copiar directamente la salida estándar de mi consulta al archivo csv. ¿Hay alguna manera de hacerlo con el comando COPY o de otra manera?

Mi comando es estilo ( select column1, column2 from table where condition = xy ) y estoy usando cqlsh .


  1. Use el comando CAPTURE para exportar el resultado de la consulta a un archivo.

cqlsh> CAPTURE cqlsh> CAPTURE ''/home/Desktop/user.csv''; cqlsh> select *from user; Now capturing query output to ''/home/Desktop/user.csv''.

Ahora, vea el resultado de la consulta en /home/Desktop/user.csv

  1. Usa DevCenter y ejecuta una consulta. Haga clic derecho en la salida y seleccione "Copiar todo como CSV" para pegar la salida en CSV.




En Windows, se deben usar comillas dobles para encerrar el CQL.

cqlsh -e"SELECT video_id,title FROM .videos" > output.txt


No puedo comentar ... Para tratar el problema "MÁS" cuando hay más de 100 filas, simplemente agregue "paginación desactivada" antes del SQL.

Algo como

$ bin/cqlsh -e''PAGING OFF;SELECT video_id,title FROM .videos'' > output.txt

Esto causará un poco desordenado al principio del archivo de salida, pero puede eliminarse fácilmente después.


Si entiendo correctamente, ¿quieres redirigir tu salida a la salida estándar?

Pon tu comando cql en un archivo. Mis archivos se llaman select.cql y los contenidos son:

select id from wiki.solr limit 100;

Luego emita lo siguiente y lo llevará a la salida estándar:

cqlsh < select.cql

Espero que esto ayude. A partir de ahí, puedes canalizarlo y agregar comas, eliminar encabezados, etc.


Si no le molesta que utilicen un canal (''|'') como delimitador, puede intentar usar el indicador -e en cqlsh. El -e permite enviar una consulta a Cassandra desde el símbolo del sistema, donde puede redirigir o incluso realizar un grep / awk / lo que sea en su salida.

$ bin/cqlsh -e''SELECT video_id,title FROM .videos'' > output.txt $ cat output.txt video_id | title --------------------------------------+--------------------------- 2977b806-df76-4dd7-a57e-11d361e72ce1 | Star Wars ab696e1f-78c0-45e6-893f-430e88db7f46 | The Witches of Whitewater 15e6bc0d-6195-4d8b-ad25-771966c780c8 | Pulp Fiction (3 rows)

Las versiones anteriores de cqlsh no tienen la bandera -e . Para versiones anteriores de cqlsh, puede poner su comando en un archivo y usar el indicador -f .

$ echo "SELECT video_id,title FROM .videos;" > select.cql $ bin/cqlsh -f select.cql > output.txt

A partir de aquí, hacer un cat en output.txt debería producir las mismas filas que arriba.