Apache Cassandra是一个高度可扩展的高性能分布式数据库,旨在处理许多商用服务器上的大量数据,提供高可用性而无单点故障.它是一种NoSQL数据库.让我们首先了解NoSQL数据库的用途.
NoSQLDatabase
NoSQL数据库(有时称为Not Only SQL)是一个提供存储和检索除关系数据库中使用的表格关系之外的数据的机制.这些数据库是无架构的,支持轻松复制,具有简单的API,最终一致,并且可以处理大量数据.
NoSQL数据库的主要目标是
设计简洁,
水平缩放,
更好地控制可用性.
与关系数据库相比,NoSql数据库使用不同的数据结构.它使NoSQL中的一些操作更快.给定NoSQL数据库的适用性取决于它必须解决的问题.
NoSQL与关系数据库
下表列出了区分的点来自NoSQL数据库的关系数据库.
关系数据库 | NoSql数据库 |
---|---|
支持强大的查询语言. | 非常支持简单的查询语言. |
它有一个固定的模式. | 没有固定的模式. |
遵循ACID(原子性,一致性,隔离性和耐久性). | 它只是"最终一致". |
支持交易. | 不支持交易. |
除了Cassandra,我们还有以下NoSQL数据库非常受欢迎和减去;
Apache HBase : HBase是一个开源的非关系型分布式数据库,以Google的BigTable为模型,用Java编写.它是作为Apache Hadoop项目的一部分开发的,运行在HDFS之上,为Hadoop提供类似BigTable的功能.
MongoDB : MongoDB是一个跨平台的面向文档的数据库系统,它避免使用传统的基于表的关系数据库结构,而使用动态模式来支持类似JSON的文档,从而使得在某些类型的应用程序中的数据集成变得更加容易和快捷.
什么是Apache Cassandra?
Apache Cassandra是一个开源,分布式和分散/分布式存储系统(数据库),用于管理遍布全球的大量结构化数据.它提供高可用性服务,没有单点故障.
下面列出的是Apache Cassandra的一些值得注意的点;<
它具有可扩展性,容错性和一致性.
这是一个面向列的数据库.
其分销设计基于亚马逊的Dynamo及其在Google Bigtable上的数据模型.
在Facebook上创建,它与关系数据库管理系统截然不同.
Cassandra实现了Dynamo风格的复制模型,没有单点故障,但增加了一个更强大的"列族"数据模型.
Cassandra被一些最大的公司使用,如Facebook,Twitter,Cisco,Rackspace,ebay,Twitter ,Netflix等.
Cassandra的特点
Cassandra因此而变得如此受欢迎其出色的技术特点.
下面给出了Cassandra的一些功能:
弹性可伸缩性&minus ; Cassandra具有很高的可扩展性;根据
的要求,它允许添加更多硬件以容纳更多客户和更多数据.始终在架构上&minus ; Cassandra没有单点故障,它可以持续用于无法承受故障的业务关键型应用程序.
快速线性规模性能 : Cassandra具有线性可扩展性,即随着您增加群集中的节点数量,它会增加吞吐量.因此,它可以保持快速的响应时间.
灵活的数据存储 : Cassandra适用于所有可能的数据格式,包括:结构化,半结构化和非结构化.它可以根据您的需要动态调整数据结构的变化.
简单的数据分发 : 通过跨多个数据中心复制数据,Cassandra可以灵活地在您需要的地方分发数据.
交易支持 : Cassandra支持Atomicity,Consistency,Isolation和Durability(ACID)等属性.
快速写入 : Cassandra旨在运行廉价商品硬件.它执行极快的写入并可以存储数百TB的数据,而不会牺牲读取效率.
Cassandra的历史
Cassandra是在Facebook开发的收件箱搜索.
它于2008年7月由Facebook开源.
Cassandra于2009年3月被Apache Incubator接受.
自2010年2月起,它成为了一个Apache顶级项目.