Cassandra的数据模型
Cassandra的数据模型可以理解为嵌套的Map,在Cassandra中数据类型主要有四种:Column,SuperColumn,ColumnFamily,Keyspace。下面分别介绍这几种类型。
Column
Column是Cassandra中最小的数据单元,它是一个三元的数据类型,包括:name,value,timestamp。将一个Column使用JSON的形式表现出来,如下所示:
{
//this is a Column
name:"ysl",
value:"ysl@test.com"
timestamp:4654646546
}
在这里,name和value的类型都是Java中的byte[]。
SuperColumn
SuperColumn可以看做是由Column组成的数组,它包含一个name以及一些列相应的Column,我们将SuperColumn使用JSON的形式表现出来如下:
{
//this is a SuperColumn
name:"emails",
value:{
{
name:"ysl",
value:"ysl@test.com"
timestamp:4654646546
},
{
name:"ddd",
value:"ddd@test.com"
timestamp:4654646546
}
}
}
值得注意的是SuperColumn没有timestamp属性
ColumnFamily
ColumnFamily是一个包含许多Row的结构,可以将它想象为关系型数据库中的表。Row是由key以及key关联的Column组成的。下面的实例代表了一个ColumnFamily。
//this is a ColumnFamily
users = {
ysl:{//this is a key
{
name:"username",
value:"ysl",
timestamp:
},
{
name:"email",
value:"ysl@test.com",
timestamp:
},
{
name:"phone",
value:"",
timestamp:
}
},
ketty:{//this is a key
{
name:"username",
value:"ketty",
timestamp:
},
{
name:"email",
value:"ketty@test.com",
timestamp:
},
{
name:"phone",
value:"",
timestamp:
}
}
}
Keyspace
每一个Keyspace包含多个ColumnFamily,并且可以制定Keyspace的数据备份策略和数据的备份数。
一般来说,每一个Cassandra集群中有一个Keyspace就可以了,但是当集群足够庞大,并且业务足够的复杂的时候,就需要拆分为多个Keyspace了,比如说两个系统使用同一个Cassandra集群,一个数据的备份数要求是3,而另外一个数据备份数要求是5,这样就需要为每个系统单独创建一个Keyspace了。
Cassandra的数据模型的更多相关文章
- Cassandra的数据模型的理解
Cassandra属于NoSQL数据库,NoSQL和传统关系型数据库不同,NOSQL偏好数据冗余,因为NoSQL一般无法做表关联查询. (1) keySpace 基本上可以将Keyspa ...
- Cassandra 数据模型
Cassandra的数据模型类似于关系型数据库的模型,且提供了与SQL语言非常类似的CQL语言进行操作. 但是Cassandra的数据模型类似于多层键值对结构,与关系型数据库存在巨大差别. 本文基于: ...
- Cassandra 介绍
cassandra是一种NoSQL数据库,No是指No Relational.cassandra的数据模型结合了Dynamo的key/value和BigTable 的面向列的特点,主要被设计为存储大 ...
- 分布式 Key-Value 存储系统:Cassandra 入门
Apache Cassandra 是一套开源分布式 Key-Value 存储系统.它最初由 Facebook 开发,用于储存特别大的数据. Cassandra 不是一个数据库,它是一个混合型的非关系的 ...
- Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型
Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...
- Cassandra 学习笔记 - 1 - 关于Cassandra
摘要 - Cassandra 的历史 Cassandra能做什么 Apache Cassandra最早是Facebook为了改进他们的Inbox搜索功能,由Avanash Lakshman和Prash ...
- NoSql Cassandra
我们为什么要使用NOSQL非关系数据库? 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付web2.0网站,特别 ...
- Cassandra 和 Spark 数据处理一窥
Apache Cassandra 数据库近来引起了很多的兴趣,这主要源于现代云端软件对于可用性及性能方面的要求. 那么,Apache Cassandra 是什么?它是一种为高可用性及线性可扩展性优化的 ...
- Cassandra 的数据存储结构——本质是SortedMap<RowKey, SortedMap<ColumnKey, ColumnValue>>
Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型.它借鉴了 Amazon 的 Dynamo 和 Google's BigTab ...
随机推荐
- Loadrunner脚本回放无法准确定位欲删除元素
Loadrunner脚本回放无法准确定位欲删除元素 问题: loadrunner脚本回放无法准确定位欲删除元素 详细: 我司ocrm系统,我的工作台菜单->我的综合工作台子页面下,工作日志页面删 ...
- Mockplus推出真正无限制终身版,做原型就要一辈子!
如今提到原型工具,各位设计师和PM爸爸们一定不会对Mockplus感到陌生吧?事实上,从一开始的默默无闻,到在UXPA大赛上崭露头角,再到被Adobe XD 列为主要竞品,如今,摩客君已经在全球范围内 ...
- $.post 提示错误: Uncaught SyntaxError: Unexpected token :
$.post("addRecommond",{"productId":productId,"categoryCode":categoryCo ...
- cmd 命令阻塞继续执行下面的命令的办法
例如在dos下查询硬盘序列号: 首先输入:diskpart-->select disk 0--> detail disk. 如果要在java下面直接查询可以写成一个bat文件写成下面形式: ...
- memcached 连接本地问题
刚开始学memcache ,就遇到一个问题. telnet 127.0.0.1 11211 回车之后就什么都没有提示了.然后不管设置什么都是报error . 表示不知道如何解决!先写个文章记录下来 ...
- 2018.08.20 bzoj1143: [CTSC2008]祭祀river(最长反链)
传送门 一道简单的求最长反链. 反链简单来说就是一个点集,里面任选两个点u,v都保证从u出发到不了v且v出发到不了u. 链简单来说就是一个点集,里面任选两个点u,v都保证从u出发可以到达v或者v出发可 ...
- DataGrid组件
<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx=& ...
- 批处理(bat)的注释方法
前面两个批处理教程的转贴,写得实在是太好了,内容详实,语言风趣,举例清晰.说实话,原作者幽默的文风用来写 批处理教程,而不是写文学小说,实在是有些屈才,但这样优秀的教程,用在枯燥乏味的程序事业里,确实 ...
- 三)mybatis 二级缓存,整合ehcache
mybatis-config.xml <setting name="cacheEnabled" value="true" /> PersonMapp ...
- Wireshark数据包分析(一)——使用入门
Wireshark简介: Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一.在SecTools安全社区里颇受欢迎,曾一度超越Metasploit.Nessus.Aircrack ...