Cassandra-基础学习

Posted on 2020-09-17 21:52  MissRong  阅读(217)  评论(0)    收藏  举报

Cassandra基础学习

参考资料:https://www.w3cschool.cn/cassandra/

如果已经用到了Hadoop-HBase就用到HBase

除此之外,如果对读写没什么要求就用MongoDB,因为MongoDB处于越来越火的状态。

如果对写有很大的要求,最好用Cassandra,因为他写的性能非常高

一、Cassandra 简介

Apache Cassandra是一个高度可扩展的高性能分布式数据库,用于处理大量商用服务器上的大量数据,提供高可用性,无单点故障。这是一种NoSQL类型的数据库。 (Cassandra类似于一种HBase和MongoDB的结合体)

二、什么是Apache Cassandra?

Apache Cassandra是一个开源,分布式和分散式/分布式存储系统(数据库),用于管理遍布世界各地的大量结构化数据。它提供高可用性的服务,没有单点故障。

下面列出了Apache Cassandra的一些值得注意的地方:

它是可扩展,容错和一致的。

写入策略:写入一个节点之后需要等其他的节点都同步

它是一个面向列的数据库。

它的分布设计基于Amazon的Dynamo及其在Google的Bigtable上的数据模型。

创建在Facebook,它与关系数据库管理系统有很大的不同。

Cassandra实现了一个没有单点故障的Dynamo风格的复制模型,但增加了一个更强大的“列族”数据模型。

Cassandra被一些最大的公司使用,如Facebook,Twitter,Cisco,Rackspace,ebay,Netflix等。(但是这些大公司也逐渐将Cassandra替换掉了,因为使用过程中会出现一些问题,但是他写的性能是非常好的)

三、Cassandra的特点

Cassandra因其卓越的技术特性而变得如此受欢迎。

下面给出了Cassandra的一些特性:

弹性可扩展性 Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。

始终基于架构 - Cassandra没有单点故障,它可以连续用于不能承担故障的关键业务应用程序。

快速线性性能 - Cassandra是线性可扩展性的,即它为你增加集群中的节点数量增加你的吞吐量。因此,保持一个快速的响应时间。

灵活的数据存储 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构。

便捷的数据分发 - Cassandra通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。

事务支持 - Cassandra支持属性,如原子性,一致性,隔离和持久性(ACID)。

快速写入 - Cassandra被设计为在廉价的商品硬件上运行。 它执行快速写入,并可以存储数百TB的数据,而不牺牲读取效率

四、Cassandra的组件

Cassandra的关键组件如下:

节点 - 它是存储数据的地方。

数据中心 - 它是相关节点的集合。

集群 - 集群是包含一个或多个数据中心的组件。

提交日志 - 提交日志是Cassandra中的崩溃恢复机制。每个写操作都写入提交日志。

Mem-表 - mem-表是存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。

SSTable - 它是一个磁盘文件,当其内容达到阈值时,数据从mem表中刷新。

布隆过滤器 - 这些只是快速,非确定性的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。 每次查询后访问Bloom过滤器

五、Cassandra 查询语言

用户可以使用Cassandra查询语言(CQL)通过其节点访问Cassandra。

CQL将数据库(Keyspace)视为表的容器。 

程序员使用cqlsh:提示以使用CQL或单独的应用程序语言驱动程序。

客户端针对其读写操作访问任何节点。

该节点(协调器)在客户端和保存数据的节点之间播放代理。

六、写操作

节点的每个写入活动都由写在节点中的提交日志捕获。

稍后数据将被捕获并存储在存储器表中。

每当内存表满时,数据将写入SStable数据文件。

所有写入都会在整个集群中自动分区和复制。

Cassandra会定期整合SSTables,丢弃不必要的数据。

七、读操作

在读操作,Cassandra 从MEM-表得到的值,并检查过滤器绽放找到保存所需数据的相应的SSTable。

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3