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 顶级项目。