📜  卡桑德拉的特点

📅  最后修改于: 2021-09-10 01:27:34             🧑  作者: Mango

Apache Cassandra 是一个开源的、用户可用的、分布式的 NoSQL DBMS,旨在处理跨多个服务器的大量数据。它提供零故障点。 Cassandra 为跨越多个数据中心的集群提供了大量支持。

Cassandra 有一些强大的功能。以下是以下描述的一些功能:

  1. 分散式:
    集群中的每个节点都具有相同的角色。不存在故障问题,数据集分布在整个集群中,但存在一个问题,即每个节点中不存在主节点来支持服务请求。
  2. 支持复制和多数据中心复制:
    复制因子带有 cassandra 中的最佳配置。 Cassandra 旨在拥有一个分布式系统,用于跨多个数据中心和其他关键功能部署大量节点。
  3. 可扩展性:
    它旨在读写吞吐量,随着新机器的添加逐渐增加而不会中断其他应用程序。
  4. 容错:
    数据自动存储和复制以实现容错。如果一个节点出现故障,那么它会立即被替换。
  5. MapReduce 支持:
    它支持与 MapReduce 支持的 Hadoop 集成。还支持 Apache Hive和 Apache Pig。
  6. 查询语言:
    Cassandra 引入了 CQL(Cassandra Query Langugae)。它是一个用于访问 Cassandra 的简单界面。

Cassandra 查询语言(CQL)
CQL 具有访问 Cassandra 的简单接口,也是传统 SQL 的替代方案。 CQL 添加了一个抽象层来隐藏结构的实现,并且还为集合提供了本机语法。

例如,请遵循给定的示例,该示例显示了如何在 CQL 3.0 中创建包含列族的键空间-

CREATE KEYSPACE MyKeySpace
WITH REPLICATION = { 'class' : 'SimpleStrategy', 
                     'replication_factor' : 3 };

USE MyKeySpace;

CREATE COLUMNFAMILY MyColumns (id text, Last text, 
                               First text, PRIMARY KEY(id));

INSERT INTO MyColumns (id, Last, First) 
VALUES ('1', 'Doe', 'John'); 

询问:

SELECT * FROM MyColumns; 

这使:

id | First | Last
----+-------+------
1 | Ratul | Sarkar 

(1 行)

关于 Cassandra 的一些事实如下:

  • 在 Cassandra 版本更新之前,直到 Cassandra 1.0,Cassandra 不是行级一致的,这意味着插入和更新表。它可能会影响几乎同时处理的同一行,可能会以不一致的方式影响非键列。
    Cassandra 1.1 使用行级隔离解决了这个问题。
  • 删除称为墓碑(来源互联网)的标记也会导致性能下降到严重的后果级别。
  • Cassandra,本质上是键值和有组织的表格 DBMS 之间的混合体。可以在运行时创建、删除和更改表,而不会阻止更新和查询。
  • 一个名为 table 的列族代表一个 RDBMS。每行都由行和键、名称、值、时间戳等具体标识。Cassandra 中的表是一个受干扰的多维映射,由键监控。超级列族指定了更多的应用程序。