2015-09-18 121 views
2

我一直在閱讀有關靜態欄目,並有一個問題,這將影響我的設計。我將有一個存儲相當長的字符串的列。本專欄將成爲幾億行的表格的一部分。我的問題是,存儲中只有這個靜態列的一個副本,或者它是否仍然存儲多個副本。我假設在Java中只有一個副本,但我無法在任何地方找到明確的答案。我想聲明靜態的那一列會很大,所以我不想在存儲中複製這些數據。卡桑德拉靜態欄 - 多少份?

回答

3

靜態列將根據SSTABLE存儲在磁盤上。但是,不要以爲只有一次寫入磁盤才能回答以下問題:

  1. 有多少個表將具有靜態列?
  2. 什麼是複製因子?

舉例來說,您對每個查詢數據設計方法遵循一個表,並且有兩個查詢將請求靜態列。您應該將其存儲在兩個單獨的表中,這意味着它將被寫入磁盤兩次。如果在節點中複製3次,那麼它將被寫入總共2 * 3次。

如果您想要了解估計磁盤空間使用情況,請查看Datastax DS220 unit Physical Partition Size

1

正如您所希望的那樣,靜態列只在磁盤上存儲一次。

退房這個問題哪,而標記爲題外話,直接尋找到如何將數據存儲在卡珊德拉SSTables包含一個確鑿的回答這個問題:

Cassandra Static Column design