Cassandra 1
Cassandra 架构
Cassandra的设计目的是处理跨多个节点的大数据工作负载,而没有任何单点故障
Cassandra中的数据复制:
集群中的一个或多个节点充当给定数据片段的副本。如果检测到一些节点以过期值响应,Cassandra将向客户端返回最近的值。返回最新的值后,Cassandra在后台执行读修复以更新失效值。
Cassandra在后台使用Gossip协议,允许节点相互通信并检测集群中的任何故障节点。
Cassandra的组件
节点 - 它是存储数据的地方。
数据中心 - 它是相关节点的集合。
集群 - 集群是包含一个或多个数据中心的组件。
提交日志 - 提交日志是Cassandra中的崩溃恢复机制。每个写操作都写入提交日志。
Mem-表 - mem-表是存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。
SSTable - 它是一个磁盘文件,当其内容达到阈值时,数据从mem表中刷新。
布隆过滤器 - 这些只是快速,非确定性的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。 每次查询后访问Bloom过滤器
Cassandra 查询语言
用户可以使用Cassandra查询语言(CQL)通过其节点访问Cassandra。CQL将数据库(Keyspace)视为表的容器
Cassandra 数据模型
集群(Cluster)
Cassandra 数据库分布在几个一起操作的机器上。最外层容器被称为群集。对于故障处理,每个节点包含一个副本,如果发生故障,副本将复制。Cassandra 按照环形格式将节点排列在集群中,并为它们分配数据。
键空间 (Keyspace)
键空间是 Cassandra 中数据的最外层容器。Cassandra 中的一个键空间的基本属性是 -
复制因子 - 它是集群中将接收相同数据副本的计算机数。
副本放置策略 - 它只是把副本放在介质中的策略。我们有简单策略(机架感知策略),旧网络拓扑策略(机架感知策略)和网络拓扑策略(数据中心共享策略)等策略。
列族 - 键空间是一个或多个列族的列表的容器。列族又是一个行集合的容器。每行包含有序列。列族表示数据的结构。每个键空间至少有一个,通常是许多列族。
CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
列族
列族是有序收集行的容器。每一行又是一个有序的列集合。下表列出了区分列系列和关系数据库表的要点。
关系表 | Cassandra 列族 |
---|---|
关系模型中的模式是固定的。 一旦为表定义了某些列,在插入数据时,在每一行中,所有列必须至少填充一个空值。 |
在 Cassandra 中,虽然定义了列族,但列不是。 您可以随时向任何列族自由添加任何列。 |
关系表只定义列,用户用值填充表。 | 在 Cassandra 中,表包含列,或者可以定义为超级列族。 |
Cassandra 列族具有以下属性 -
keys_cached - 它表示每个 SSTable 保持缓存的位置数。
rows_cached - 它表示其整个内容将在内存中缓存的行数。
preload_row_cache -它指定是否要预先填充行缓存。
列是 Cassandra 的基本数据结构,具有三个值,即键或列名称,值和时间戳。下面给出了列的结构
Cassandra 和 RDBMS 的数据模型
RDBMS | Cassandra |
---|---|
RDBMS 处理结构化数据。 | Cassandra 处理非结构化数据。 |
它具有固定的模式。 | Cassandra 具有灵活的架构。 |
在 RDBMS 中,表是一个数组的数组。 (ROW x COLUMN) | 在 Cassandra 中,表是“嵌套的键值对”的列表。 (ROW x COLUMN 键 x COLUMN 值) |
数据库是包含与应用程序对应的数据的最外层容器。 | Keyspace 是包含与应用程序对应的数据的最外层容器。 |
表是数据库的实体。 | 表或列族是键空间的实体。 |
Row 是 RDBMS 中的单个记录。 | Row 是 Cassandra 中的一个复制单元。 |
列表示关系的属性。 | Column 是 Cassandra 中的存储单元。 |
RDBMS 支持外键的概念,连接。 | 关系是使用集合表示。 |
Cassandra 1相关推荐
- Cassandra 1.2 发布,NoSQL 数据库
NoSQL 数据库 Cassandra 发布 1.2 正式版,该版本包含 CQL3,这是在 2012年4月发布的 1.1 版本中引入的.CQL 是一个 Cassandra 的建模和查询语言,类似关系数 ...
- Cassandra安装测试
说明,本人成功安装过程记录 只要看解压目录的readme.txt即可,其他网上教程由于版本不对会执行报错,例如遇到编码问题 #wget http://www.apache.org/dyn/cl ...
- cassandra命令
压力测试:cassandra-stress [command] -node [nodes] -mode thrift user=[user] password=[password] example: ...
- 在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene
一.项目前提步骤 1>.创建键空间 CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 're ...
- Cassandra数据模型设计最佳实践
2019独角兽企业重金招聘Python工程师标准>>> 本文是Cassandra数据模型设计第一篇(全两篇),该系列文章包含了eBay使用Cassandra数据模型设计的一些实践.其 ...
- Cassandra 可视化工具
2019独角兽企业重金招聘Python工程师标准>>> 最近开始接触Cassandra,这些天在cassandra的wiki发现了一些可视化工具的推荐.现在也把这个链接推荐给大家:h ...
- Cassandra读写性能测试
1. 测试目的 测试Cassandra集群读写TPS的极值,确定Cassandra读写性能. 2. 测试环境 2.1 硬件信息 CPU 8核 Intel(R) Xeon(R) CPU E5-2650 ...
- 读过本文才算真正了解Cassandra数据库
来自:DBAplus社群 作者介绍 宇文湛泉,现任金融行业核心业务系统DBA,主要涉及Oracle.DB2.Cassandra等数据库开发工作. Cassandra数据库,值得介绍的技术细节其实挺多的 ...
- 利用Kafka和Cassandra构建实时异常检测实验
导言 异常检测是一种跨行业的方法,用于发现事件流中的异常事件 - 它适用于物联网传感器,财务欺诈检测,安全性,威胁检测,数字广告欺诈以及许多其他应用程序.此类系统检查流数据以检查异常或不规则,并在检测 ...
- cassandra mysql_cassandra命令行操作
查看cqlsh命令帮助 root@sitewhere-cassandra-0:/# cqlsh --help Usage: cqlsh.py [options] [host [port]] CQL S ...
最新文章
- MPlayer在ARM上的移植(S5PV210开发板)
- 如何调用DLL (基于Visual C++6.0的DLL编程实现)
- 再次强调事件绑定中this的坑
- vant 动态 粘性布局_CSS Viewport 单位,很多人还不知道使用它来快速布局!
- 游戏服务器架构-设计模式之观察者模式和发布订阅模式真的一样吗?
- 汇顶科技2021秋招笔试
- ReentrantLock类源码解析
- js 数字格式化,只能输入正负整数,小数
- 人物-李彦宏:李彦宏
- 项目:心肺复苏按压仪+沁恒赤兔ch32v307+嵌入式开发
- 京东商城API 商品详情接口
- Android 3G/4G流量上网原理简析
- PHP调用系统声卡,什么是声卡
- 13. Redis底层实现 List
- Windows11之Vim超详细下载安装与使用教程
- Pycharm 报错Out of Memory 然后一直闪退(已解决)
- 近代物理实验 光泵磁共振 原理 数据 思考题
- c语言结账程序设计,c语言餐饮结账管理系统设计.doc
- RFM客户价值分类模型应用
- Allegro封装的制作