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
只保存需要的数据,不必拘泥于之前定义的表结构
Cassandra数据模型的更多相关文章
- Cassandra 数据模型 (基于CQL,解决胖列数量限制及灵活性问题)(1.1及以上版本)
文中主要交代Cassandra的编程模型及数据结构. 由于Cassandra版本数次更新,网上中文的资料已经有点过时,比较有代表性的比如ebuy那篇文章都已经过时了,于是自己找资料,结合官方博客写一篇 ...
- Cassandra 数据模型
Cassandra的数据模型类似于关系型数据库的模型,且提供了与SQL语言非常类似的CQL语言进行操作. 但是Cassandra的数据模型类似于多层键值对结构,与关系型数据库存在巨大差别. 本文基于: ...
- Cassandra数据模型和模式(Schema)的配置检查
免责声明 本文档提供了有关DataStax Enterprise(DSE)和Apache Cassandra的常规数据建模和架构配置建议.本文档需要DSE / Cassandra基本知识.它不能代替官 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- [转载] Cassandra入门 框架模型 总结
转载自http://asyty.iteye.com/blog/1202072 一.Cassandra框架二.Cassandra数据模型 Colum / Colum Family, SuperColum ...
- 开源软件:NoSql数据库 - 图数据库 Cassandra
转载原文:http://www.cnblogs.com/loveis715/p/5299495.html Cassandra简介 在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了 ...
- Cassandra标准列和超级列
列(column)是Cassandra数据模型中的最基本的数据结构单元.列是一个由列名(key).值(value).时间戳(timestamp)构成的三元组.在关系型数据库中,你需要先定义列的名称和和 ...
- Cassandra基础
Apache Cassandra特性 Apache Cassandra由Facebook基于Amazon的Dynamo及其在Google的Bigtable上的数据模型设计开发的面相列的数据库,实现没有 ...
- Cassandra 的数据存储结构——本质是SortedMap<RowKey, SortedMap<ColumnKey, ColumnValue>>
Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型.它借鉴了 Amazon 的 Dynamo 和 Google's BigTab ...
随机推荐
- mysql语句实战
请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 这个比较难, 3.查询平均成绩大于60分的同学的学号和平均成绩: 4.查 ...
- java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or.....
1,<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dia ...
- Ansible------角色
什么是角色 角色是一种解决问题的思想,也是一种规范. 目录 角色的目录结构如下: files: 存放由copy或script模块等调用的文件. templates: template模块查找所需要模板 ...
- Images corrections preview with lensfun 不同型号镜头预览图 828张 合集
lensfun 目前支持900多种镜头, 但是网上并没有预览图; 闲暇时间做了800多张预览图合集 下载地址 链接: https://pan.baidu.com/s/1crfhoKKZKnxntvNH ...
- Go学习之路
注:图片来自 https://github.com/gocn/knowledge, 更新在此,共勉前行者.
- nohup + & 保证服务后台运行不中断
nohup和&后台运行,进程查看及终止 1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输 ...
- const与#define相比有什么不同?
C++语言可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点:● const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对后者只进行字符 ...
- 如何给PDF设置全屏动画
PPT文件可以播放全屏,并且可以实现飞入.分割.闪烁等动画模式播放.那么PDF文件可以吗?我们想要给PDF文件加入动画效果应该怎么做呢,也有很多的小伙伴不知道该怎么把PDF文件切换为全屏动画模式想要知 ...
- windows上下载redis扩展
关于windows电脑上下载redis扩展,网站一搜一大把,但是我相信有很多小伙伴还是不知道这个扩展到底怎么下载.好了,现在我就用通俗易懂的话来告诉大家怎么下载安装这个redis扩展. 1.首先我们先 ...
- selenium执行JavaScript语句:控制滚动条 聚焦元素 改变下拉选项
1. 执行js脚本 控制滚动条 # http://www.cnblogs.com/yoyoketang/p/6128655.html In [347]: js = "window.scrol ...