Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Trying to find a way to easily transfer all the rows from a Cassandra ColumnFamily/Table to another.

The COPY command, as I understand, is a good option. However, as it dumps all the data to .csv on disk and then loads it back, I can't help but wonder if there is a better way to do it in-engine.

A specific example of what I mean would be the INSERT * FROM my_table INTO my_other_table available in many SQL databases. Of course, I realize that Cassandra is NoSQL and therefore does not to work the same way - but it seems like something which might be available.

What is a good way to accomplish this?

Thanks very much!

share|improve this question
cqlsh -k mykeyspace -e 'COPY fromTable(columnNames) TO STDOUT' | head -n -1 | 
cqlsh -k mykeyspace -e 'COPY toTable(columnNames) FROM STDIN'
share|improve this answer
Thanks, this looks interesting. However, I'd be concerned about character escaping and other issues, especially when dealing with certain types of data. Is that a concern at all? – Juan Carlos Coto Aug 19 '14 at 19:04
Good idea, but as @JuanCarlosCoto said, it doesn't work with certain data types. I tried it on a table with a blob column and it crashed on a newline character. – Alexandre DuBreuil May 29 '15 at 10:09
On cassandra 2.1.2 I had to modify the command to be head -n -2 because the ouput of COPY includes two lines at the end that need to be trimmed. It was still working, but it got mad about the empty line at the end. – ctlacko Oct 1 '15 at 16:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.