Cassandra - 简介



Apache Cassandra 是一个高度可扩展、高性能的分布式数据库,旨在跨多个商品服务器处理大量数据,提供高可用性,且没有单点故障。它是一种 NoSQL 数据库。让我们首先了解一下 NoSQL 数据库的功能。

NoSQL 数据库

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 的显著特点:

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

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

  • 其分布式设计基于 Amazon 的 Dynamo,其数据模型基于 Google 的 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 为收件箱搜索而开发的。
  • 它于 2008 年 7 月由 Facebook 开源。
  • Cassandra 于 2009 年 3 月被纳入 Apache Incubator。
  • 自 2010 年 2 月起,它成为 Apache 的顶级项目。
广告