cassandraでテーブルデータを移行する方法は2つあります。例として、mydbという名前のキースペースとuserという名前のテーブルを取り上げます。
方法1:コピーコマンド。
この方法は、データ量が少ない場合に適しています。
1. cqlshを入力して、次のコマンドを入力します。COPY mydb.user TO '/usr/usr.scv';
2.生成されたばかりのusr.scvファイルを見つけて、移行する必要があるサーバーにコピーします。
3.移行されたデータテーブルユーザー(テーブル構造は同じ)で、COPY mydb.user FROM '/usr/user.scv'と入力します。注:ここのキースペースは異なる場合があります
この時点で、最初の方法は終了しました。この方法は、データ量が少ない場合に適しています。
方法2: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ファイルを含むパスを選択することです(最新のテーブル)
クラスタ内のすべてのノードが実行されると、テーブルデータの移行が完了します。