📜  Cassandra-简介

📅  最后修改于: 2020-12-02 06:11:41             🧑  作者: Mango


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

NoSQL数据库

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

NoSQL数据库的主要目标是拥有

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

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

NoSQL与关系数据库

下表列出了将关系数据库与NoSQL数据库区分开的要点。

Relational Database NoSql Database
Supports powerful query language. Supports very simple query language.
It has a fixed schema. No fixed schema.
Follows ACID (Atomicity, Consistency, Isolation, and Durability). It is only “eventually consistent”.
Supports transactions. Does not support transactions.

除了Cassandra,我们还有以下非常流行的NoSQL数据库-

  • Apache HBase -HBase是一个以Google的BigTable建模的开源,非关系,分布式数据库,并使用Java编写。它是Apache Hadoop项目的一部分,在HDFS之上运行,为Hadoop提供类似BigTable的功能。

  • MongoDB -MongoDB是一个跨平台的面向文档的数据库系统,它避免使用传统的基于表的关系数据库结构,而是使用具有动态模式的类似JSON的文档,从而使数据在某些类型的应用程序中的集成更加容易和快捷。

什么是Apache Cassandra?

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

以下列出了Apache Cassandra的一些值得注意的地方-

  • 它具有可伸缩性,容错性和一致性。

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

  • 其分发设计基于亚马逊的Dynamo及其在Google的Bigtable上的数据模型。

  • 它创建于Facebook,与关系数据库管理系统截然不同。

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

  • 一些大型公司(例如Facebook,Twitter,Cisco,Rackspace,ebay,Twitter,Netflix等)正在使用Cassandra。

卡桑德拉的特点

卡桑德拉(Cassandra)由于其出色的技术特性而变得如此受欢迎。以下是Cassandra的一些功能:

  • 弹性可扩展性– Cassandra具有高度可扩展性;它允许添加更多硬件,以根据需求容纳更多客户和更多数据。

  • 始终处于架构上-Cassandra没有单点故障,并且可以连续用于无法承受故障的关键业务应用程序。

  • 快速的线性规模性能-Cassandra具有线性可伸缩性,即,随着群集中节点数量的增加,它可以提高吞吐量。因此,它保持了快速的响应时间。

  • 灵活的数据存储-Cassandra可容纳所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据需要动态地适应对数据结构的更改。

  • 轻松进行数据分发-Cassandra通过在多个数据中心之间复制数据,提供了在所需位置分发数据的灵活性。

  • 事务支持-Cassandra支持原子性,一致性,隔离性和持久性(ACID)等属性。

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

卡桑德拉的历史

  • Cassandra是Facebook开发的用于收件箱搜索的工具。
  • 它于2008年7月由Facebook开源。
  • Cassandra于2009年3月被接纳为Apache孵化器。
  • 自2010年2月以来,它已成为Apache的顶级项目。