システムにCassandra1.1.2をシングルノードクラスターとしてインストールし、3つのキースペース(、、およびhotel
)student
がありemployee
ます。hotel
可能であれば、のキースペーススキーマとその列ファミリーデータをダンプし、他のCassandraクラスターでダンプを復元したいと思います。誰かが私にこれをどのように行うべきかを詳細に提案できますか?
2 に答える
Cassandraツールsstable2json
を使用できますjson2sstable
同じこととこれについてもDatastaxのドキュメントをチェックしてください
Usage: sstable2json [-f outfile] <sstable> [-k key [-k key [...]]]
Usage: json2sstable -K keyspace -c column_family <json> <sstable>
ファイル内の cassandra-cli コマンドをいつでも実行できます
cassandra-cli -h HOST -p PORT -f fileName
すべての作成ステートメントをファイルにロードして、このコマンドを実行できます
cli スクリプトを取得してキースペースと列ファミリーを作成するには、cassandra-cli インターフェイスで次のコマンドを使用します。
show schema
ただし、2 つのノードのクラスターを作成する場合に備えて。上記のすべてを行う必要はありません。別のトークン範囲と同じクラスター名で他のノードを起動するだけで十分です。Cassandra は、データとスキーマ情報のストリーミングを内部的に管理します。
大量のデータを使用stable2json
してロードすることはお勧めしません。json2sstable
jackson API を使用してデータセットを作成し、それを json 形式に変換します。すべてのデータをメモリにロードして、一意の json 表現を作成することを意味します。
少量のデータであれば問題ありませんが、4,000 万行を超える大規模なデータセット (約 25 GB のデータ) をロードすることを想像してみてください。これらのツールはうまく機能しません。私はすでにdatastaxの担当者に、明確にすることなくそれについて尋ねました。
大規模なデータセットの場合、cassandra データ ファイルをクラスターから別のクラスターにコピーするだけで問題が解決する場合があります。私の場合、Cassandra 1.0.6 クラスターから 1.2.1 クラスターに移行しようとしていたのですが、データ ファイルはこのバージョン間で互換性がありませんでした。
解決策は何ですか?これを解決するために、独自のエクスポート/インポート ツールを作成しています。このツールのリンクをすぐに投稿したいと考えています。