Cassandra简介(概念篇)

什么是Cassandra

Apache Cassandra是一个高度可扩展的高性能分布式数据库,用于处理大量商用服务器上的大量数据,提供高可用性,无单点故障。这是一种NoSQL类型的数据库。无单点故障。
单点故障:是指系统中一点失效,就会让整个系统无法运作的部件,换句话说,单点故障即会整体故障。
NoSQL 数据库:提供一种机制来存储和检索数据,而不是关系数据库中使用的表格关系。这些数据库是无架构的,支持简单的复制,具有简单的API,最终一致,并且可以处理大量的数据。

Cassandra具有什么特点/特性

弹性可扩展性:允许添加更多的硬件以适应更多的客户和更多的数据根据要求。
始终基于架构:没有单点故障,它可以连续用于不能承担故障的关键业务应用程序。
快速线性性能:增加集群中的节点数量增加你的吞吐量。因此,保持一个快速的响应时间。
灵活的数据存储:包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构。
便捷的数据分发:通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。
事务支持:支持属性,如原子性,一致性,隔离和持久性(ACID)。
快速写入

Cassandra 架构

设计目的是处理跨多个节点的大数据工作负载,而没有任何单点故障。Cassandra在其节点之间具有对等分布式系统,并且数据分布在集群中的所有节点之间。

  • 集群中的所有节点都扮演相同的角色。 每个节点是独立的,并且同时互连到其他节点。
  • 集群中的每个节点都可以接受读取和写入请求,无论数据实际位于集群中的何处。
  • 当节点关闭时,可以从网络中的其他节点提供读/写请求。

组件

节点:存储数据的地方。
数据中心:相关节点的集合。
集群:包含一个或多个数据中心的组件。
提交日志:崩溃恢复机制。每个写操作都写入提交日志。
Mem-表:是存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。
SSTable:磁盘文件,当其内容达到阈值时,数据从mem表中刷新。
布隆过滤器:这些只是快速,非确定性的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。 每次查询后访问Bloom过滤器。
在这里插入图片描述

写操作

节点的每个写入活动都由写在节点中的提交日志捕获。稍后数据将被捕获并存储在存储器表中。每当内存表满时,数据将写入SStable数据文件。所有写入都会在整个集群中自动分区和复制。Cassandra会定期整合SSTables,丢弃不必要的数据。
在这里插入图片描述

读操作

在读操作,Cassandra 从MEM-表得到的值,并检查过滤器以找到保存所需数据的相应的SSTable。
在这里插入图片描述

数据模型

集群(Cluster):Cassandra 数据库分布在几个一起操作的机器上。最外层容器被称为群集。对于故障处理,每个节点包含一个副本,如果发生故障,副本将复制。Cassandra 按照环形格式将节点排列在集群中,并为它们分配数据。
键空间 (Keyspace)
键空间是 Cassandra 中数据的最外层容器。Cassandra 中的一个键空间的基本属性是:

  • 复制因子:它是集群中将接收相同数据副本的计算机数。
  • 副本放置策略:它只是把副本放在介质中的策略。我们有简单策略(机架感知策略),旧网络拓扑策略(机架感知策略)和网络拓扑策略(数据中心共享策略)等策略。
  • 列族:键空间是一个或多个列族的列表的容器。列族又是一个行集合的容器。每行包含有序列。列族表示数据的结构。每个键空间至少有一个,通常是许多列族。
    创建键空间的语法
CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};

列族:
列族是有序收集行的容器。每一行又是一个有序的列集合。
列族具有以下属性:

  • keys_cached:它表示每个 SSTable 保持缓存的位置数。
  • rows_cached:它表示其整个内容将在内存中缓存的行数。
  • preload_row_cache:它指定是否要预先填充行缓存。
    - 与不是固定列族的模式的关系表不同,Cassandra 不强制单个行拥有所有列。
    在这里插入图片描述
    :
    列是 Cassandra 的基本数据结构,具有三个值,即键或列名称,值和时间戳。下面给出了列的结构。
    在这里插入图片描述
    超级列:
    超级列是一个特殊列,因此,它也是一个键值对。但是超级列存储了子列的地图。
    通常列族被存储在磁盘上的单个文件中。因此,为了优化性能,重要的是保持您可能在同一列族中一起查询的列,并且超级列在此可以有所帮助。下面是超级列的结构。
    在这里插入图片描述
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值