首页 > 代码库 > cassandra迁移表数据

cassandra迁移表数据

  cassandra的迁移表数据有2种方式,以keyspace名为mydb,table名为user为例子:

方法一:copy命令。

  这种方式适合数据量较小的情况。
  1.进入cqlsh,输入命令:COPY mydb.user TO ‘/usr/usr.scv‘;

  技术分享


  2.找到刚刚生成的usr.scv文件,复制到需要迁移的服务器上

  技术分享


  3.在迁移的数据中表user(表结构相同),然后输入 COPY mydb.user FROM ‘/usr/user.scv‘;  注:这里键空间可以不同
  技术分享

  到这里第一种方式就结束了,这种方式适合数据量较小的情况。

方法二:sstableloader
  
sstableloader提供了一种可以跨集群迁移数据的方案,参考资料 http://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsBulkloader.html。
  使用这种方式,需要在迁移的数据库中建相同的键空间和表结构
  使用命令:./sstableloader -d 192.168.3.90 -u cassandra -pw cassandra -t 100 /var/lib/cassandra/data/mydb/user-77470310dc9111e6b83b3767ed5523d2/
  技术分享
  
  
-d:迁移的服务器IP;-u:迁移集群的用户名;-pw:迁移集群的用户密码;-t:限制流量; 最后的是被迁移集群储存数据的目录(/.../keyspace_name/table_name)。
  注:
    1.如果集群有多个节点,每个节点都需要执行上面的命令
    2.有些时候一张表会有多个目录
    技术分享

    如上图这种情况最后的路径要选择目录下含有.db文件的路径(最新的表)
    技术分享

    等集群所有节点都执行完毕,表数据的迁移就完成了。

    

  

 

cassandra迁移表数据