Board logo

标题: Apache Cassandra3.X 系列,第 1 部分 Cassnadra3.X 特性概述-1 [打印本页]

作者: look_w    时间: 2018-3-17 14:54     标题: Apache Cassandra3.X 系列,第 1 部分 Cassnadra3.X 特性概述-1

本文是 Apache Cassandra3.X 系列的第一篇文章,主要介绍了 Cassandra 的出现原因,它解决了什么问题,3.X 版本对应的数据模型、数据副本方式、系统架构、客户端、应用工具发生了什么变化等内容。
关系型数据困局IMS 的全称是 Information Management System,1966 年由 Vern Watts 在 IBM 提出,最初是为了 Staurn V moon        rocket 项目创造的,最终在 1968 年第一次产品发布,接下来再 CICS(Customer Information Control        System)及其他的应用程序上获得成功,并沿用至今。
1970 年,Edgar F.Codd 博士发表了论文"A Relational Model for Data for Large Shared Data        Banks",奠定了关系型数据库管理系统的功能基础。
那么,关系型数据库犯了什么错误?答案是:“Nothing” 。
为什么需要考虑替换关系型数据库?因为关系型数据库遇到了扩展问题,并且数据表之间的关联关系让查询越来越慢。
相关知识数据模型关系型模型是一个简单的模型,需要满足 ACID。ACID 是 Atomic、Consistent、Isolated、Durable 的简称。
扩展方式一种扩展关系型数据库的方式是 Sharding(分片)架构。eBay 采用这种方式,支持每天数十亿 SQL        访问。这种方式的原理是对数据进行纵向切分,将数据量分派到不同的机器上,这样不需要再在一台机器上存储或者备份所有的数据。
几种分片策略:
无中心化Michael Stonebraker(University of California at Berkeley)在 1986 年的论文"The Case for Shared        Nothing."引入了"Shared-Nothing"架构,属于无中心化状态,即每一个节点互相不存在依赖关系,所以没有中心节点统计共享资源内容的问题。
Cassandra 数据库没有中心节点,没有 Master/Slave,是 Shared-Nothing 架构。
初步介绍Apache Cassandra 是一种分布式非关系型数据库,具有高性能、可扩展、无中心化等特征。Cassandra        是适用于社交网络业务场景的数据库,适合实时事务处理和提供交互型数据。以 Amazon 完全分布式的 Dynamo 数据库作为基础,结合 Google BigTable        基于列族(Column Family)的数据模型,实现 P2P 去中心化的存储。
在 CAP 原则(又称 CAP 定理,指的是在一个分布式系统中,Consistency 一致性、Availability 可用性、Partition Tolerance        分区容错性,三者不可得兼)上,HBase 选择了 CP,Cassandra 则更倾向于 AP,所以在一致性上有所减弱。
Cassandra 是无中心化的,意味着所有节点没有差异。
可扩展性一般可以通过两种方式实现:
所谓的弹性扩展是指特定属性的横向扩展能力,意味着集群内部可以无缝扩展和解散部分机器。要做到这一点,需要集群可以接收新的节点,并且通过拷贝部分或者全部数据的方式加入到集群,并开始接收新的用户请求,而不是需要大规模地调整或者配置整个集群。
与其他方案对比Cassandra 的类 Dynamo 特性有以下几点:
数据模型Cassandra 的数据模型借鉴了谷歌 BigTable 的设计思想,包括以下四个概念:
Cassandra 各主要概念之间的包含关系如图 1 所示。
图 1.  Cassandra 主要概念关系图





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0