您的位置:首页 > 运维架构 > Apache

Cassandr 3.x官方文档_关于Apache Cassandra

2016-12-06 22:22 351 查看
 2016年 8月11日

关于Apache Cassandra

关于这个文档

欢迎来到由DataStax提供的cassandra文档。为了保证你在使用这份文档时获得最好的体验,先花一些时间看一看DataStax文档的使用建议。

 

登录页面提供了一些支持的平台,产品兼容性,规划和测试集群部署,推荐的生产配置,故障排除,第三方软件,额外的信息资源,管理员和开发人员的话题,和之前文档的信息。

 

ApacheCassandra概述

Apache
Cassandra™是一个大规模可扩展的开源NoSQL数据库。Cassandra在跨多数据中心和云计算的时候,管理大量的关系型,半关系型,和非关系型数据是完美的。Cassandra在很多商业服务器之间传递持续可用性,线性扩展,和操作简易性,没有单点故障,同时为了最大的灵活性和最快的响应时间的设计,它有一个强大的动态的数据模型。

 

DataStax Distribution of Apache Cassandra3.x最新的版本是3.6

 

Cassandra如何工作的?

Cassandra的一切为了可扩展的架构意味着,它能够胜任管理PB级别的数据和每秒上千的并发用户/事务的操作。

 

Cassandra是一个分区的行存储数据库

Cassandra的架构允许任何授权的用户使用CQL语言连接数据中心的任何节点来登陆数据库。为了易用性,CQL使用了跟SQL相似的语法规则。和Cassandra交互的最基本的方法是使用CQL
shell ,cqlsh命令。使用cqlsh,你可以创建keyspaces和tables,向table里插入和查询以及更多操作。这个Cassandra的发行版适用于Cassandra
2.2的CQL和后来的版本。如果你想使用图形界面工具,你可以使用DataStax
DevCenter.

为了生产使用,DataStax提供了一系列的驱动,使CQL表达式可以从客户端传输到集群然后返回。

数据自动分区

Cassandra提供了在所有节点之间的数据自动分区方法,然后数据加入到一个环或者数据集群里。开发者或者管理员不需要写代码来把数据分布到集群中去,因为数据是透明分区在集群的所有节点中的。

内置的和可定制的复制策略

Cassandra也提供了内置的和可定制的复制策略,在多个节点上保存着冗余的备份,并且加入到Cassandra环中。这意味着如果集群中的任何节点挂掉,在集群中的其他机器上还有一份或者多份节点的可用数据备份。备份策略可以配置成一个数据中心,多个数据中心,和多个云可用区域。

Cassandra可线性扩展

Cassandra提供了线性可扩展,意味着存储空间可以简单的通过在线添加新节点来增加容量。举个例子,如果2个节点可以处理每秒100,000个事务,那么4个节点可以支持每秒200,000个事务,8个节点可以解决每秒400,000个事务。

 

 



Cassandra与关系型数据库有什么不同?

Cassandra从根本上就被设计成一个点对点通信的分布式数据库。As a bestpractice, queries should be one per table。数据规范化使这个成为了可能。由于这个原因,表之间的joins这个概念不存在,虽然如此,客户端的joins仍然可以在应用中使用。

 

NoSQL是什么?

最普遍的翻译是“不仅仅是SQL”,意思是,这种数据库使用一种和关系型数据库不同的存储方式。

有很多种不同类型的NoSQL数据库,因此即使是最常用的类型的直接比较都是没有用的。今天的数据库管理员必须要polyglot-friendly,意思是说,他们必须要懂得如何使用多种不同类型的关系型数据管理系统和NoSQL数据库。

 

什么是CQL?

Cassandra 查询语言(CQL)是进入Cassandra数据库管理系统的主要接口。使用CQL跟使用SQL(结构化查询语言)很类似。CQL和SQL共享相同的抽象概念表,都是由列和行组成的。和SQL最主要的不同点是,Cassandra不支持joins操作和子查询。相反的,通过在schema级别的CQL的特性例如集合和集群可以看出,Cassandra强调的是反范式。

 

推荐使用CQL和Cassandra进行交互。更好的性能,阅读的简单,和使用CQL是现代的Cassandrad相对于旧版的Cassandra
API的优势。

 

CQL文档包含一个数据建模的题目,例子,和命令参考。

 

我该如何和Cassandra交互?

最基本的和Cassandra交互的方法就是使用CQL shell,cqlsh命令。使用cqlsh,你可以创建keyspace和tables,向table里插入和查询以及更多操作。如果你想使用图形界面工具,你可以使用DataStax
DevCenter。为了生产使用,DataStax提供了一系列的驱动,使CQL表达式可以从客户端传输到集群然后返回。

 

我该如何把数据从Cassandra移入/移出?

数据使用CQL INSERT命令插入,CQL COPY命令和CSV文件,或者sstableloader。但是实际上,首先你必须考虑到你的客户端程序将会如何查询表,然后再做数据建模。在关系型和非关系型数据库之间的模式的不同,导致直接把数据从关系型数据库转移到Cassandra会注定失败。

 

Cassandra还有哪些其他的工具?

Cassandra自动安装了nodetool,一个很有用的Cassandra命令行管理工具。同时也默认安装了压力负载和基准测试的工具,cassandra-stress。

 

运行Cassandra我需要什么样的硬件/云环境?

Cassandra被设计成可以在普通规格的商品硬件上面运行。在云端,Cassandra能够适应大多数普通的环境。

译者注:本篇文章来源于datastax cassandra的官方文档的第一章,由于最近在学习cassandra数据库,而且公司也刚刚使用cassandra数据库,所以有很多东西还不太了解,有的地方翻译的比较生硬。本人还保留了好几本关于cassandra的英文书籍,由于平时比较懒,不太愿意看英文原版的书籍,因此借这个机会,强迫自己把它们读完,后面会陆陆续续,尽自己最大能力把它们翻译出来,也算是给自己一个交代。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: