一组包含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 |