问题
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 .
回答1:
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
回答2:
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
回答3:
cqlsh -k mykeyspace -e 'COPY fromTable(columnNames) TO STDOUT' | head -n -1 | cqlsh -k mykeyspace -e 'COPY toTable(columnNames) FROM STDIN'
来源:https://stackoverflow.com/questions/17542239/cassandra-copy-data-from-one-columnfamily-to-another-columnfamily