1つのcassandraクラスタから異なるリングサイズの別のcassandraクラスタにデータを移行する方法を理解しようとしています。 5ノードクラスタから7ノードクラスタへ。サイズNのCassandraクラスタからサイズN +/- Mの別のクラスタにデータを移行する方法
私はsstable2jsonを見てきました。なぜなら、特定のcassandraノード上のSSTable用のjsonファイルを作成するからです。私の考えは、リング内の各ノードの列ファミリでこれを行うことでした。だから、5ノードリングでは、これは私に5つのjsonファイル、各ノードにある列ファミリに格納されているデータ用の1つのファイルを与えるでしょう。
次に、jsonファイルを1つのファイルにマージし、json2sstableを使用してサイズの新しいクラスタにインポートします(7)。私は、cassandraがノード間で均等にデータを複製/均衡させることを望んでいましたリングでは、私はただSSTablesが一度書かれて不変であることを読んだ。だから私が言及したことをしたならば、私は1つのノード上にある私の列ファミリ内のすべてのデータを持つリングで終わるだろう。
誰かが、あるクラスタから別のリングサイズの別のクラスタにデータを移行するプロセスを理解する手助けをしてくれますか?
私はぶらぶらして書くと、データを他のノードに複製しますか?また、リング内のすべてのノードからすべてのデータファイルを1つのフォルダに入れ、sstableloaderを実行すると、元のクラスタの3つのノードにデータが複製されたので、データが重複することはありませんか? – Turbo
はい、データが重複してしまいます。コンパクションがそれを処理するので、問題はありません。また、「すべてのデータファイルを1つのフォルダに入れる」必要はありません。 (明確にするために編集されました) – jbellis
こんにちはjbellis、情報ありがとう。私はこれが取るべき道だと思う。私のシナリオに関する情報を追加するために、ec2のhadoopを使ってデータモデルを生成し、それをecandのcassandraに保存しています。モデルが作られたら、私はキャッサンドラのデータをネットワークに引き込みます。私はモデルを生成するときにいくつかのスケーラビリティベネフィットを得るためにec2でかなり大きなカサンドラリングを作成します。しかし、ネットワーク内の宛先リングは、おそらく半分になります。だから私の計画はec2から私のネットワークにデータファイルをプルダウンしてからデータをインポートすることです。次のコメント... – Turbo