2011-06-11 101 views
2

http://wiki.apache.org/cassandra/CassandraLimitations卡桑德拉:什麼是子列

報價: 卡桑德拉有指標兩個層次:鍵列。但是在超級柱家族中有第三層次的子欄目;這些都沒有索引,並且任何子列的請求反序列化全部超級列中的子列。所以你想避免需要大量子列的數據模型。

=>什麼是子列?有趣的是,搜索詞的搜索結果並不真實。我知道supercolumn的概念,但它並不十分清楚「subcolumn」這個術語究竟是指什麼(它是如何定義的):

什麼概念是正確的?

第一:

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 

它的唯一定義的問題。

感謝 馬庫斯

回答

7

標準列的父母是其行。子列的父級是其超級列。除此之外,它們是相同的 - 只是有一個額外的嵌套層次,儘管如上所述,這對索引和檢索有影響。

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

更多信息和http://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  ... 
+0

謝謝!我讀過的第一個鏈接已經在這裏問了,但是你的圖表在描述這些術語時要好幾倍! (在cassandra網站上,yonley有這些例子),但你的定義非常清楚。如果您來自cassandra團隊,您可以將其更新到該網站。謝謝。 – Markus 2011-06-11 11:25:56

+2

「WTF是超級柱子」應該擺脫它的苦難。我建議使用http://www.datastax.com/docs/0.8/data_model/index或Max在數據建模上的帖子(鏈接在http://wiki.apache.org/cassandra/ArticlesAndPresentations頂部)。 – jbellis 2011-06-16 15:55:23

0

comparator值表示列將如何進行排序時,他們是r在查詢中找到了你。相同的概念適用於subcomparator,但適用於超級列。

UTF8Type指的是字符的Unicode標準。

  • 來源:「Cassandra權威指南」。