举例说明:Hadoop vs. NoSql vs. Sql vs. NewSql
转自:http://blog.jobbole.com/86269/


尽管层次数据库如今在大型机上依然被广泛使用,但关系数据库(RDBMS)(SQL)已经占领了数据库市场,并且表现的相当优异。我们存的钱不会跑到别人的账户,我们预定机票可以确保我们在飞机上有一个专属的座位,而且我们也不会因为没有做过的事而受到责备等等。关系数据库的数据完整性是因为它遵循了ACID(原子性,一致性,独立性以及持久性)原则。关系数据库技术可追溯到上世纪70年代。
那么,现在有什么变化呢?Web 技术开启了这次变革。如今,许多人在亚马逊上买东西。但关系数据库并不是设计用来处理亚马逊上每秒大规模的交易的。其主要的制约因素是关系数据库的机制问题。
NoSql 数据库提供了另一种机制,但这种机制却削弱了ACID原则。一些 NoSql 供应商在解决这些问题上取得了长足的进步;他们的解决方案称作最终一致性。至于 NewSql,为什么不利用现代的编程语言和技术来新建一个没有缺点的关系数据库呢?这就是很多 NewSql 供应商起家的方法。其他的 NewSql 公司创建了增强的 MySql 解决方案。
Hadoop 是一个完全不同的物种。它实际上是一个文件系统而非数据库。Hadoop 的根是基于互联网搜索引擎的。虽然 Hadoop 和 伙伴(Hbase,Mapreduce,Hive,Pig,Zookeeper)已经使它变成一个很强大的数据库,但 Hadoop 依旧是一个可容错、可扩展、廉价的分布式文件系统。Hadoop 当下的特点在于它的批量处理适用于数据分析。
现在,我们开始举例说明:我设想,视频游戏公司在营业了十年后,最近上线了我们最火热的游戏,并把货发给世界各地的零售商。我们的客户信息目前存储在一个 Sql Server 数据库中,我们对此一直很乐观。然而,由于玩家开始在线玩游戏,我们的数据库不能够跟上数据更新速度,导致玩家体验有延迟。随着用户群的快速增长,我们花了大笔的钱来买更多的硬件和软件也无济于事。我们最不希望的就是损失客户。我们现在该何去何从?
我们决定分割我们的线上用户群,同时在 NoSql 和 NewSql 上运行我们的线上游戏。我们的目标就是要找到最佳的解决方案。IT 部门于是选择了 NoSql CouchBase (类似于 MongoDB 的面向文档型)和 NewSql VoltDB。
Couchbase 是开源的,它有一个集成的缓存机制,并且可以自动地在多个节点之间传播数据。VoltDB 是一个遵循 ACID 原则的关系数据库,能够容错,横向扩展,并拥有无共享 & 内存中的架构。最后,这两个系统都能够运作。我不会详述各个方案的复杂细节,因为这只是一个例子,而且实际上比较这些技术需要测试,标杆管理以及深入分析。
既然线上操作可以顺利进行,我们想要分析我们的数据来找到我们应该开拓的市场。那么最适合推销我们的产品是哪个国家呢?为此,我们需要把 Sql Server 数据仓库的用户数据和线上游戏数据库的数据合并起来,然后运行分析报告。这就轮到 Hadoop 登场了。我们构建一个 Hadoop 系统并将这两个数据源的数据合并起来。最后,我们利用开源的 R 语言与其 MapReduce 模块连接起来,以生成分析报告。
举例说明:Hadoop vs. NoSql vs. Sql vs. NewSql的更多相关文章
- 5G时代,为什么NoSQL和SQL存在短板?
01 介绍 当今的通信服务提供商(CSP)需要能够在处理海量复杂的数据的同时,不会下降或者减慢网路响应速度和可靠性.5G时代,设备和用户数量呈指数级增长,这对业务支持服务(BSS)提出了新需求,也成为 ...
- MongoDB 1: NoSQL 和 SQL的区别
导读:本篇博客,主要是结合自己在项目中的使用,简单的阐述一下NoSQL和SQL的区别.那么,根据自己的应用,NoSQL这边,选择的是MongoDB(Redis虽然也是,但属于内存存储,这里不予说明). ...
- 为什么使用Nosql:Nosql和SQL的区别
1.概念: SQL(Structured Query Language)数据库,指关系型数据库.主要代表:SQL Server.Oracle.MySQL.PostgreSQL. NoSQL(Not O ...
- Accessing data in Hadoop using dplyr and SQL
If your primary objective is to query your data in Hadoop to browse, manipulate, and extract it into ...
- NoSQL和SQL怎么选用?
NoSQL 有分很多种,其中key-value NoSQL (Redis, MemcacheD, etc) 的选用相对比较清楚些,大多是当后端Data storage的cache层来用.这篇主要想请教 ...
- NoSQL还是SQL?这一篇讲清楚
https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653550127&idx=1&sn=93f79e007d757a ...
- [No0000195]NoSQL还是SQL?这一篇讲清楚
随着大数据时代的到来,越来越多的网站.应用系统需要支撑海量数据存储,高并发.高可用.高可扩展性等特性要求. 传统的关系型数据库在应付这些已经显得力不从心,并暴露了许多难以克服的问题. 由此,各种各样的 ...
- about云资源汇总指引V1.4:包括hadoop,openstack,nosql,虚拟化
hadoop资料 云端云计算2G基础课程 (Hadoop简介.安装与范例) 炼数成金3G视频分享下载 虚拟机三种网络模式该如何上网指导此为视频 Hadoop传智播客七天hadoop(3800元)视频, ...
- mySQL、mariaDB、noSQL、SQL server、redis之间是什么关系?
1.首先,从数据库类型上分类,mySQL.mariaDB.SQL server这3种属于关系型数据库. noSQL属于非关系型数据库,被视为数据库革命者. redis成为内存缓存数据库,而前面的两种类 ...
随机推荐
- android gallery 自定义边框+幻灯片效果
最近在项目中用到图片轮播,试了Gallery,ViewFlipper,ViewPager,感觉Gallery最符合需求,但是Gallery的系统边框很难看,项目中要求用自己的背景图片. 下面来看一下使 ...
- 标准库string类型
一.string 对象的定义和初始化的方式 1. string s1: 2. string s2(s1): 3. string s3("hello"); 4. string s4( ...
- vb.net 鼠标控制
Public Class Form1 Public Declare Sub mouse_event Lib "user32" Alias "mouse_event&quo ...
- Java设计模式(二)-单例模式
单例模式建议保证某个对象仅仅仅仅有一个实例,当仅仅有一个对象来协调整个系统的操作时,在计算机系统中.线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.总之,选择单例模式就是为了 ...
- no matching function for call to 'make_pair(std::string&, size_t&)'
rtl->push_back(make_pair<string, int>(str, pos)); 在redhat6上编译无问题,在centos7上编译出现错误: no matchi ...
- ORA-16014 与 ORA-00312
场景: SQL> alter system archive log current; alter system archive log current * 第 1 行出现错误: ORA-1601 ...
- Quartz+SpringMVC实现web定时管理任务
代码地址如下:http://www.demodashi.com/demo/13978.html 使用背景 相信大家在工作过程中,肯定会遇到很多任务定时执行,修改定时任务的时间,执行一次定时任务等等.下 ...
- 【APP接口开发】php输出json格式数据
请一定配合使用null转空字符的方法一起使用:(_unsetNull() 和 _json() 配合使用) 在一些接口的调用中,直接查询数据库出来的字段可能为null字段,但是为了简便前端的判断,需要把 ...
- cxf发布 webservice服务
导包 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar commons-collections-3.2.1.jar commons-lang-2.6.ja ...
- 【翻译】Android多线程下安全访问数据库
为了记录如何线程安全地访问你的Android数据库实例,我写下了这篇小小札记.文章中引用的项目代码请点击这里 假设你已编写了自己的 SQLiteOpenHelper. publicclas ...