cassandra的遷移表數據有2種方式,以keyspace名爲mydb,table名爲user爲例子:html
方法一:copy命令。數據庫
這種方式適合數據量較小的狀況。
1.進入cqlsh,輸入命令:COPY mydb.user TO '/usr/usr.scv';服務器
2.找到剛剛生成的usr.scv文件,複製到須要遷移的服務器上spa
3.在遷移的數據中表user(表結構相同),而後輸入 COPY mydb.user FROM '/usr/user.scv'; 注:這裏鍵空間能夠不一樣
3d
到這裏第一種方式就結束了,這種方式適合數據量較小的狀況。
htm
方法二: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文件的路徑(最新的表)
blog
等集羣全部節點都執行完畢,表數據的遷移就完成了。
table