如何进行Cassandra模型以及架构的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。NoSql的世界纷繁复杂,出去掉Redis等内存型的数据库之外,在整个NoSQl领域比较认可的是 Cassandra,Hbase,以及MongoDB。
对于Mongo,目前本ID的系列博文已经有部分,而Hbase有关的部分还未补充,待补。1:Cassandra采用了gossip作为集群中节点的通信协议,该协议整个节点都处于同等的地位,没有主从之分,这就使得任一节点的推出都不会导致整个集群的失效。2:Cassandra 和Hbase在底层的架构设计都是借鉴了 Google Big Table的思想来构建自己的系统,而Cassandra的创新就是将原本用在文件共享架构的P2P (Peer to Peer)引入到了NoSqlP2P的一大特点就是去中心化,集群之中的所有节点都有着同等的地位,这极大的避免了单个节点退出,而使整个集群不能工作的可能,与之形成对比的是Hbase采用了Master/Slave的方式,这就存在了单点失效的可能。
1.2:高扩展性随着时间的推移,集群中原有的规模不足以存储新增加的数据,目前NoSql的数据都已经实现了级联的扩展,非常容易实现添加新的节点到已有集群,操作简单。1.3:最终一致性在这里再次强调一下最终一致性:Cassandra采用了最终的一致性:
最终的一致性是指分布式系统之中的一个数据对象的多个副本尽管在短时间内可能出现不一致,但是经过
一段时间以后,这些副本最终会达到一致。
Cassandra是优先保证了AP,也就是我们经常说到的可用性,和分区容错性。通常而言,大部分的NoSQL key-value的模式都是写入非常的高效,毕竟是为了大量数据的插入所涉及,
可是在数据的读取方面那就依据不同的情况而不同。1 :如果是单个读取指定了的key,那就回很快的返回结果。 -》指定key查询。2 : 如果是范围查询,由于查询的目标可能存储在多个节点之上,这就需要要对多个节点 来进行查询,速度会比较慢。3 :全表扫。毫无疑问,全表扫描数据,会非常的低效。 由于 Cassandra采用了类似与BigTable的数据结构组织,Cassandra和Hbase比较类似。所以Cassandra和Hbase相比也存在着许多相同的概念。
如果抽象来看Cassandra。整个Cassandra都是一个五维的空间
column:列,在Cassandra之中是最小的一个数据单元,它包含了一个三元的数据类型:
我们可以将SuperColumn想象成Column的数组,他包含一个name。以及一系列的Column 将一个SuperColumn 用JSON的形式表示如下Columns和SuperColumns都是一个Key Value ,一个name和一个String的组合,最大的不同在于Column的Value是一个“String”,而SuperColumn的value是一个Cloumns的MapColumn family是一个包含了一个许多行[Row]的结构,你可以将它想象成RDBMS中的Table,每一个行都包含有Clinet提供的Key和该KEY关联的的一系列的Column,我们可以看到如下的结构:如下所示:注意,在Hbase之中也有一个CL的概念。3:开发云主机域名keySpace
KeySpace是我们最外层的数据结构,通常的情况,我们的应用程序只有一个KeySpace,简单点来讲,keySpace,可以把keySpace想象成为RDBMS之中的 database。相对与关系型的数据库的三层结构:
database -> table -> colum而言。cassandra的结构层次如下:
keyspace->column family>【column|supercolumn】看完上述内容,你们掌握如何进行Cassandra模型以及架构的分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注开发云行业资讯频道,感谢各位的阅读!
本篇内容主要讲解“web开发中的开源组件有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web开发中的开源组件有哪些”吧!kubernetesKubernetes是Google开源的容器集群管理系统,其提供应用…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。