Cassandra - 简介


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

NoSQL数据库

NoSQL 数据库(有时称为 Not Only SQL)是一种提供存储和检索数据而不是关系数据库中使用的表格关系的机制的数据库。这些数据库是无模式的,支持轻松复制,具有简单的API,最终一致,并且可以处理大量数据。

NoSQL 数据库的主要目标是

  • 设计简单,
  • 水平缩放,以及
  • 更好地控制可用性。

与关系数据库相比,NoSql 数据库使用不同的数据结构。它使 NoSQL 中的某些操作更快。给定 NoSQL 数据库的适用性取决于它必须解决的问题。

NoSQL 与关系数据库

下表列出了关系数据库与 NoSQL 数据库的区别点。

关系型数据库 NoSql数据库
支持强大的查询语言。 支持非常简单的查询语言。
它有一个固定的模式。 没有固定的模式。
遵循 ACID(Atomics性、一致性、隔离性和持久性)。 这只是“最终一致”。
支持交易。 不支持交易。

除了 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 支持Atomics性、一致性、隔离性和持久性 (ACID) 等属性。

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

Cassandra的历史

  • Cassandra 是 Facebook 为收件箱搜索而开发的。
  • 它于 2008 年 7 月由 Facebook 开源。
  • Cassandra 于 2009 年 3 月被 Apache 孵化器接纳。
  • 自 2010 年 2 月起,它被列为 Apache 顶级项目。