我是cassandra的新手。我需要在cassandra中的相同键空间中将数据从一个columnFamily复制到另一个columnFamily。因为我们在键空间K1中有一个A1 columnFamily,所以现在我需要在相同的键空间K1中创建columnFamily A2。我需要从中复制数据columnFamily A1到A2 .A1和A2具有相同的模式。我读了在线文档,我们可以使用sstable加载程序将数据从一个cassandra集群复制到另一个。但是在这里我需要将数据从一个columnFamily复制到同一个键空间内的另一个columnFamily。
上述任何想法。或者它是可以实现的我不确定。
答案 0 :(得分:10)
根据cassandra版本,您可以使用copy cql命令。要使用它,您需要一个css客户端,例如使用cassandra分发的客户端。
首先,您必须使用以下方法将columnfamily A1复制到CSV文件:
COPY K1.A1 (column1, column2,...) TO 'temp.csv';
然后将文件复制到新列族
COPY K1.A2 (column1, column2,...) FROM 'temp.csv';
显然,您必须将列名更改为您的名字。
更多信息:
http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/cql_reference/copy_r.html
答案 1 :(得分:2)
请注意最大限制。使用COPY命令时有200万行。见https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshCopy.html
注意:仅使用COPY FROM导入行数少于200万的数据集。要导入大型数据集,请使用Cassandra批量加载程序
答案 2 :(得分:0)
cqlsh -k mykeyspace -e' COPY fromTable(columnNames)to STDOUT' |头-n -1 | cqlsh -k mykeyspace -e' COPY toTable(columnNames)FROM STDIN'