当有人问:数据库分哪几类?

我们通常的回答是:关系型的和非关系型的。

这个答案没毛病,但是略显简单粗暴。如果深究一下,非关系型数据库还有很多种型。

有种分类方法,把数据库分成了8个大类:你没看错,是数据库库库库库库库库!

为什么要分这么细呢?因为时代不同了,现代化应用对数据处理的要求越来越苛刻。

传统的关系型数据库,发展了几十年,遵从ACID原则,强关联、数据一致性,擅长事务处理。

事务处理这个功能很重要,比如用银行卡转账,必须保证对方账户钱增加的同时,而你的账户对应滴减少了,中间出了差错,数据库就要“回滚”。

多少年来的金融级交易,都离不开关系型数据库的支撑,而企业大量的ERP、CRM系统,都是靠关系型数据库扛着的。

可是,随着社交、电商、IoT等业务和应用蓬勃发展,数据尤其是非结构化数据爆发增长,传统关系型数据库有点独木难支。

于是,数据库进入了八仙过海,各显神通的时代,不同的数据库在各自的岗位上,提供了独特的价值。

举个例子,在电商的场景下,用户的主要身份信息账号密码等,一般存在关系型数据库里。

但用户的“购物车”,有人放了1件商品,有的剁手党可能会放100件商品,用关系型数据库存储就很不灵活。

这时候,键值数据库就派上了用场,用“键值对”来存储用户的购物车信息,水平可以任意扩展。

再比如在交通和制造场景下,数据需要按照时间顺序进行存储,这里的时间不只是一个度量标准,不是一个字段,而是一个坐标的主坐标轴。

这时候,就需要时间序列数据库,有点像我们的常见的股票交易数据,横轴是时间,纵轴是不同时间下的所有数据。

再比如社交网络应用,需要快速查找某人与某人的关系。

此时如果使用图数据库,可以快速get到结果,但是用关系型数据库,需要大量的查询时间,甚至超时。

总之,应用千差万别,数据丰富多彩,要想应用跑的爽,就要投其所好,选最合适的数据库。

而且如今,大多数现代应用,都不是单一类型数据库来支撑,往往众人拾柴,各干自己擅长的一部分。

所以,对于架构师来说,根据自家业务,把数据库选好、规划好很重要,同时,还要有DBA来配置和管理数据库。

想想就很头大

有没有供应商,能够提供一揽子解决方案呢?

还真有,这就是AWS,上面提到的8种类别的数据库,AWS全部提供!

AWS能提供的数据库类型和引擎太多,我们就挑几类来讲讲吧。

首先还是说关系型数据库,虽然数据库分类这么多,但站C位的还是“关系”,大多数系统的主数据都还是用关系型数据库。

AWS的托管式RDS服务,提供了多种引擎。

不管开发者习惯用哪种,商用的Oracle、SQL Server,开源的MySQL、MariaDB、PostgreSQL,在AWS上都能找到。

同时,AWS还提供了一套自家特色RDS方案,这就是著名的「极光」数据库——Amazon Aurora。

Aurora提供MySQL和PG两种兼容引擎,跨3个AZ最多提供15个读副本、6份数据拷贝,跨区横向扩展读写,跨区复制。

极光普照”之下,吞吐量是MySQL的5倍、PG的3倍,成本却只有传统商业级数据库的十分之一。

看到“3AZ”,是不是担心部署和管理很复杂?没关系,Aurora是全托管的,所有操作,云上帮你全简化。

同时,Aurora跟AWS上的机器学习、BI、分析类的组件可以深度集成,你甚至不需要专业的机器学习知识,用标准的SQL语句就能进行机器学习预测了。

著名的虎牙直播,就采用了Aurora数据库解决方案,相对静态的信息,使用Aurora存储,动态的信息则使用DynamoDB存储。

除了性能比MySQL好太多以外,故障恢复也是极速的,异常状态下,10s内就能自动实现故障转移,终端用户无感知。

另外,虎牙直播的Nimo TV是出海业务,利用AWS全球数据库功能,可以就近部署,提升用户本地体验。

我们再来说说AWS上的其它非关系型数据库吧。

当下最流行的缓存数据库是Redis和Memcached,AWS提供ElastiCache,兼容这两种引擎,为实时应用提供亚毫秒延迟。

如果谈到文档数据库,大家肯定会对MongoDB很熟悉,AWS的DocumentDB提供对MongoDB的兼容能力。

不止于兼容,DocumentDB比标准的MongoDB托管服务快两倍,支持自动故障转移,并在3个AZ上提供6份数据副本。

AWS上的图数据库托管服务叫做Neptune,可存储数十亿的“关系”,查询起来,延迟是毫秒级别的。

Amazon Neptune被广泛应用于社交网络、知识图谱、生命科学、IT运维等领域。

还有宽表数据库Amazon Keyspaces,分类账数据库Amazon QLDB,以及刚刚上新的时序数据库Amazon Timestream……

总之,只有想不到的,没有AWS做不到的。


讲到这里,我想大家对AWS云上数据库服务的类型和能力,大概都心中有数了。

这两年,我也看到越来越多本地部署的数据库,被云上数据库替代和“碾压”。

那么,如果你也有了数据库上云的想法,如何才能方便、安全、快捷地把本地数据“搬”上云呢?

AWS提供了一系列DMS服务:从线下到云上、从库到库、库结构转换……,数据复制可实现近乎0停机时间,以保障业务不中断,客户无感知。

这种迁移服务靠谱不?Amazon自己就是最好的成功案例。

亚马逊公司100多个业务团队,各种复杂的、在线的、高并发的业务,电商、广告、视频、游戏、支付,原来总共使用了7500多个甲骨文数据库,数据多达75PB。

如今,这些数据库全部被迁移、分流到AWS多种云数据库上了。

自己家的云数据库到底香不香?迁移后数据库成本降低60%,管理工作减少了70%,而对于重要的应用,性能提高40%!

这就是活生生的云数据库最佳实践呀!


云上数据库库库库库库库库,八仙过海。

AWS,就是那片云海!

mongodb最多数据库_数据库库库库库库库库!相关推荐

  1. 数据库_数据库篇-第一章:数据库基本概念

    基础知识学习,面试必备,关注吧 骚年 01 第一,什么是数据库? 维基百科上是这样定义的: 所谓"数据库"是以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序 ...

  2. mysql语句数据库_数据库的Mysql语句

    数据库的mysql语句: 1.连接数据库 mysql -u root -p 2.显示数据库 show databases(db); 3.选择数据库 use 数据库名; 4.显示数据库中的表 show ...

  3. 1MySQL是面向对象型数据库_数据库及MySQL基础(1)

    一.数据库概述 关系型数据库:面对关系,Java面向对象.html ·常见数据库mysql Oracle(神喻):甲骨文 DB2:IBM SQL Server:微软 Sybase:赛尔斯 MySQL: ...

  4. sequelize 连接2个数据库_数据库激荡 40 年,NoSQL、NewSQL谁能接棒?

    起初有文件,后来有基于结构化文件的导航数据库,然后出现了IMS和CODASYL.大概40年前,出现了首批关系数据库.在20世纪八.九十年代的大部分时间,"数据库"严格意义上指&qu ...

  5. java 数据结构 数据库_数据库索引背后的数据结构

    在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法.这种数据结构,就是索引. B-Tree B-Tree是一种 ...

  6. java倒序查询数据库_数据库 倒序查询

    PHP面试干货 1.进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一 ...

  7. numeric比较大小 数据库_数据库基础知识个人整理版-强烈推荐

    <数据库基础知识个人整理版-强烈推荐>由会员分享,可在线阅读,更多相关<数据库基础知识个人整理版-强烈推荐(20页珍藏版)>请在人人文库网上搜索. 1.数据库知识要点总结第一章 ...

  8. 如何完全安装mysql数据库_数据库经验:如何简单安装MySQL数据库

    这篇文章主要介绍了一种简单的MySQL数据库安装方法,详细内容请大家参考下文: 虽然安装MySQL数据库的文章很多,但是我看后感觉对于初学者来说都有一定的难度所以我写个简单的方法供大家参考.如果有什么 ...

  9. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

最新文章

  1. 页面GBK,用jquery.post乱码问题
  2. linux+tasks进程,linux命令之进程管理命令(上)
  3. Linux下运行C语言程序
  4. lpk.dll是什么
  5. nginx openresty content_by_lua_file 404错误
  6. VS2015编译Poco+openssl,使用Poco发送HTTPS请求
  7. Eigen入门之密集矩阵 10 - 矩阵的行优先及列优先存储
  8. readonly和const的区别
  9. 如何在苹果Mac上的登录窗口中打开辅助功能?
  10. sscanf %*s
  11. emacs工程管理,cedet ede插件自动构建Make,Automake
  12. 百度富文本编辑器的使用
  13. 本机 Hosts 管理神器 SwitchHosts
  14. html 时间控件 只选择年,js时间控件只显示年月
  15. Qt + 运动控制 (固高运动控制卡)【3】运动控制卡几种常用的回零方式
  16. Linux基础(三)安装及管理程序
  17. 关于使用Cobalt Strike制作宏病毒
  18. uniapp map上添加浮层无法显示问题?
  19. Apache Iceberg Research
  20. Mac 安装Mactex教程

热门文章

  1. PYTHON -MYSQLDB安装遇到的问题和解决办法
  2. CentOS下yum找不到安装软件的解决方法。
  3. 业务层面缓存穿透的解决方案
  4. CSS学习笔记--浮动元素由于浏览器页面缩小而被挤到下面的解决方法
  5. 未能从程序集“System.ServiceModel, Version=3.0.0.0问题解决
  6. ORACLE 存储过程异常捕获并抛出
  7. IDEA统一设置编码为utf-8编码及tomcat 乱码问题的解决
  8. 在命令行窗口查看Maven版本时,出现 Error: JAVA_HOME is set to an invalid directory.的解决方法
  9. 解决ASP.NET网站发布问题
  10. 如何使用JavaScript更改元素的类?