一組包含Name/Value Pair的數據叫Row,其中每一組Name/Value Pair叫Column數據庫
Column是Cassandra最基本的數據結構,它是一個三元數據類型,包含name,value,timestamp(記錄最後一次變動時間)。此處name和value都是byte[]類型,name最大長度爲64k,value最大爲2G(非流式數據讀取,即將整個value加載到heap內存中,這很危險,咱們通常確保value在幾M大小以防內存溢出)設計模式
Cassandra中Column的name不被限制爲字符串類型數據結構
Column的value值不是單純的數值,而是被分割成多個子Column,則這個大的Column叫作SpuerColumn,SuperColumn不包含timestamp編碼
多個Column組成Column Familyspa
Column Family是Column的容器,將同類的數據聯繫在一塊兒,這時候相似於關係數據庫中的table設計
根據Column的類型能夠將Column Family分爲standard column family和super column family排序
Column Family的上一級容器叫作Keyspaces,能夠理解爲關係型數據庫的Database索引
用key1:key2這種結構存儲一對值做爲一個key,這個冒號也能夠換成其餘符號內存
一個Cassandra節點能夠包含多個keyspaces,而多個Cassandra節點按照環形排列在一塊兒,分配好數據,每一個節點包含一個副本,若是發生故障,副本接替原節點工做,這種組合叫作Clusterci
定義Column Family時,能夠包含一個名爲CompareWith的元素,讓它決定Column Family的排序規則。Cassandra的排序支持字符、字節、數字、日期時間:
BytesType:默認排序方法,直接比較字節,不檢查字節是否符合某種編碼
LongType:按8字節的長整型數值排序,默認從小到大
UTF8Type:按照Column第一個字符進行排序
AsciiType、LexicalUUIDType、Integer Type、TimeUUIDType:
Relation Model | CassandraModel |
---|---|
Database | Keyspace |
Table | Column Family(CF) |
Primary Key | Row Key |
Column name | Column name/key |
Column value | Column value |