写在前面

cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的QQ群,104822562。一起学习探讨cassandra.

cassandra 概况

Apache Cassandra 是一个支持高扩展的开源NoSQL数据库。Cassandra非常适合在云、多数据中心存储结构化、非结构化的数据。Cassandra 支持高可用性,线性扩展,非常简单的在多个server上进行操作,支持单点故障。强大的动态数据模型支持提供了灵活性和快速响应。

cassandra 工作原理

cassandra 可扩展的架构意味着它有能力处理PB级数据,每秒上千的并发操作

特点 详解
分片行存储DB Cassandra 架构允许授权用户通过CQL在任何数据中心的节点上连接到集群的任何节点,为了易使用,CQL使用了类似SQL的语法。和cassandra进行交互的最基础的工具就是CQL shell,cqlsh.使用cqlsh,你可以创建keyspaces,tables.增删改查表数据。Cassandra3.x需要CQL2.2+支持。如果你喜欢图像化工具,可以使用DataStax DevCenter,生产环境中,DataStax 提供一系列的driver
数据自动分布 Cassandra 为集群内的节点提供跨节点的自动数据分布。数据在集群各个节点的分布是是透明的,不需要开发者或者DBA做任何事情
内置且可配置的复制 Cassandra 也提供内置的且可配置的复制,为集群节点环的数据提供跨节点的数据冗余备份。这意味着集群中任何一个节点down了,集群中的其他节点还有down节点的数据备份。复制可以进行配置,从而跨数据中心,扩地区分布
cassandra支持线性扩展 Cassandra支持线性扩展,意味着可以通过简单的增加新节点来提高集群能力。例如,如果两个节点能够支持每秒100,000个事务,4个节点就能够支持每秒200,000.8个节点就能支持400,000

注:

这个地方的线性扩展稍微有误导嫌疑,真实环境中的线性扩展不可能如上这种100%线性扩展,增加了节点,节点之间的通信时间会增加,即增加了节点后,单个节点的处理能力会有所下降。笔者之前的测试显示,差不多是70%.这个可能会和具体的业务场景有关系。

cassandra 与关系型数据库的区别

Cassandra 是基于peer to peer 通信的分布式数据库。最好的实践是1个查询对应一张表。所以数据是非范式的。正因为如此,跨table的JOIN查询不存在,尽管可以在application中去join。

NoSQL 介绍

NoSQL 通常意义上是指“不仅仅是SQ”,意味着DB可以使用不同于关系型数据库的存储数据方法。目前有很多不同类型的NoSQL数据库,因此即使是直接比较常用类型的NoSQL也没什么用。今天的DBA必须要更加全能,他们必须要知道如何运维关系型数据库和NoSQL数据库。

CQL 介绍

Cassandra Query Language(CQL) 是Cassandra 数据库管理系统的主要接口,CQL的用法和SQL类似。CQL和SQL有着相同的表结构,行列式。CQL与SQL主要的不同是CQL不支持join和子查询.相反,Cassandra 强调数据的反范式。

CQL是与Cassandra交互的首选。相比较老的Casssandra APIs,CQL性能和简单易用是大的优势

CQL 文档

包括了数据模型,例子,和命令参考

如何和Cassandra交互

cassandra进行交互的最基础的工具就是CQL shell,cqlsh.使用cqlsh,你可以创建keyspaces,tables.增删改查表数据。Cassandra3.x需要CQL2.2+支持。如果你喜欢图像化工具,可以使用DataStax DevCenter,生产环境,DataStax 提供一系列的driver

数据迁移

数据可以通过CQL INSERT命令,COPY命令和CSV文件方式,或者sstableloader 方式。但是实际上,你需要考虑你的客户端应用程序将如何查询表数据,需要首先定义数据模型。关系型数据库和NoSQL之间的范式改变,意味着直接将关系型数据库数据搬到Cassandra注定会失败。

注:

Cassandra 数据库不同于关系型数据库,它必须首先弄清楚业务的查询场景,才能去设计数据模型。

cassandra 工具

Cassandra 自动安装了nodetool

工具,一个非常有用的命令行管理工具。另外一个默认的安装工具是cassandra-stress

可以用来做基本的数据库负载性能测试

注:

nodetool 可以用来查询节点状态,节点配置信息等等,是个非常方便,必不可少的cassandra管理工具。

Cassandra 3.x官方文档(1)---关于Cassandra的更多相关文章

  1. cassandra 3.x官方文档(6)---内部原理之存储引擎

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  2. cassandra 3.x官方文档(5)---探测器

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  3. cassandra 3.x官方文档(4)---分区器

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  4. cassandra 3.x官方文档(3)---gossip通信协议及故障检测与恢复

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  5. cassandra 3.x官方文档(2)---架构解析

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  6. cassandra 3.x官方文档(7)---内部原理之如何读写数据

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  7. Spark官方文档 - 中文翻译

    Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...

  8. 《Spring 5官方文档》 Spring AOP的经典用法

    原文链接 在本附录中,我们会讨论一些初级的Spring AOP接口,以及在Spring 1.2应用中所使用的AOP支持. 对于新的应用,我们推荐使用 Spring AOP 2.0来支持,在AOP章节有 ...

  9. Lagom 官方文档之随手记

    引言 Lagom是出品Akka的Lightbend公司推出的一个微服务框架,目前最新版本为1.6.2.Lagom一词出自瑞典语,意为"适量". https://www.lagomf ...

随机推荐

  1. 阿里移动云专场专题.md

    小激动 一年一度的阿里云栖大会是我们开发者的盛会,带着着激动的心情参加了这次开发者盛会,二话不说进入会场就被震感到了,先来张图聊表敬意. 主会场马云爸爸还是很有范的,将未来定义为无法定义,在这里宣布成 ...

  2. [bzoj 1293] [SCOI2009] 生日礼物

    传送门(bzoj) 传送门(luogu) 题目: Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应 ...

  3. [LeetCode] Continuous Subarray Sum 连续的子数组之和

    Given a list of non-negative numbers and a target integer k, write a function to check if the array ...

  4. vue中自定义组件(插件)

    vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: ...

  5. Anaconda入门安装教程

    Anaconda 是什么? Anaconda 是一个可用于科学计算的 Python 发行版,支持 Linux.Mac.Windows系统,内置了常用的科学计算包.它解决了官方 Python 的两大痛点 ...

  6. 2018年Java后端面试经历

    楼主16年毕业,16年三月份进入上一家公司到今年3月底,所以这是一份两年工作经验面经分享. 都说金三银四,往些年都是听着过没啥特别的感觉.今年自己倒是确确实实体验了一把银四,从3月26裸辞到4月17号 ...

  7. [SCOI2010]生成字符串

    题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgww想要知道满足 ...

  8. UVA - 11997:K Smallest Sums

    多路归并 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> ...

  9. 【BZOJ1500】【Noi2005】维修数列

    题意原题很清楚了. 解题思路:裸的平衡树操作,注意动态开点即可. 细节还是比较多的,具体参见代码吧... #include <stdio.h> #include <algorithm ...

  10. 【USACO】股票市场

    题目描述 尽管奶牛天生谨慎,它们仍然在住房抵押信贷市场中大受打击,现在它们准备在股市上碰碰运 气.贝西有内部消息,她知道 S 只股票在今后 D 天内的价格. 假设在一开始,她筹集了 M 元钱,那么她该 ...