卡珊德拉:什么是子列

时间:2011-06-11 09:19:53

标签: cassandra

http://wiki.apache.org/cassandra/CassandraLimitations

引用: Cassandra有两个级别的索引:键和列。但在超级列系列中,存在第三级子列;这些都没有编入索引,并且对子列的任何请求都会反序列化 all 该超列中的子列。因此,您希望避免需要大量子列的数据模型。

=>究竟什么是子列?有趣的是,谷歌搜索这个词并没有真正产生结果。我知道超级列的概念,但不清楚“子列”这个术语究竟是指什么(如何定义):

什么概念是正确的?

首先:

ROW-KEY
   SubCol     SubCol    
    col  col  col val
    val  val  col val

OR

第二

ROW-KEY
   Column           Column
    SubCol SubCol   SubCol SubCol
    val    val      val    val

此外,定义中的内容是什么:

comparator = UTF8Type and
subcomparator = UTF8Type and 

这只是一个定义问题。

由于 马库斯

2 个答案:

答案 0 :(得分:7)

标准列的父级是其行。子列的父级是其超级列。除此之外,它们是相同的 - 只有一个额外的嵌套级别,尽管如你所提到的那样对索引和检索有影响。

http://wiki.apache.org/cassandra/DataModelhttp://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model

的更多信息

普通列系列:

row
    col  col  col ...
    val  val  val ...

超级列系列:

row
      supercol                      supercol                     ...
          (sub)col  (sub)col  ...       (sub)col  (sub)col  ...
           val       val      ...        val       val      ...

答案 1 :(得分:0)

comparator值表示在查询中将列返回给您时如何对列进行排序。同样的概念适用于subcomparator,但适用于超级列。

UTF8Type指的是字符的Unicode标准。

  • 资料来源:“Cassandra the Definitive Guide”。