Exporter le résultat de la requête cassandra dans un fichier csv

je suis nouveau dans cassandra, et j'ai exporter le résultat d'une requête spécifique à un fichier csv.

j'ai trouvé COPY commande, mais (d'après ce que j'ai compris) il vous permet seulement de copier une table déjà existante dans un fichier csv, et ce que je veux est de copier directement le stdout de ma requête dans le fichier csv. est-il possible de le faire avec COPY commande ou avec un autre moyen ?

ma commande est style (select column1, column2 from table where condition = xy) et je suis en utilisant cqlsh.

31
demandé sur Aaron 2014-11-13 15:56:25

7 réponses

si vous ne gênez pas vos données en utilisant un pipe ('|') comme délimiteur, vous pouvez essayer d'utiliser le -e pavillon sur cqlsh. -e flag vous permet d'envoyer une requête à Cassandra à partir de l'invite de commande, où vous pouvez rediriger ou même effectuer un grep/awk/n'importe quoi sur votre sortie.

$ bin/cqlsh -e'SELECT video_id,title FROM stackoverflow.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)

les anciennes versions de cqlsh n'ont pas le -e drapeau. Pour les anciennes versions de cqlsh, vous pouvez mettre votre commande dans un fichier, et d'utiliser -f drapeau.

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

D'ici, faire cat sur la production.txt devrait donner les mêmes lignes comme ci-dessus.

36
répondu Aaron 2014-11-13 15:44:42
  1. Utiliser CAPTURE commande pour exporter le résultat de la requête dans un fichier.
cqlsh> CAPTURE
cqlsh> CAPTURE '/home/Desktop/user.csv';
cqlsh> select *from user;
Now capturing query output to '/home/Desktop/user.csv'.

Maintenant, vue la sortie de la requête / Accueil/Bureau / utilisateur.csv

  1. utilisez DevCenter et exécutez une requête. Faites un clic droit sur la sortie et sélectionnez "Copier tout comme CSV" pour coller la sortie dans CSV.

enter image description here

23
répondu Arun 2016-10-06 20:27:47

je viens d'écrire un outil pour exporter la requête CQL au format CSV et JSON. Faire un essai :)

https://github.com/tenmax/cqlkit

8
répondu popcorny 2015-07-29 05:33:06

je crois que DevCenter vous permet aussi de copier vers CSV. http://www.datastax.com/what-we-offer/products-services/devcenter

4
répondu phact 2015-05-08 17:00:47

dans windows, les guillemets doubles doivent être utilisés pour entourer le CQL.

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

4
répondu Karthik Sankar 2015-08-12 18:44:39

si je comprends bien, vous voulez rediriger votre sortie vers stdout?

mettez votre commande cql dans un fichier. Mes fichiers s'appelle le sélectionner.cql et contenu:

select id from wiki.solr limit 100;

alors, produisez ce qui suit et vous l'obtiendrez à stdout:

cqlsh < select.cql

j'espère que cette aide. À partir de là, vous pouvez le pipe et ajouter des virgules, supprimer les en-têtes, etc.

3
répondu Bereng 2014-11-13 13:29:58

ne peut pas commenter... Pour traiter la question "plus" quand il y a plus de 100 lignes, il suffit d'ajouter "paging off" avant le SQL.

quelque Chose comme

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

cela va causer un peu de désordre au début du fichier de sortie mais peut facilement être enlevé après.

0
répondu luckyee 2018-08-29 23:14:18