Cassandra 简明教程

Cassandra - Introduction

Apache Cassandra 是一款可高度扩展的高性能分布式数据库,旨在处理大量数据和众多商品服务器,为高可用性提供单一故障点支持。它是一种 NoSQL 数据库。我们首先需要了解 NoSQL 数据库的作用。

NoSQLDatabase

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

NoSQL 数据库的主要目的是:

  1. simplicity of design,

  2. horizontal scaling, and

  3. finer control over availability.

与关系数据库相比,NoSQL 数据库使用不同的数据结构。这使得部分操作在 NoSQL 中更快。特定 NoSQL 数据库的适用性取决于其必须解决的问题。

NoSQL vs. Relational Database

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

Relational Database

NoSql Database

Supports powerful query language.

支持非常简单的查询语言。

它有一个固定的模式。

No fixed schema.

遵循 ACID(原子性、一致性、隔离性和耐用性)。

只“最终一致”。

Supports transactions.

Does not support transactions.

除 Cassandra 外,我们还有以下几种颇为流行的 NoSQL 数据库 −

  1. Apache HBase − HBase 是一个开源、非关系、分布式数据库,以 Google 的 BigTable 为模型,并使用 Java 编写。该数据库是作为 Apache Hadoop 项目的一部分开发的,它运行在 HDFS 之上,为 Hadoop 提供类似 BigTable 的能力。

  2. MongoDB − MongoDB 是一个跨平台文档导向数据库系统,避免使用传统的基于表格的关系数据库结构,而采用类似 JSON 的动态模式文档,从而让某些类型应用程序中的数据集成变得更容易、更快速。

What is Apache Cassandra?

Apache Cassandra 是一个开源、分布式且分散/分布式存储系统(数据库),用于管理分布在世界各地的海量结构化数据。它提供高度可用服务,没有单一故障点。

以下是有关 Apache Cassandra 的一些值得注意的要点 −

  1. 它可扩展、具有容错能力且始终如一。

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

  3. 它的分布式设计基于 Amazon 的 Dynamo,而其数据模型则基于 Google 的 Bigtable。

  4. 它由 Facebook 创建,与关系数据库管理系统有很大不同。

  5. Cassandra 实现了一个 Dynamo 风格的复制模型,没有单一故障点,但添加了一个更强大的“列族”数据模型。

  6. Facebook、Twitter、Cisco、Rackspace、ebay、Twitter、Netflix 等一些大公司都在使用 Cassandra。

Features of Cassandra

Cassandra 因为其出色的技术特性而变得如此流行。下面是 Cassandra 的一些特性:

  1. Elastic scalability - Cassandra 具有高度可扩展性;它允许添加更多硬件以根据要求容纳更多客户和更多数据。

  2. Always on architecture - Cassandra 没有单点故障点,而且可以连续为重大业务应用程序服务,这些应用程序无法承受故障。

  3. Fast linear-scale performance - Cassandra 是线性可扩展的,即随着集群中节点数量的增加,其吞吐量也会增加。因此,它保持了快速的响应时间。

  4. Flexible data storage - Cassandra 支持所有可能的数据格式,包括:结构化、半结构化和非结构化。它可以根据您的需要,动态地适应数据结构中的更改。

  5. Easy data distribution - Cassandra 提供了通过在多个数据中心复制数据来灵活分发数据的位置。

  6. Transaction support - Cassandra 支持原子性、一致性、隔离性和耐久性 (ACID) 等属性。

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

History of Cassandra

  1. Cassandra 是在 Facebook 开发的,用于收件箱搜索。

  2. 2008 年 7 月,Facebook 开源了它。

  3. Cassandra 在 2009 年 3 月被接受进入 Apache Incubator。

  4. 自 2010 年 2 月以来已成为 Apache 顶级项目。