Cassandra基本介绍(1) - 关系型数据库(RDBMS)概述

    作为一名应用开发者,数据库应用已经非常广泛了。你可能使用过关系型数据,比如MySQL、PostgreSQL,也可能使用过文档存储,比如MongoDB,或者key-value数据库,比如Redis。每一种数据库都有它的长处,也许你还正在考虑使用分布式数据库,比如Cassandra,来解决你手头上的工作。

使用这些数据产品并不是要取代原有的数据产品,而是为不同的应用场景提供更多的选择。NoSQL代表着:选择合适的方案处理合适的业务场景。

在“Cassandra基本介绍”这个课程,我们将讨论从关系型数据库转变为Cassandra的主要原因,以及Cassandra基本特点。 在本章结束后,你应该学些到:

  1. RDBMS特点
  2. RDBMS是否适合大数据
  3. 第三范式不可扩展
  4. Sharding是一个恶梦
  5. 高可用..不是真实的
  6. 缺点总结
  7. 课程总结

下面我们就先介绍一下,关系型数据库:

  • RDBMS特点
  1. RDBMS适合中型数据,在单台机器上工作良好,比如MySQL、PostgreSQL。
  2. 对于数百个并发用户支持较好。
  3. ACID支持良好
  • RDBMS是否适合大数据

对于大数据,必然需要水平扩展,MySQL的master/slave模式,将导致ACID(A:原子性,C:一致性,I:隔离性,D:持久性)不复存在

  • 第三范式不可扩展(没有冗余)

由于查询的复杂性,以及用户同时需要快速响应,因为用户是没有耐心的,导致数据必须反范式化设计。

  • Sharding是一个恶梦
  1. 数据位于每一个shard
  2. join和聚合困难
  3. 需要反范式化
  4. 查询需要使用shard规则或路由,来命中shard
  5. 添加shard需要手动迁移数据

  • 高可用..不是真实的
  1. master为单点故障
  2. 不支持多数据中心

  • 缺点总结
  1. 水平扩展是头疼的一件事
  2. ACID在本地是best,多机存在一致性问题
  3. 重新sharding需要手动迁移数据
  4. 往往为了性能需要反范式化
  5. 高可用复杂,需要额外操作
  • 课程总结

既然RDBMS有以上缺点,那我们就需要解决它们:

  1. 强一致性是不现实的:So,放弃他
  2. 重新sharding是困难的:So,我们需要自动完成
  3. Master failover:So,我们应该不使用master/slave模式
  4. 数据分布式和聚合 no good:So,对于实时查询性能,需要进行反范式化,目的是让查询总是命中在1台机器上
时间: 2024-10-29 19:11:16

Cassandra基本介绍(1) - 关系型数据库(RDBMS)概述的相关文章

hive和关系型数据库RDBMS的异同

摘要:由于 Hive 采用了 SQL 的查询语言 HQL,因此很容易将 Hive 理解为数据库.其实 从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处.本文将 从多个方面来阐述 Hive 和数据库的差异.数据库可以用在 Online 的应用中,但是 Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性. Hive 和数据库的比较 查询语言 HQL SQL 数据存储位置 HDFS Raw Device 或者 Local FS 数据格式 用户定义 系

关系型数据库MySql简介

什么是关系型数据库? 数据库就是用来存储数据的仓库,是一种特殊的文件. 根据存储的数据不同,划分为关系型数据库和非关系型数据库. 关系型数据库就是指 建立在关系模型基础上的数据库,通俗来讲这种数据库就是由多张表组成,并且这些表之间存在一定的关系. 关系型数据库的核心元素: 记录: 数据行 字段 :  数据列 数据表 : 数据行的集合 数据库 : 数据表的集合 主键 : 特殊的字段, 用来唯一标识记录的唯一性. 了解关系数据库,就需要了解到 RDBMS , 即关系型数据库管理系统. 所谓的关系型数

关系型数据库和非关系型数据库,RDBMS和NoSQL区别?

简单地讲:什么是关系型数据库?依据关系模型来建立的,不同的表或库之间有相关联性 什么是非关系型数据库?不同的表或库之间没有相关联性,依据非关系模型来建立 关系型数据库和非关系型数据库各自的特点:RDBMS:二维表数据存取通过SQL数据安全性方面强 NoSQL:关注高性能,高并发,灵活性等特点 首先说说各自的优缺点:强大的查询功能--强一致性--二级索引: 关系型的优点,非关系型的缺点灵活模式--扩展性--性能: 非关系形的优点,关系型的缺点 NoSQL的分类和典型的产品:键值(KV)存储:Mem

Cassandra非关系型数据库

由于在工作中用到了Cassandra非关系型数据库,因此总结一下常用操作.Cassandra使用Java语言编写的,因此在安装之前,首先需要安装JDK.自己使用的版本为apache-cassandra-2.1.11-bin.tar.gz,在Ubuntu 12.04上进行安装.由于目前仅仅在单机上面实验,因此集群部分以后整理. 1. Cassandra安装和配置 (1)~/.bashrc环境变量配置 export CASSANDRA_HOME=/usr/local/cassandra/apache

PHP关系型数据库介绍

PHP关系型数据库介绍 Mysql数据库:永久性保存数据的仓库 PHP的变量,在php的执行周期,临时性保存变量的概念! Mysql数据是关系型数据库:何谓关系型,利用关系,去描述实体信息,与实体之间的关系的数据库架构就是关系型数据! 所谓关系:指的就是二维表 行:记录,一行就是一条记录 列:字段,一列就是一个字段 sql:一门语言,结构化查询语言,操作关系型数据的语言 nosql:not only sql,非关系型数据库.典型的是key/value型,键值对型 操作mysql的基本流程: 什么

SpringBoot数据库访问(一)--------关系型数据库访问(RDBMS)

关系型数据库访问(RDBMS) 采用JdbcTemplate.MyBatis.JPA.Hibernate等技术. 一.JdbcTemplate工具 在pom.xml添加boot-starter-jdbc定义 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1

mysql介绍(关系型数据库),关系型与非关系型数据库,数据库与文件的对应关系,mysql启动与连接,修改mysql配置信息

mysql介绍 数据库是用来存储数据的仓库本质就是存储数据的socket套接字c/s架构 数据库服务端: 存放数据库的主机集群数据库客户端: 可以连接数据库任意客户端数据库管理员:DBA 数据库的基本概念 mysql:关系型数据库 关系型与非关系型数据库 关系型数据库:Mysql access SQLServer Oracle 一般用来存储长期稳定的数据 1.有表的概念 2.以表中一条条记录存储数据 非关系型数据库 :Mongodb Redis Memcache 以键值对的方式存储,快速缓存,即

nosql的介绍以及和关系型数据库的区别

一直对非关系型数据库和关系型数据库的了解感觉不太深入,在网上收集了一些关于sql和nosql的区别和优缺点分享给大家. Nosql介绍 Nosql的全称是Not Only Sql,这个概念早起就有人提出,在09年的时候比较火.Nosql指的是非关系型数据库,而我们常用的都是关系型数据库.就像我们常用的mysql,sqlserver一样,这些数据库一般用来存储重要信息,应对普通的业务是没有问题的.但是,随着互联网的高速发展,传统的关系型数据库在应付超大规模,超大流量以及高并发的时候力不从心.而就在

MongoDB非关系型数据库开发手册

一:NoSql数据库 什么是NoSQL? NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. 为什么使用NoSQL ? 今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据.用户的个人信息,社交网络,地理