Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cassandra copy data from one columnfamily to another columnfamily

I am newbie to cassandra . I need to copy data from one columnFamily to another columnFamily in same keyspace in cassandra .Say for ex we have a A1 columnFamily in keyspace K1 , so now i need to create columnFamily A2 in the same keyspace K1 .Here i need to copy data from columnFamily A1 to A2 .A1 and A2 have the same schema .I read online docs where in we can use sstable loader to copy data from one cassandra cluster to another . But here i need to copy data from one columnFamily to another columnFamily within same keyspace .

Any ideas on above . Or is it achievable i am not sure of it .

like image 745
user1278493 Avatar asked Jul 09 '13 07:07

user1278493


2 Answers

Depending on the cassandra version you can use the copy cql command. To use that you need a cql client like the one that is distributted with cassandra.

First you have to copy the columnfamily A1 to a CSV file using:

COPY K1.A1 (column1, column2,...) TO 'temp.csv';

And after that copy the file to the new column family

COPY K1.A2 (column1, column2,...) FROM 'temp.csv';

Obviously you have to change the name of the columns to your names.

More information:

http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/cql_reference/copy_r.html

like image 87
ftrujillo Avatar answered Oct 08 '22 15:10

ftrujillo


Please be aware of a limit of max. 2 million rows when using the COPY command. See https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshCopy.html

Note: Only use COPY FROM to import datasets that have less than 2 million rows. To import large datasets, use the Cassandra bulk loader

like image 22
rastov Avatar answered Oct 08 '22 15:10

rastov