Cassandra - 简介
Apache Cassandra 是一种高度可扩展、高性能的分布式数据库,旨在处理跨多台商用服务器的大量数据,提供高可用性,没有单点故障。它是一种 NoSQL 数据库。让我们首先了解 NoSQL 数据库的作用。
NoSQLDatabase
NoSQL 数据库(有时称为不仅仅是 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,其数据模型基于谷歌的 Bigtable。
它由 Facebook 创建,与关系数据库管理系统截然不同。
Cassandra 实现了 Dynamo 风格的复制模型,没有单点故障,但增加了更强大的"列系列"数据模型。
Cassandra 被一些最大的公司使用,例如 Facebook、Twitter、Cisco、Rackspace、ebay、Twitter、Netflix 和更多。
Cassandra 的功能
Cassandra 之所以如此受欢迎,是因为它具有出色的技术特性。 下面给出了 Cassandra 的一些功能:
弹性可扩展性 − Cassandra 具有高度可扩展性;它允许根据需要添加更多硬件以容纳更多客户和更多数据。
始终在线架构 − Cassandra 没有单点故障,并且它持续可用于不能承受故障的业务关键型应用程序。
快速线性扩展性能 − Cassandra 具有线性可扩展性,即,随着您增加集群中的节点数,它会增加吞吐量。因此,它保持了快速的响应时间。
灵活的数据存储 − Cassandra 可容纳所有可能的数据格式,包括:结构化、半结构化和非结构化。它可以根据您的需要动态适应数据结构的更改。
轻松的数据分发 − Cassandra 通过在多个数据中心复制数据,提供了将数据分发到您需要的位置的灵活性。
事务支持 − Cassandra 支持原子性、一致性、隔离性和持久性 (ACID) 等属性。
快速写入 − Cassandra 旨在在廉价的商用硬件上运行。它的写入速度极快,可以存储数百 TB 的数据,而不会牺牲读取效率。
Cassandra 的历史
- Cassandra 是 Facebook 为收件箱搜索而开发的。
- Facebook 于 2008 年 7 月将其开源。
- Cassandra 于 2009 年 3 月被 Apache 孵化器接受。
- 自 2010 年 2 月起,它成为 Apache 顶级项目。