簡體   English   中英

在Cassandra中進行和導出Keyspace模式

[英]Keyspace schema import and export in Cassandra

我在我的系統上安裝了Cassandra 1.1.2作為單節點集群,並有三個鍵空間: hotelstudentemployee 我想盡可能轉儲hotel的鍵空間架構及其列族數據,並在其他Cassandra集群上恢復轉儲。 任何人都可以詳細建議我該怎么做?

您可以使用sstable2jsonjson2sstable cassandra工具

退房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

您可以將所有create語句加載到文件中並執行此命令

要獲取cli腳本以創建鍵空間和列族,請在cassandra-cli接口中使用以下命令

show schema

但是,你想要創建一個由兩個節點組成的集群。 您不需要執行以上所有操作。 只需啟動具有不同令牌范圍和相同群集名稱的其他節點即可。 Cassandra內部將設法流式傳輸數據和架構信息

我不建議使用stable2jsonjson2sstable來加載大量的數據。 它使用jackson API創建數據集並將其轉換為json格式。 它意味着加載內存中的所有數據以創建唯一的json表示。

對於少量數據是可以的,現在想象加載超過4000萬行的大型數據集,大約25GB的數據,這些工具根本不能很好地工作。 我已經在沒有澄清的情況下問過datastax的人。

對於大型數據集,只需將cassandra數據文件從群集復制到另一個可以解決問題。 在我的情況下,我正在嘗試從Cassandra 1.0.6群集遷移到1.2.1,這些版本之間的數據文件不兼容。

解決辦法是什么? 我只是編寫自己的導出/導入工具來解決這個問題。 我希望盡快發布這個工具的鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM