Cassandra基础
Apache Cassandra特性
Apache Cassandra由Facebook基于Amazon的Dynamo及其在Google的Bigtable上的数据模型设计开发的面相列的数据库,实现没有单点故障的Dynamo风格的复制模型和强大的“列族”数据模型,提供高可用性和最终一致性。
1、弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。
2、始终基于架构 - Cassandra没有单点故障,它可以连续用于不能承担故障的关键业务应用程序。
3、快速线性性能 - Cassandra是线性可扩展性的,即它为你增加集群中的节点数量增加你的吞吐量。因此,保持一个快速的响应时间。
4、灵活的数据存储 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构。
5、便捷的数据分发 - Cassandra通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。
6、事务支持 - Cassandra支持属性,如原子性,一致性,隔离和持久性(ACID)。
7、写入 - Cassandra被设计为在廉价的商品硬件上运行。 它执行快速写入,并可以存储数百TB的数据,而不牺牲读取效率。
Cassandra节点节点
Cassandra的设计目的就是通过多个数据节点实现大数据工作负载,并通过在多个数据节点保存数据副本来解决单点故障,群集中所有节点之间对等,数据分布在群集所有节点上。
1、所有群集节点角色相同且相互独立,能同时互联到其他节点。
2、所有群集节点都可以接受读取和写入请求
3、当某群集节点关闭时,可以通过其他群集节点读取与该节点数据相同的副本。
4、当新增或移除群集节点后,群集会自动进行数据均衡 PS1: 当某节点性能不足时,可以暂停该节点不接受读写请求。
===========================================================
Cassandra数据模型
群集(Cluster)
|---群集节点(Cluster Node)
|---键空间(Keyspace)
|---列族(Column Famliy)
|---普通列(Column)
|---超级列(Super Column)
|--子列(subColumn)
群集(Cluster)是Cassandra数据模型中最外层,包含多个群集节点,对外提供服务
群集节点(Cluster Node)用来存储数据副本,群集中所有节点功能相同。
键空间(Keyspace)是数据的最外层容器,一个键空间可用包含多个列族(Column Family)一个键空间包含以下基本属性:
1、复制因子,设置在群集中存储多少份数据副本
2、副本放置策略,设置数据副本与数据中心和机架的关系
列族(Column Family)是有序收集行的容器,每行又是一个有序的列聚合,在Cassandra中可以随时向列族中添加列,且不要求每行记录包含所有列。
Cassandra数据模型中列分为普通列和超级列:
普通列包含三个属性:键(name)\值(value)\时间戳(clock),其存储结构为:
超级列是一个特殊列,其存储的是子列的map,其存储结构为:
===========================================================
分区键和群集键
在Cassandra中主键可分为两类:
1、单列主键
2、符合主键 对于单列主键,该主键即分区键(Partition Key)。
对于符合主键,主键的第一部分为分区键(Partition Key),第二部分为群集键(Clustering Key)。 分区键(Partition Key)决定数据位于哪个分区,而群集键(Clustering Key)决定相同分区上的数据如何排序。 对于表:
CREATE TABLE DemoTable
(
C1 INT,
C2 INT,
C3 INT,
C4 INT,
data text,
PRIMARY KEY((C1,C2), C3,C4)
);
则C1+C2作为分区键,然后同一分区中数据按照C3和C4进行排序。
===========================================================
Cassandra的数据模型和RDBMS的数据模型的区别:
==========================================================
摘抄自:https://www.w3cschool.cn/cassandra/
==========================================================
Cassandra基础的更多相关文章
- Cassandra基础3
cassandra读性能优化:1.禁用read repair每次读操作,无论读请求设置读一个节点还是多个节点,cassandra返回给客户端最新的数据后,都会后台对比所有副本的数据并对差异数据进行修复 ...
- Cassandra基础2
========================================================= gossip协议1.点对点(peer to perr)的网络通信协议,节点间地位相同 ...
- 使用DataStax Java驱动程序的最佳实践
引言 如果您想开始建立自己的基于Cassandra的Java程序,欢迎! 也许您已经参加过我们精彩的DataStax Academy课程或开发者大会,又或者仔细阅读过Cassandra Java驱动的 ...
- 技术基础 | 监测Apache Cassandra的简明方式——MCAC
点击这里在GitHub上访问我们,以便深入了解DataStax的开源项目--Apache Cassandra指标收集器(Metric Collector for Apache Cassandra, o ...
- 技术基础 | Cassandra RBAC助你打击“虚拟海盗”,让他们对数据“战利品”望而不得
现如今,我们称虚拟世界里的海盗们为"黑客",他们所追寻的战利品就是在你数据库某处的数据. 而我们能够保证你的数据安全的工具之一,就是"Cassandra基于角色的访问 ...
- 技术基础 | Apache Cassandra 4.0基准测试
Apache Cassandra 4.0已经发布了Beta版,这是第一个支持JDK 11及更高JDK版本的Cassandra版本. 时延对于Apache Cassandra用户来说是个显而易见的关 ...
- 技术基础 | 在Apache Cassandra中改变VNodes数量的影响
Apache Cassandra中num_tokens的默认值在4.0版本中将会有变化!这看起来好像只是在CHANGES.txt文件中做了个小小的改动,但实际上这个改动将会对集群的日常运维有着深远的影 ...
- sstable, bigtable,leveldb,cassandra,hbase的lsm基础
先看懂文献1和2 1. 先了解sstable.SSTable: Sorted String Table [2] [10] WiscKey: 类似myisam, key value分离, 根据ssd优 ...
- 技术基础 | 改进版的Apache Cassandra客户端请求路由
最近我们在客户端的驱动程序中引入了一些变更,这些变更会影响传入的请求在Apache Cassandra集群内的分发方式. 新的默认负载均衡算法即将随驱动程序推出,这些算法将有助于缩短长尾延迟,并提 ...
随机推荐
- jQuery操错题积累
1: 解析: onBlur:焦点移除事件. onfocus:定义和用法 onfocus 事件在对象获得焦点时发生 onchange:定义和用法 onchange 事件会在域的内容改变时发生 nclic ...
- 【Ctrl】 + 【Alt】 + 【F1~F6】 和 【Ctrl】 + 【Alt】 + 【T】打开的终端有什么不同?
ctrl +alt +Fn 打开的是模拟终端,简单说来,Linux系统一开机会自动打开6个模拟终端,然后自动切换到其中一个(一般来说是切换到图形界面的那个也就是说窗口管理器是在这6个模拟终端中运行的) ...
- Android system :led_class驱动
一.代码: leds_4412.c #include <linux/kernel.h> #include <linux/module.h> #include <linux ...
- SQL-5查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
输出描述: 题目描述 查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工CREATE TABLE `dept_emp` (`emp_ ...
- 矩震级Mw与地震矩M0的换算关系
矩震级实质上就是用地震矩来描述地震的大小.地震矩是震源的等效双力偶中的一个力偶的力偶矩,是继地震能量后的第二个关于震源定量的特征量,一个描述地震大小的绝对力学量,单位为N.m(牛.米),其表达式为: ...
- C点滴成海----函数声明、函数定义、函数原型
一.函数声明 1.格式 函数体去掉函数定义中的内容再加上分号,如下所示: 返回值类型 函数名( 类型 形参, 类型 形参… ); 返回值类型 函数名( 类型, 类型…); 2.特点 函数声明只是对编译 ...
- Beta阶段冲刺---Day2
一.Daily Scrum Meeting照片 二.今天冲刺情况反馈 1.昨天已完成的工作· 题目切换的改进· 支持退格操作 2.今天计划完成的工作· 数字以扑克牌的形式给出· 答案的乘除符号与游戏中 ...
- Visio 安装
网上下载了光盘镜像文件,点击setup 安装,但是弹出来说少了文件,,msxml6,,,什么一大串,, 在网上下载了一个文件,,就可以用了,,,MicrosoftFixit50927.msi
- 堆&栈
Java内存分为两种:堆内存和栈内存. 一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间.堆内存用于存放由new创建的对象和 ...
- Spring Boot 揭秘与实战 源码分析 - 工作原理剖析
文章目录 1. EnableAutoConfiguration 帮助我们做了什么 2. 配置参数类 – FreeMarkerProperties 3. 自动配置类 – FreeMarkerAutoCo ...