2015-09-18 88 views
2

我一直在阅读有关静态栏目,并有一个问题,这将影响我的设计。我将有一个存储相当长的字符串的列。本专栏将成为几亿行的表格的一部分。我的问题是,存储中只有这个静态列的一个副本,或者它是否仍然存储多个副本。我假设在Java中只有一个副本,但我无法在任何地方找到明确的答案。我想声明静态的那一列会很大,所以我不想在存储中复制这些数据。卡桑德拉静态栏 - 多少份?

回答

3

静态列将根据SSTABLE存储在磁盘上。但是,不要以为只有一次写入磁盘才能回答以下问题:

  1. 有多少个表将具有静态列?
  2. 什么是复制因子?

举例来说,您对每个查询数据设计方法遵循一个表,并且有两个查询将请求静态列。您应该将其存储在两个单独的表中,这意味着它将被写入磁盘两次。如果在节点中复制3次,那么它将被写入总共2 * 3次。

如果您想要了解估计磁盘空间使用情况,请查看Datastax DS220 unit Physical Partition Size

1

正如您所希望的那样,静态列只在磁盘上存储一次。

退房这个问题哪,而标记为题外话,直接寻找到如何将数据存储在卡珊德拉SSTables包含一个确凿的回答这个问题:

Cassandra Static Column design