Avec Cassandra, il est possible de sauvegarder les données d’une table dans un fichier CSV assez simplement avec la commande suivante :

cqlsh:myproject> COPY mytable TO '/mnt/data/mytable20150803.csv';

1145885 rows exported in 53.031 seconds.
cqlsh:myproject>

La commande jumelle de COPY TO pour restaurer les données est aussi simple : COPY FROM. Cependant, si l’une de vos données fait plus de 128 Ko, vous allez rencontrer l’erreur suivante :

cqlsh:myproject> COPY mytable FROM '/mnt/data/mytable20150802.csv';

field larger than field limit (131072)

Aborting import at record #176. Previously inserted records and some records after this number may be present.

176 rows imported in 0.346 seconds.

Cette limitation vient du module Python utilisé dans CQLSH pour lire les fichiers CSV qui limite la taille des champs à 128Ko. Néanmoins, il est possible de modifier cette valeur en ajoutant la section suivante dans le fichier ~/.cassandra/cqlshrc :

[csv]
field_size_limit=1000000000

Relancez l’importation et appréciez l’efficacité de l’instruction :

cqlsh:myproject> COPY mytable FROM '/mnt/data/mytable20150802.csv';
Processed 1000000 rows; Write: 8019.31 rows/s
1145885 rows imported in 2 minute and 22.890 seconds.

Vous avez maintenant un outil simple, fonctionnel et efficace pour exporter et importer des données dans vos tables Cassandra.