我有我的系統爲單節點集羣上的卡桑德拉1.1.2安裝有三個keyspaces:hotel
,student
和employee
。如果可能,我想轉儲hotel
的密鑰空間模式及其列數據,並在其他Cassandra集羣上恢復轉儲。任何人都可以詳細告訴我,我該怎麼做?KEYSPACE模式導入和導出在卡桑德拉
6
A
回答
6
您可以使用sstable2json
和json2sstable
卡桑德拉工具
退房Datastax documentation在同和this太
Usage: sstable2json [-f outfile] <sstable> [-k key [-k key [...]]]
Usage: json2sstable -K keyspace -c column_family <json> <sstable>
您隨時可以在文件
cassandra-cli -h HOST -p PORT -f fileName
執行卡桑德拉 - CLI命令您可以將所有創建語句加載到文件中並執行此命令
要獲得CLI腳本來創建keyspaces和列家庭使用以下命令卡桑德拉-CLI界面
show schema
但櫃面你想創建兩個節點的集羣。你不需要做所有上述事情。只需以不同的令牌範圍和相同的羣集名稱啓動另一個節點即可。 Cassandra內部將設法傳輸數據和模式信息
2
我不建議使用stable2json
和json2sstable
加載大量數據。它使用jackson API來創建數據集並將其轉換爲json格式。它意味着加載內存中的所有數據來創建一個獨特的json表示。
對於少量的數據可以,現在想象加載一個包含超過4000萬行數據,大約25GB數據的大型數據集,這些工具根本無法正常工作。我已經向datastax提問,但沒有澄清。
如果數據集較大,只需將cassandra數據文件從羣集複製到另一個羣集即可解決問題。在我的情況下,我試圖從Cassandra 1.0.6集羣遷移到1.2.1,這些版本之間的數據文件不兼容。
解決方案是什麼? 我只是寫我自己的出口/進口工具來解決這個問題。我希望很快發佈此工具的鏈接。
相關問題
- 1. 導入BLOB數據卡桑德拉
- 2. 卡桑德拉CQL3導入CSV
- 3. 插入在卡桑德拉
- 4. 在卡桑德拉
- 5. 在卡桑德拉
- 6. 在卡桑德拉
- 7. 卡桑德拉:在
- 8. 在卡桑德拉
- 9. 豬和卡桑德拉和
- 10. 創建卡桑德拉模式
- 11. 卡桑德拉造型模式
- 12. 卡桑德拉模式的意見
- 13. 需要卡桑德拉模式
- 14. 卡桑德拉和supercolumns
- 15. 卡桑德拉和JSON
- 16. 卡桑德拉和插入浮動列
- 17. 卡桑德拉KEYSPACE從窗戶單節點實例
- 18. 的卡桑德拉
- 19. 卡桑德拉datamodelling
- 20. DSE sqoop無法導入最新的SQL Server卡桑德拉表
- 21. 如何導入CSV文件卡桑德拉
- 22. 查詢在卡桑德拉
- 23. 卡桑德拉:在Mac
- 24. TimeUUID在卡桑德拉
- 25. 散裝在卡桑德拉
- 26. 卡桑德拉:在UDT
- 27. 範圍在卡桑德拉
- 28. InvalidRequestException在卡桑德拉
- 29. UnsupportedOperationExeception在卡桑德拉表
- 30. 卡桑德拉在Ubuntu
感謝泰米爾非常感謝你我一直面臨這個問題從3天這是一個很好的解決方案 我有一件事要問geting密鑰空間後恢復它在其他羣集可以複製和粘貼的密鑰空間數據進入數據目錄 – 2012-07-27 09:32:43
不,你不能這樣做。在現有的一個節點集羣上執行'nodetool drain' [即使您想要所有數據,甚至在內存中]並繼續使用json加載程序。別無他法。 nodetool drain會刷新所有的CF,但是當前的集羣將無法訪問,直到此操作完成。 – Tamil 2012-07-27 10:35:37
謝謝,但我做了我上面提到的,它工作正常,它會創建任何問題,如果我不會使用節點排水等 – 2012-07-27 19:39:14