Cassandra 简明教程
Cassandra - Introduction
Apache Cassandra 是一款可高度扩展的高性能分布式数据库,旨在处理大量数据和众多商品服务器,为高可用性提供单一故障点支持。它是一种 NoSQL 数据库。我们首先需要了解 NoSQL 数据库的作用。
NoSQLDatabase
NoSQL 数据库(有时称为 Not Only SQL)是一种除关系数据库中使用的表格关系以外,提供存储和检索数据机制的数据库。这些数据库是无模式的,支持简单的复制、提供简单的 API,最终一致且可处理海量数据。
NoSQL 数据库的主要目的是:
-
simplicity of design,
-
horizontal scaling, and
-
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 数据库 −
-
Apache HBase − HBase 是一个开源、非关系、分布式数据库,以 Google 的 BigTable 为模型,并使用 Java 编写。该数据库是作为 Apache Hadoop 项目的一部分开发的,它运行在 HDFS 之上,为 Hadoop 提供类似 BigTable 的能力。
-
MongoDB − MongoDB 是一个跨平台文档导向数据库系统,避免使用传统的基于表格的关系数据库结构,而采用类似 JSON 的动态模式文档,从而让某些类型应用程序中的数据集成变得更容易、更快速。
What is Apache Cassandra?
Apache Cassandra 是一个开源、分布式且分散/分布式存储系统(数据库),用于管理分布在世界各地的海量结构化数据。它提供高度可用服务,没有单一故障点。
以下是有关 Apache Cassandra 的一些值得注意的要点 −
-
它可扩展、具有容错能力且始终如一。
-
它是一个面向列的数据库。
-
它的分布式设计基于 Amazon 的 Dynamo,而其数据模型则基于 Google 的 Bigtable。
-
它由 Facebook 创建,与关系数据库管理系统有很大不同。
-
Cassandra 实现了一个 Dynamo 风格的复制模型,没有单一故障点,但添加了一个更强大的“列族”数据模型。
-
Facebook、Twitter、Cisco、Rackspace、ebay、Twitter、Netflix 等一些大公司都在使用 Cassandra。
Features of Cassandra
Cassandra 因为其出色的技术特性而变得如此流行。下面是 Cassandra 的一些特性:
-
Elastic scalability - Cassandra 具有高度可扩展性;它允许添加更多硬件以根据要求容纳更多客户和更多数据。
-
Always on architecture - Cassandra 没有单点故障点,而且可以连续为重大业务应用程序服务,这些应用程序无法承受故障。
-
Fast linear-scale performance - Cassandra 是线性可扩展的,即随着集群中节点数量的增加,其吞吐量也会增加。因此,它保持了快速的响应时间。
-
Flexible data storage - Cassandra 支持所有可能的数据格式,包括:结构化、半结构化和非结构化。它可以根据您的需要,动态地适应数据结构中的更改。
-
Easy data distribution - Cassandra 提供了通过在多个数据中心复制数据来灵活分发数据的位置。
-
Transaction support - Cassandra 支持原子性、一致性、隔离性和耐久性 (ACID) 等属性。
-
Fast writes - Cassandra 被设计为在廉价商品硬件上运行。它可以执行极快的写入并可以存储数百 TB 的数据,而不会牺牲读取效率。