• Cassandra数据模型


    Ⅰ、数据模型

    1.1 Column

    一组包含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不被限制为字符串类型

    1.2 Super Column

    Column的value值不是单纯的数值,而是被分割成多个子Column,则这个大的Column叫做SpuerColumn,SuperColumn不包含timestamp

    1.3 Column Family

    多个Column组成Column Family

    Column Family是Column的容器,将同类的数据联系在一起,这时候类似于关系数据库中的table

    根据Column的类型可以将Column Family分为standard column family和super column family

    1.4 Keyspaces

    Column Family的上一级容器叫做Keyspaces,可以理解为关系型数据库的Database

    1.5 Composite Keys

    用key1:key2这种结构存储一对值作为一个key,这个冒号也可以换成其他符号

    1.6 Cluster

    一个Cassandra节点可以包含多个keyspaces,而多个Cassandra节点按照环形排列在一起,分配好数据,每个节点包含一个副本,如果发生故障,副本接替原节点工作,这种组合叫做Cluster

    1.7 Cassandra数据模型的排序规则

    定义Column Family时,可以包含一个名为CompareWith的元素,让它决定Column Family的排序规则。Cassandra的排序支持字符、字节、数字、日期时间:

    BytesType:默认排序方法,直接比较字节,不检查字节是否符合某种编码

    LongType:按8字节的长整型数值排序,默认从小到大

    UTF8Type:按照Column第一个字符进行排序

    AsciiType、LexicalUUIDType、Integer Type、TimeUUIDType:

    Ⅱ、Cassandra与传统数据库对比

    Relation Model CassandraModel
    Database Keyspace
    Table Column Family(CF)
    Primary Key Row Key
    Column name Column name/key
    Column value Column value

    Ⅲ、Cassandra数据设计模式

    • Row-Oriented
      可以使用一个唯一识别号访问行,所以Cassandra是一个带索引的面向行的存储
    • Schema Free
      只保存需要的数据,不必拘泥于之前定义的表结构
  • 相关阅读:
    贝叶斯推断祭
    libstdc和glibc的一些共享库问题
    nf_conntrack之解决方案
    Too many open files 问题
    Centos系统 上下文切换的检查思路
    GPS坐标转大地坐标
    【转】关于IAP与APP互相跳转的实现
    stm32定时器计数功能
    C库函数——字符串转数字整理
    【转】sscanf函数用法实例
  • 原文地址:https://www.cnblogs.com/---wunian/p/10756523.html
Copyright © 2020-2023  润新知