[书接上篇]

NewSQL数据库

下面我们聊一聊颠覆了CAP“理论”的NewSQL类系统(兼具可扩展性、数据可用性与一致性)。确切地说NewSQL可以兼顾OLTP+OLAP,但在一般分类上,我们还是主要突出了它的交易、事务处理对ACID的支持上,因此归为OLTP阵营。

最早的NewSQL系统是H-Store15,由美国东海岸的四所大学(Brown、CMU、MIT和Yale)在美国国家科学基金会、加拿大工程与研究委员会及Intel大数据科技中心的资助下联合开发,于2007年面世。H-Store的意义在于它真的开发够早,要知道NewSQL这个词汇是2011年才出现的(451group分析师Matthew Aslett的2011年的一篇文章中首次提及)。

H-Store显然是一个学院派的NewSQL实现,距离商用还有相当距离,于是基于H-Store的商业版NewSQL实现VoltDB17应运而生。VoltDB的作者都是业界赫赫有名的大家,比如Michael Stonebreaker,此公在加州Berkeley任教期间开发了Ingres、Postgres等关系型数据库系统;后来转战到MIT任教又开发了C-Store、H-Store等系统。此公的学生也多是赫赫有名之辈,比如VMware的前COE,Diane Greene, Cloudera的创始人Mike Olson,Sybase的创始人Robert Epstein等。最后要提一点,Stonebreaker老先生现在已年逾花甲了(1943年生人),想来老先生开发VoltDB时已然是六十大几了,反观国内的研发人员不到30岁就都纷纷要转型做people-manager(经理),实在是令人唏嘘。没有持续多年的第一手技术累积所搭建出来的系统是很难经得起时间的检验的,写下这段文字,与读者共勉!

图:Michael Stonebraker 被称为数据库领域的布道者,著名的数据库科学家,美国工程院院士,2005年获得冯诺依奖、2014年获得图灵奖

业界最早的商用NewSQL系统是谷歌公司经过五年内部开发后于2012年面世的Google Spanner,它具有四大NewSQL的特性:

·ACID强一致性支持(用于交易处理)
· SQL语言支持(向后兼容)
· 支持模式化表(Schematized Table)
·半关系型数据模型(意味着数据多样性支持)

Spanner是第一个在全球范围内可以做到交易一致性的半关系型数据库(也就是说在各个大洲的数据中心之间的数据可以通过Spanner系统来实现读写同步)。Spanner系统主要用于服务谷歌的最赚钱的广告系统,而之前该系统是构建在一套相当复杂的分片化(Sharded)MySQL集群之上的。谷歌的Spanner系统显然是在可算作是NoSQL数据库鼻祖的BigTable系统之上的一次飞跃。

Spanner立足于高抽象层次,使用Paxos协议横跨多个数据集把数据分散到世界上不同数据中心的状态机中。出故障时,它能够在全球范围内响应客户副本之间的自动切换。当数据总量或服务器的数量发生改变时,为了平衡负载和处理故障,Spanner自动完成数据的重切片和跨机器,甚至跨数据中心的数据迁移。

区别于以往的任何已知NoSQL或分布式数据库,在技术架构上Spanner具备如下几个特点:

·应用可以细粒度地进行动态控制数据的副本配置。应用可以详细规定:哪个数据中心包含哪些数据,数据距离用户有多远(控制用户读取数据的延迟),不同数据副本之间距离有多远(控制写操作的延迟),以及需要维护多少个副本(控制可用性和读操作性能)。数据可以动态、透明地在数据中心之间移动,从而平衡不同数据中心内资源的使用。

· 读写操作的外部一致性,时间戳控制下的跨越数据库的全球一致性的读操作。

Spanner的这两个重要的特性使得Spanner可以支持一致性的备份、一致性的 MapReduce 执行和原子性(Atomic)的模式更新,所有这些都是在全球范围内实现,即使存在正在处理中的事务也可以。

Spanner的全球时间同步机制是用一个具有GPS和原子钟的TrueTime API提供的。TrueTime API能够将不同数据中心的时间偏差缩短在10ms内。这个API可以提供一个精确的时间,同时给出误差范围。TrueTime API直观地揭示了时钟的不可靠性,它运行提供的边界更决定了时间标记。如果不确定性很大,Spanner会降低速度来等待不确定因素的消失。

TrueTime技术被认为是Spanner可以实现跨大洋数据中心的交易强一致性的使能科技(Enabling Technology),通过它可以实现分布式lock-free的只读交易、二段锁(2PL,Two-phase Locking)写交易。下图展示的是在美国、巴西与俄罗斯三个数据中心间实现并发读写交易一致性的时序图。

图:Spanner的commit-wait与2-phase commit18

Spanner系统中还有一些引领业界潮流的架构设计。

· 一个Spanner部署实例称之为一个Universe。而谷歌在全球范围内置用了3个实例:一个开发,一个测试,一个线上。因为一个Universe就能覆盖全球,谷歌认为他们不需要更多实例了。

· 每个Zone相当于一个数据中心,一个Zone在物理上必须在一起。而一个数据中心可能有多个Zone。可以在运行时添加移除Zone。一个Zone可以理解为一个BigTable部署实例。

其他业界知名的NewSQL系统还有如下:

· Clustrix:一家旧金山的创业公司的产品,Percona早前曾做过测试表明一个3节点的集群(Cluster)比一个类似处理能力的单节点MySQL服务器性能高73%,并且Clustrix的性能随节点数增加呈线性增长!

· Gemfire XD:Pivotal公司的基于内存的IMDG(In-Memory Data Grid,数据网格产品)产品,区别于基于内存的数据库的主要之处是其强大的可扩展性(通常可以到几千个节点),尽管它也能提供部分SQL访问接口,但是更多的为了实现高性能计算和实时交易处理。经典应用场景如12306网站的车票预订系统的后台就是10对X86服务器搭建而成的Gemfire XD IMDG —每天14亿次页面浏览、每秒超过4万次访问,服务超过5,700个火车站19。

· SAP HANA:恐怕是业界最为知名的商用NewSQL型数据库系统了。一款完全基于内存的关系型列数据库(Column-oriented RDBMS),支持实时的在线分析处理(OLAP)与交易处理(OLTP)。SAP为了推出HANA前后收购了多家公司的核心技术,其中至少3个技术值得一提:基于内存TREX列搜索引擎、基于内存的P*Time OLTP数据库以及基于内存的liveCache引擎。HANA的战略重要性如此之高,SAP似乎已经把全部赌注压在其上了。整个业界对于实时性、低延迟的越来越高的期待似乎与SAP的赌注颇为吻合。到目前为止SAP HANA的客户每年在以翻倍的速度增长,而整个SAP的云计算+大数据分析战略似乎都围绕着HANA在构建。

这个列表可以很长,在此不再赘述,有兴趣深究的读者可以自行展开研究。

最后,关于NewSQL和SQL,笔者认为SQL作为一门数据库的操作语言,它有着一些天然的缺陷,而这种缺陷已经在阻碍行业的向前发展。熟悉SQL的同学都会明白几点:

SQL不是一个递归型语言,也就是说SQL不善于处理深度的数据关联、穿透,而这些诉求恰恰是业务方所看重的;
SQL同样不善于处理高维数据,或者可以理解为多表链接就会造成SQL类数据库的性能指数级下降,SQL与关系型数据库相伴而生,都是为二维表的世界而存在的,但是高维的世界用二维表来表达,杯水车薪;
SQL是面向存储进程的,而存储进程是典型的T+1类型的操作,大量的存储进程拖累了数据库,甚至把数据库的实时化OLTP能力弱化为数仓的OLAP能力,这种弱化过去几十年大行其道,不得不说是关系型数据库的一段“黑历史”;
SQL终将让路给GQL,过去40年来,数据库行业只有两个查询语言标准委员会,SQL和GQL(图查询语言),期待GQL的标准尽快出台。而GQL标准委员会的设立就是为了解决上面的几个问题。

·文/ 老孙(孙宇熙:云计算、大数据、高性能存储与计算系统架构专家 )
·END·

大数据四大阵营之OLTP阵营(下)相关推荐

  1. 大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题(以ubuntu-18.04.3、Mware Workstation 15.1.0 Pro为例)

    大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题 (以ubuntu-18.04.3.Mware Workstation 15.1.0 Pro for Window ...

  2. 海洋大数据关键技术及在灾害天气下船舶行为预测上的应用

    海洋大数据关键技术及在灾害天气下船舶行为预测上的应用 王冬海,卢峰,方晓蓉,郭刚 中电科海洋信息技术研究院有限公司,北京 100041 摘要:随着海洋数据量的爆炸式增长,海洋大数据受到越来越多的关注. ...

  3. 航测大数据量处理_【应用案例】徕卡HxMap软件并行处理环境 在大数据量、高效率处理要求下的应用...

    原标题:[应用案例]徕卡HxMap软件并行处理环境 在大数据量.高效率处理要求下的应用 1. HxMap软件简介 HxMap是徕卡航空传感器通用数据处理平台,可提供徕卡测量多款航摄仪的数据后处理以及三 ...

  4. MobTech出席人工智能创想论坛,分享AI+大数据在营销反欺诈场景下的应用

    4月23日,"智见智能•筑梦花桥"2021花桥人工智能创想论坛在沪举办.本次活动由花桥科学技术局与COCOSPACE(花桥)长三角大数据产业创新中心主办.MobTech袤博科技受邀 ...

  5. 大数据入门(八)win10下的wordcount

    目录 方法一 上传文件到hdfs java project 方法二 参考 有两种方法:方法一需要借用eclipse自己编写代码,优点是有助于理解mapreduce,缺点复杂.方法二可以直接调用Hado ...

  6. 大数据四大阵营之OLTP阵营(中)

    [书接上篇]* (4)图数据库型NoSQL – 从Neo4J到Ultipa Graph 图数据库这一概念对于行外人士而言具有比较大的误导性,很多人乍一听会以为是图像处理数据库,而不会想到这里" ...

  7. 大数据四大阵营之OLAP阵营

    OLAP阵营主要有两大主流方向: 一个是基于MapReduce而构建的Hadoop生态圈 一个是MPP(大规模并行)数据库阵营 不过MPP数据库通常兼具OLAP与OLTP的能力,所以老孙仍旧把MPP数 ...

  8. 大数据四大阵营之流数据处理阵营

    一|大数据的四大阵营是什么? 二|浅谈流数据处理阵营 数据流管理来自于这样一个概念: 数据的价值随着时间的流逝而降低,所以需要在事件发生后尽快进行处理,最好是在事件发生时就进行处理(即实时处理),对事 ...

  9. 大数据四大常识,你知道多少

    一.大数据分析的五个基本方面 1.可视化分析 大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能 ...

最新文章

  1. c语言考试经典编程题目及答案,经典练习C语言编程的题目及答案整理
  2. 40 自动化运维工具Ansible
  3. 案例驱动python编程入门-python监听socket客户端连接(驱动串口屏幕)
  4. java kafka api_kafka java API的使用
  5. 深入理解分布式技术 - 消息队列知识点回顾总结
  6. 某平台的一次简单渗透测试记录
  7. SOA理论与概念深入剖析
  8. 重庆考区非计算机专业二级等级考试vf上机题怎么建立程序文件?,计算机等级考试一级上机试题...
  9. 浅谈Java网络编程之Socket (1)
  10. Unity 游戏用XLua的HotFix实现热更原理揭秘
  11. FluentNhibernate 组件component及应用
  12. 自定义用户控件的使用
  13. Vue2.0源码阅读笔记(三):计算属性
  14. MySQL数据库Binlog解析工具--binlog2sql
  15. 如何用3D Max进行三维建模
  16. DataFormatString属性语法介绍及解决DataFormatString无效的问题
  17. BIGEMAP APP离线卫星地图数据应用
  18. java语言获取应用服务器的时间_java如何获得服务器时间
  19. 闯关H5小游戏制作推荐,教你快速上手TOM闯关游戏H5
  20. 【渝粤题库】广东开放大学 综合英语1 形成性考核

热门文章

  1. vtkImageViewer2实现彩色图与灰度图叠加显示
  2. vue 导出为pdf
  3. 查看linux内核源代码
  4. WWWFrom提交表单
  5. 2022年GDCPC广东省大学生程序设计竞赛题解
  6. LATEX中常用的插图和插表格的方法
  7. LVS三种工作模式及原理详解
  8. csv导入mysql乱码问题
  9. [BZOJ] 4247 挂饰
  10. PVCBOT【6号】光能比目鱼--太阳能翻跟斗机器人