目前,我有一个表,下面是10K行的主键。
PRIMARY KEY ((deviceid, time), channelname)我需要得到:
PRIMARY KEY (deviceid, time, channelname)我在某个地方看到,我必须重建我的整个桌子。那么,您是否有一些方法/建议来导出我的行,并将它们导入到我的新表中?
谢谢;)
发布于 2015-08-05 22:06:09
我在什么地方看到的,
,我必须重建我的整个表格。
这是正确的。
那么,您有什么方法/建议可以导出我的行并将它们导入到我的新表中吗?
是的,前几周我也是出于同样的原因不得不这么做的。在cqlsh中,您可以使用COPY实用程序。
为了导出shipcrewregistry表,我将使用COPY TO
aploetz@cqlsh:presentation> COPY shipcrewregistry (shipname , lastname , firstname ,
citizenid , aliases) TO '/home/aploetz/shipcrewreg_20150805.txt'
WITH HEADER=true AND DELIMITER='|';
9 rows exported in 0.026 seconds.为了导入它,我将使用COPY FROM来重新创建表
aploetz@cqlsh:presentation> COPY shipcrewregistry (shipname , lastname , firstname ,
citizenid , aliases) FROM '/home/aploetz/shipcrewreg_20150805.txt'
WITH HEADER=true AND DELIMITER='|';
9 rows imported in 0.636 seconds.有关复制的更多信息,请查看DataStax docs。
发布于 2015-09-15 13:18:48
只是为了扩大规模。在CQL语句CREATE TABLE中设置的主键包括分区键。在Cassandra中,分区键定义数据将存储在哪个节点上,因此它不能被更改或更改,因为数据现在可能在错误的节点上。在您的语句中,您将分区键从(deviceid,time)更改为deviceid,并且将生成不同的散列来定义数据位置。
当然,在Cassandra中,如果您需要以不同的方式进行查询,那么您可以同时拥有这两个表中的数据。非正规化的乐趣!
https://stackoverflow.com/questions/31833137
复制相似问题