Ⅰ、数据模型

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
    只保存需要的数据,不必拘泥于之前定义的表结构

Cassandra数据模型的更多相关文章

  1. Cassandra 数据模型 (基于CQL,解决胖列数量限制及灵活性问题)(1.1及以上版本)

    文中主要交代Cassandra的编程模型及数据结构. 由于Cassandra版本数次更新,网上中文的资料已经有点过时,比较有代表性的比如ebuy那篇文章都已经过时了,于是自己找资料,结合官方博客写一篇 ...

  2. Cassandra 数据模型

    Cassandra的数据模型类似于关系型数据库的模型,且提供了与SQL语言非常类似的CQL语言进行操作. 但是Cassandra的数据模型类似于多层键值对结构,与关系型数据库存在巨大差别. 本文基于: ...

  3. Cassandra数据模型和模式(Schema)的配置检查

    免责声明 本文档提供了有关DataStax Enterprise(DSE)和Apache Cassandra的常规数据建模和架构配置建议.本文档需要DSE / Cassandra基本知识.它不能代替官 ...

  4. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  5. [转载] Cassandra入门 框架模型 总结

    转载自http://asyty.iteye.com/blog/1202072 一.Cassandra框架二.Cassandra数据模型 Colum / Colum Family, SuperColum ...

  6. 开源软件:NoSql数据库 - 图数据库 Cassandra

    转载原文:http://www.cnblogs.com/loveis715/p/5299495.html Cassandra简介 在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了 ...

  7. Cassandra标准列和超级列

    列(column)是Cassandra数据模型中的最基本的数据结构单元.列是一个由列名(key).值(value).时间戳(timestamp)构成的三元组.在关系型数据库中,你需要先定义列的名称和和 ...

  8. Cassandra基础

    Apache Cassandra特性 Apache Cassandra由Facebook基于Amazon的Dynamo及其在Google的Bigtable上的数据模型设计开发的面相列的数据库,实现没有 ...

  9. Cassandra 的数据存储结构——本质是SortedMap<RowKey, SortedMap<ColumnKey, ColumnValue>>

    Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型.它借鉴了 Amazon 的 Dynamo 和 Google's BigTab ...

随机推荐

  1. Kotlin 检查空类型

    Kotlin 会检查你定义的非空类型 如果运行过程中被赋空值了  会直接crash

  2. monkeyrunner环境配置

    1.安装JDK.android  SDK.Python (安装完成后,配置环境变量:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANDROID_HOME%\platfor ...

  3. android:shape 设置圆形

    组件高度和宽度设置为相同的值即可<?xml version="1.0" encoding="utf-8"?><shape xmlns:andr ...

  4. 题解-CodeChef IOPC14L Sweets Problem

    Problem CodeChef-IOPC14L 题目概要:给定 \(n\) 种糖果且给定每种糖果的数量 \(A_i\),\(Q\) 组询问,每次问选出 \(S\) 个糖果的方案数(模\(10^9+7 ...

  5. 【easy】118.119.杨辉三角

    这题必会啊!!! 第一题118. class Solution { public: vector<vector<int>> generate(int numRows) { ve ...

  6. OpenCV-Python教程9-平滑图像

    先解释一个单词 blur:使...模糊不清 滤波与模糊 滤波和模糊都属于卷积,不同的滤波方法之间只是卷积核不同(对线性滤波而言) 低通滤波器是模糊,高通滤波器是锐化 低通滤波器允许低频信号通过,在图像 ...

  7. django第三天

    从后台传入一层的字典数据 后台代码 前台代码一 浏览器结果 前台代码二 前台代码三 前台代码四 注意 默认遍历为KEY .values    .keys   .items 都不加括号

  8. IntelliJ IDEA 中的Java程序目录结构

    --src 应用程序源代码与测试代码的根目录 --main 应用程序代码的源目录 --java 源代码 --resources 项目用到的资源文件 --test 测试程序代码的源目录 --java 测 ...

  9. 2018-2019-1 20189201 《LInux内核原理与分析》第六周作业

    希望是美好的 但仅仅是所想 一.书本第五章知识总结[系统调用的三层机制(下)] 深入理解系统调用的过程 system_call并不是一个普通的函数,只是一段汇编代码的起点,且内部没有严格遵守函数调用堆 ...

  10. 2019-2-14sql server数据库模糊查询语句

    sql server数据库模糊查询语句   确切匹配: select * from hs_user where ID=123 模糊查询 select * from hs_user where ID l ...