大数据的概念很火,但人们对它的认识却是混乱的:有人说大数据就是指所有的数据,有人说大数据是指线上行为、日誌等半结构/非结构化的数据形态,有人说大数据就是以Hadoop为代表的新技术……到底什幺是大数据?同样风风火火了很久的云计算与大数据有什幺关係?令人眼花缭乱的众多大数据技术的本质是什幺?各有什幺优缺点?争论不休的“小变大”与“大变小”技术策略到底孰正孰邪?企业究竟应该如何定位与使用大数据,难道是为了Hadoop而Hadoop?未来的技术方向究竟如何?本书结合现代企业数据管理实践,从策略、技术、套用、企业数据架构等多个维度,体系化地对大数据及相关技术进行了全面深入的论述:首先对大数据相关概念予以澄清;接着深入剖析各种大数据技术的内在本质,指出其各自的优缺点、适用场景与相互关係;同时对大数据技术“分”与“合”这两种广受争议的技术策略的内在联繫进行了分析与讨论,明确指出现代数据管理技术的发展趋势;最后结合大数据时代企业新一代数据架构规划的实际,对大数据及相关技术在企业数据体系中的具体定位给出了切实可行的建议,并且面向云数据中心建设,提出了大数据云——云计算数据基础设施的概念与方法。
基本介绍
- 书名:纵横大数据:云计算数据基础设施
- 类型:计算机与网际网路
- 出版日期:2014年5月1日
- 语种:简体中文
- ISBN:7121232138
- 作者:何小朝
- 出版社:电子工业出版社
- 页数:244页
- 开本:16
- 品牌:电子工业出版社
基本介绍
内容简介
《纵横大数据:云计算数据基础设施》编辑推荐:1.NoSQL,NewSQL,Hadoop,InfiniData等各种云计算、大数据技术全面解读。2.《纵横大数据:云计算数据基础设施》通过对企业大数据战略、数据架构规划、大数据和云计算技术的深入解析,高屋建瓴又深入浅出地解答了大数据,云计算上的重要的方向性和技术性问题。3.甲骨文大中华区技术战略部总经理刘松、中科院博导刘世平等6位业内专家联袂推荐。4.十二五国家重点图书出版规划项目。
作者简介
北京大学计算科学技术系博士后,中国航空史研究会会员,科技部中小企业创新基金评审专家,第一届中国软体十大杰出青年候选人。1992年起从事软体的设计、开发与管理工作,涉及信息系统、数据管理、图形图像、嵌入式系统及工业设计与生产等多个领域,目前为止主持设计与开发大中型软体系统与产品二十余项;在国内外核心期刊上发表科技论文20余篇,被美国EI《工程索引》检索6篇。曾任北京北大青鸟信息工程有限责任公司总工程师,北京青鸟华光科技有限公司技术管理部部长、总经理助理、总工程师,大唐微电子科技有限公司高级项目经理等职;自2003年起,在北美从事软体系统分析与设计工作近七年之久。现任北京安德尔国际软体有限公司总经理,董事,北京先进数通科技有限公司BI事业部首席架构师。科技部中小企业创新基金评审委员中国航空史研究会会员公安部安防技术专家委员会委员中国青年科技工作者协会会员
图书目录
第1部分 大数据概论
第1章 大数据与云计算2
1.1云计算概论3
1.2大数据概论4
1.2.1现代数据管理需求分析4
1.2.2大数据的引入9
1.2.3大数据的定义与特徵10
1.2.4大数据与网际网路12
1.2.5大数据战略、大数据与大数据技术14
1.3大数据的技术实现——云计算15
1.4本章小结16
第2章 关係资料库的挑战与应对17
2.1关係资料库技术的核心特徵18
2.2主流关係资料库的挑战22
2.2.1经典DBMS的挑战22
2.2.2SharedDisk23
2.2.3SharedNothing24
2.3改进型关係资料库26
2.3.1技术改进26
2.3.2主要产品代表30
2.4本章小结40
第3章 非SQL技术简介41
3.1大数据技术家族42
3.1.1NoSQL42
3.1.2关係资料库联邦NewSQL42
3.1.3分散式海量档案管理43
3.1.4MapReduce43
3.2分与合——云计算的两种技术路线44
3.3本章小结44
第2部分 “分”为云——数据切分
第4章 NoSQL46
4.1NoSQL的引入47
4.1.1概念诠释与特徵分析47
4.1.2NoSQL的本质50
4.2NoSQL家族52
4.2.1NoSQL产品目录与分类52
4.2.2Hadoop之HBase54
4.2.3Facebook之Cassandra58
4.2.4MongoDB与CouchDB61
4.2.5OracleNoSQLDB63
4.2.6Memcached与Redis65
4.2.7图资料库Neo4J65
4.2.8其他NoSQL资料库67
4.2.9问题与疑惑67
4.3NoSQL技术探研68
4.3.1NoSQL理论基础68
4.3.2NoSQL技术手段75
4.3.3NoSQL技术解析83
4.4NoSQL与关係资料库88
4.5本章小结89
第5章 NewSQL——关係资料库联邦90
5.1资料库联邦的引入91
5.1.1企业业务数据管理面临的问题91
5.1.2垂直分库92
5.1.3水平分表93
5.1.4读写分离95
5.1.5联邦的引入97
5.2“联邦”的设计与实践99
5.2.1企业级“联邦”架构设计99
5.2.2公共基础服务设计103
5.2.3联邦的元资料库106
5.2.4联邦的套用实践107
5.3“联邦”技术分析108
5.3.1关于“垂直分库”108
5.3.2如何“水平分表”110
5.3.3关于“读写分离”112
5.3.4基本方法——分布与聚合114
5.3.5关于分散式事务116
5.3.6关联操作117
5.2.7冗余策略119
5.2.8异步解耦策略120
5.2.9使用快取122
5.2.10其他问题123
5.4资料库联邦、NoSQL与主流关係资料库124
5.4.1技术与套用——八仙过海,各显神通124
5.4.2网际网路的神话126
5.5本章小结128
第6章 档案系统联邦129
6.1问题的引入130
6.1.1关于几个数据概念的澄清130
6.1.2档案数据管理的困难131
6.1.3档案系统联邦的引入133
6.2典型开源技术介绍135
6.2.1MogileFS135
6.2.2FastDFS136
6.2.3MogileFS与FastDFS的对比138
6.3技术分析139
6.4本章小结140
第7章 平民化的分布计算——MapReduce141
7.1分散式计算概述142
7.1.1几个概念的澄清142
7.1.2分散式计算技术综述143
7.1.3MapReduce的引入147
7.2MapReduce技术介绍148
7.2.1设计思想148
7.2.2MapReduce框架介绍152
7.3MapReduce技术分析160
7.3.1关于效率160
7.3.2关于扩展性162
7.3.3关于可靠性与可用性163
7.3.4关于MapReduce与关係资料库164
7.3.5关于适用的数据类型167
7.3.6关于数据存储与管理168
7.4MapReduce的套用实践169
7.5本章小结170
第8章 后Hadoop时代171
8.1Hadoop体系及其困惑172
8.2Google的新三驾马车173
8.2.1新一代搜寻引擎Caffeine173
8.2.2大规模图处理系统Pregel174
8.2.3Dremel——秒级实现PB级数据分析175
8.3SymphonyMapReduce181
8.4后Hadoop时代即将来临181
8.5本章小结183
第9章 InfiniData—一种关係型云资料库的设计与实践184
9.1现代企业数据管理需求再分析185
9.1.1新的企业数据需求——海量关係数据管理185
9.1.2技术分析187
9.2关係型云资料库架构设计188
9.2.1关係型云资料库的引入188
9.2.2技术架构设计189
9.3云存储层192
9.3.1逻辑架构193
9.3.2物理架构194
9.3.3关係模型云存储元196
9.4云计算层198
9.4.1MapReduce云计算引擎198
9.4.2集群式云计算引擎200
9.4.3两种引擎的比较201
9.5云存储索引层202
9.5.1存储索引的管理202
9.5.2索引云运行时动态创建203
9.6技术分析203
9.7本章小结205
第3部分 云计算的分与合
第10章 合为“云”——数据整合208
10.1数据整合的需求分析209
10.2存储整合云210
10.3资料库整合云211
10.4本章小结213
第11章 关于分与合的讨论214
11.1困惑——分与合,孰是孰非?215
11.2分为技,合为神216
11.3分为雨,合为云——大数据云217
11.4数据管理技术发展趋势总结219
11.4.1数据管理物理基础设施发展趋势219
11.4.2数据管理软基础设施发展趋势220
11.5本章小结221
第12章 企业大数据技术体系与云计算数据基础设施222
12.1现代企业数据管理需求再分析223
12.2新一代企业数据体系建设225
12.2.1新一代企业数据体系建设的定义与内容225
12.2.2新一代企业数据分类体系228
12.2.3新一代企业数据分布与流转规划230
12.3大数据技术在企业数据架构中的定位234
12.3.1技术规划战略234
12.3.2大数据技术架构规划235
12.3.3典型场景——电子渠道线上行为分析238
12.4云计算数据基础设施概念的引入240
12.5本章小结242
后记——超越技术243
参考文献245
第1章 大数据与云计算2
1.1云计算概论3
1.2大数据概论4
1.2.1现代数据管理需求分析4
1.2.2大数据的引入9
1.2.3大数据的定义与特徵10
1.2.4大数据与网际网路12
1.2.5大数据战略、大数据与大数据技术14
1.3大数据的技术实现——云计算15
1.4本章小结16
第2章 关係资料库的挑战与应对17
2.1关係资料库技术的核心特徵18
2.2主流关係资料库的挑战22
2.2.1经典DBMS的挑战22
2.2.2SharedDisk23
2.2.3SharedNothing24
2.3改进型关係资料库26
2.3.1技术改进26
2.3.2主要产品代表30
2.4本章小结40
第3章 非SQL技术简介41
3.1大数据技术家族42
3.1.1NoSQL42
3.1.2关係资料库联邦NewSQL42
3.1.3分散式海量档案管理43
3.1.4MapReduce43
3.2分与合——云计算的两种技术路线44
3.3本章小结44
第2部分 “分”为云——数据切分
第4章 NoSQL46
4.1NoSQL的引入47
4.1.1概念诠释与特徵分析47
4.1.2NoSQL的本质50
4.2NoSQL家族52
4.2.1NoSQL产品目录与分类52
4.2.2Hadoop之HBase54
4.2.3Facebook之Cassandra58
4.2.4MongoDB与CouchDB61
4.2.5OracleNoSQLDB63
4.2.6Memcached与Redis65
4.2.7图资料库Neo4J65
4.2.8其他NoSQL资料库67
4.2.9问题与疑惑67
4.3NoSQL技术探研68
4.3.1NoSQL理论基础68
4.3.2NoSQL技术手段75
4.3.3NoSQL技术解析83
4.4NoSQL与关係资料库88
4.5本章小结89
第5章 NewSQL——关係资料库联邦90
5.1资料库联邦的引入91
5.1.1企业业务数据管理面临的问题91
5.1.2垂直分库92
5.1.3水平分表93
5.1.4读写分离95
5.1.5联邦的引入97
5.2“联邦”的设计与实践99
5.2.1企业级“联邦”架构设计99
5.2.2公共基础服务设计103
5.2.3联邦的元资料库106
5.2.4联邦的套用实践107
5.3“联邦”技术分析108
5.3.1关于“垂直分库”108
5.3.2如何“水平分表”110
5.3.3关于“读写分离”112
5.3.4基本方法——分布与聚合114
5.3.5关于分散式事务116
5.3.6关联操作117
5.2.7冗余策略119
5.2.8异步解耦策略120
5.2.9使用快取122
5.2.10其他问题123
5.4资料库联邦、NoSQL与主流关係资料库124
5.4.1技术与套用——八仙过海,各显神通124
5.4.2网际网路的神话126
5.5本章小结128
第6章 档案系统联邦129
6.1问题的引入130
6.1.1关于几个数据概念的澄清130
6.1.2档案数据管理的困难131
6.1.3档案系统联邦的引入133
6.2典型开源技术介绍135
6.2.1MogileFS135
6.2.2FastDFS136
6.2.3MogileFS与FastDFS的对比138
6.3技术分析139
6.4本章小结140
第7章 平民化的分布计算——MapReduce141
7.1分散式计算概述142
7.1.1几个概念的澄清142
7.1.2分散式计算技术综述143
7.1.3MapReduce的引入147
7.2MapReduce技术介绍148
7.2.1设计思想148
7.2.2MapReduce框架介绍152
7.3MapReduce技术分析160
7.3.1关于效率160
7.3.2关于扩展性162
7.3.3关于可靠性与可用性163
7.3.4关于MapReduce与关係资料库164
7.3.5关于适用的数据类型167
7.3.6关于数据存储与管理168
7.4MapReduce的套用实践169
7.5本章小结170
第8章 后Hadoop时代171
8.1Hadoop体系及其困惑172
8.2Google的新三驾马车173
8.2.1新一代搜寻引擎Caffeine173
8.2.2大规模图处理系统Pregel174
8.2.3Dremel——秒级实现PB级数据分析175
8.3SymphonyMapReduce181
8.4后Hadoop时代即将来临181
8.5本章小结183
第9章 InfiniData—一种关係型云资料库的设计与实践184
9.1现代企业数据管理需求再分析185
9.1.1新的企业数据需求——海量关係数据管理185
9.1.2技术分析187
9.2关係型云资料库架构设计188
9.2.1关係型云资料库的引入188
9.2.2技术架构设计189
9.3云存储层192
9.3.1逻辑架构193
9.3.2物理架构194
9.3.3关係模型云存储元196
9.4云计算层198
9.4.1MapReduce云计算引擎198
9.4.2集群式云计算引擎200
9.4.3两种引擎的比较201
9.5云存储索引层202
9.5.1存储索引的管理202
9.5.2索引云运行时动态创建203
9.6技术分析203
9.7本章小结205
第3部分 云计算的分与合
第10章 合为“云”——数据整合208
10.1数据整合的需求分析209
10.2存储整合云210
10.3资料库整合云211
10.4本章小结213
第11章 关于分与合的讨论214
11.1困惑——分与合,孰是孰非?215
11.2分为技,合为神216
11.3分为雨,合为云——大数据云217
11.4数据管理技术发展趋势总结219
11.4.1数据管理物理基础设施发展趋势219
11.4.2数据管理软基础设施发展趋势220
11.5本章小结221
第12章 企业大数据技术体系与云计算数据基础设施222
12.1现代企业数据管理需求再分析223
12.2新一代企业数据体系建设225
12.2.1新一代企业数据体系建设的定义与内容225
12.2.2新一代企业数据分类体系228
12.2.3新一代企业数据分布与流转规划230
12.3大数据技术在企业数据架构中的定位234
12.3.1技术规划战略234
12.3.2大数据技术架构规划235
12.3.3典型场景——电子渠道线上行为分析238
12.4云计算数据基础设施概念的引入240
12.5本章小结242
后记——超越技术243
参考文献245
序言
“云计算”与“大数据”应该说是目前IT界最为热门的两个概念了。云计算以各种软硬体资源新的消费与交付模式为核心理念,被普遍认为将会成为未来社会最为深远的革新。而现实却是:在多“云”的天空,成功的实践却少得可怜,致使其很多情况下只是充当了一个时髦的噱头。
令人遗憾的是,如今风头已远远盖过“云计算”的“大数据”,其现实情况与此类似。大数据概念最初是伴随着Hadoop等开源技术的推广而出现的,在国内外众多网际网路公司依靠它们取得巨大成功的强力推动下,传统数据管理技术的地位受到了严重的挑战,似乎不知Hadoop、不用Hadoop就会落后!但如何才能在本企业或者某个具体需求中正确有效地使用这些新技术呢?这至今依然是众多企业技术决策者的困惑。
大多数企业目前对大数据潮流的热烈回响其实是“雷声大,雨点小”,其中相当一部分是不分青红皂白,纯粹为了Hadoop而Hadoop,很少有产生实际成效的案例。本书认为,要正确回答这些问题,给出合适的决策,必须对这些技术本身进行较为深入的了解与分析,然后结合自己企业的实际,做出自己的判断。任何其他企业的经验都不可以照搬照抄;任何资料中关于各种技术的适用场景描述,即使是正确的,也都有其特殊的上下文环境,不可以当成普遍真理去盲目遵从。这里所说的对技术的了解,并不是指具体如何去使用它,而是指其内在本质、特点与相互联繫,这些往往比使用方法更重要,也是本书区别于其他大数据资料的主要特点之一。
首先,让我们看看云计算与大数据的关係,目前人们对此的理解更是混乱不堪,有人认为两者完全不同,有人则认为大数据技术其实就是云计算。对“云”,最开始,人们普遍认为那是一种採用一堆闲散资源完成一件重大任务的技术。后来,人们又意识到现代社会对“云”的诠释,其实更多的是指一种以服务为主的商业模式,而不是一种技术。现在,绝大多数人对“云”的理解停留于此,认为“云计算”与技术无关的人大都是这种思路。但在对“云”业务模式的实践中却发现,要搞“云”服务,必须从技术手段与商业模式两个维度同时入手才有意义,只拥有其中任何一个方面都是不行的,甚至可以说前者要比后者重要得多。大多数情况下,在“云”能适用的领域内,如果没有前者,后者所能提供的服务水平自然也就很有限,从而也就自然失去了“云”的含义。所以说,云计算的本质是商业模式,但其核心却仍然是技术问题。
而云在技术层面的核心问题又是什幺呢?有人认为是“小变大”的分散式计算,有人认为是“大变小”的虚拟化,而本书认为,云计算最核心的问题是数据,具体地讲,是现代业务环境下的数据管理问题,也就是能实现海量、多类型、高负载、高性能、低成本需求的数据管理技术,这实际上就是传统数据管理技术在现代的最大挑战。这其中最耀眼的,就是各种新兴的大数据家族成员的出现,包括开源体系的Hadoop、各种NoSQL资料库、NewSQL资料库(关係资料库联邦)、分散式档案系统等,甚至还包括非开源体系的新一代关係资料库。这样看来,“大数据”应该是“云计算”业务模式得以实现在数据管理层面的核心技术支撑,两者密不可分。
而从纯技术的角度看,“云计算”概念最初出现时就是指採用网路互联起来的设备共同完成一项庞大任务的技术策略,而Hadoop等流行大数据技术的核心思路大多如此。因此,我们又可以说:“云计算”是大数据的技术实现方法。这便是云计算与大数据的联繫,两者无论是在业务上,还是技术上,都是相互依存的。一句话,无论叫什幺名称,其实都是代表现代IT发展的最新进展而已。
再来看看各种流行的大数据技术本身,包括Hadoop,NoSQL,NewSQL,甚至一些新一代的关係资料库等。对它们,在现代数据管理领域内,目前的状态却是:人们普遍困惑的并不是能不能掌握这些技术的具体用法,而是到底什幺时候,在什幺场景下,如何定位与使用这些技术?这主要表现在以下几个方面。
一是如何定位新旧技术。即指新兴的以Hadoop为代表的开源技术,与传统的关係资料库技术,到底是新技术彻底颠覆传统技术,还是两者共存?如果是共存,如何共存?这是目前各个企业普遍感到困惑的最重要的问题。
二是部分技术人员对新事物只是盲从。大家在套用实践中或多或少地会遇到一些困难,于是很多技术人员就会把希望寄托在新出现的技术上,认为只要一用上如Hadoop或NoSQL这些新东西,目前的问题就会迎刃而解。接下来就立即紧张地投入到新技术的学习与使用上去,而不做是否适合自己需求的合理判断。很显然,这种对新技术的崇拜是盲目的。
三是各种技术之间出现了互相攻击、互相否定的态势。一度以来,传统的主流关係资料库(如Oracle,DB2等)在实践中出现了一些问题,主要是对高负荷环境下的海量数据套用出现了力不从心的现象,同时,其水平扩展性的限制与高昂的成本问题使客户越来越难以忍受。于是,一些非关係型的NoSQL资料库,或者一些低端资料库集群方案(如MySQL集群)就在一些场合替代了主流的商业资料库,并且表现出很优秀的性价比;另外,有些企业在分析领域也出现了以Hadoop MapReduce等开源产品全面替代关係型数据仓库的现象。于是,便出现了一种思潮,认为关係资料库最终将退出历史舞台。而另有一部分人则认为,所谓极其成功的新技术,只是昙花一现的暂时现象而已,传统的关係资料库经过改良以后,依然会是数据管理领域的王者,其他的技术会像30多年前关係资料库与其他数据管理技术之争的结果一样,逐渐消失。这些观点中,大多都是凭直觉、凭感觉、凭个人经验的判断得出,虽然不能说是武断,但如果没有令人信服的技术分析做支撑,就很难说谁对谁错。
四是新技术本身在实践中也出现了很多的问题。例如Hadoop MapReduce,虽然已经出现了Hadoop 2.0中的各项重要改进,但相信只要是真正用过它的人都知道,其在方便性、可靠性、可用性、效率等方面都还很不尽如人意。笔者记得一位很熟悉Hadoop的朋友说:“如果企业能用关係资料库解决问题,就儘量不要用它!”再如Twitter放弃了用Cassandra替代MySQL的决策,Digg使用Cassandra后出现的一系列严重问题等,都使很多人开始重新审视这些新技术。
其实,究其根本,以上现象出现的主要原因是:人们只是去学习如何使用这些新技术,却很少独立思考,对它们进行较为深入的学习与剖析;很少在设计思想、技术架构、内在本质等方面将它们与其他技术进行对比,以能在真正掌握后,做出属于自己、适合自己的判断。而这些又正是本书的主体内容。
如果在资料库技术领域继续探究,会发现NoSQL技术虽然适合海量数据的快速存取,却无法满足较複杂的关係模型数据管理及人们对习惯使用SQL语言的要求,而标準的关係资料库在水平扩展性上又严重受限。那幺,是否存在一种技术,既可以使用关係模型存储数据,使用SQL运算元据,又可以像NoSQL一样方便扩展?于是,本书还与读者分享了笔者自主研发的一个关係型云资料库的设计与实践,它既不同于目前流行的Hadoop/NoSQL等开源技术,也不同于传统的关係资料库,是一种介于两者之间的技术模式,目前的状态正好满足Hadoop与传统关係资料库都不太适用的企业级海量历史数据管理的需求,并已经在实践中取得一定的成果。接着,由该自主产品的设计实践活动出发,我们产生了对Hadoop本身许多固有技术问题更大胆的、更进一步的深入思考:PB级海量数据的批量分析能不能比Hadoop再提高一个数量级,例如,达到秒级?在保守的认识中,这样的要求似乎是不合理的,也是不可能实现的。然而大数据领域最新的技术进展—Hadoop的缔造者Google近年来一系列更前沿的、被称为“Google新三驾马车”的研究成果,通过模式(Schema)的回归与精巧的设计,已经向这样似乎是“不可能的任务”的宏伟目标迈出了一大步。这使我们意识到:技术的发展瞬息万变,Hadoop本身已不见得有多幺先进了,想要在实践中做出正确的决策,就必须不断学习,勇于创新,不断经历破与立的过程,而不能故步自封,原地不动。
除了需要对各种大数据技术手段进行深入剖析以外,当今IT界还在云计算技术两个不同的技术策略上有着广泛的争议,即“分”为云与“合”为云,前者是指数据切分后以小变大,后者是指以大变小,将分散的小资源集中整合起来管理后,再将资源进行统一的按需调度与分配。两者都称自己是云计算技术(或者说是大数据技术)的正宗,相互攻击与否定的现象极为激烈,并且各自都有坚实的成功实践为基础。表现最明显的就是以TB为代表的新兴网际网路技术力量与IBM、Oracle等老牌的资料库厂商之间关于以“分”为主的开源技术及以“合”为主的一体机技术之间的争论与竞争,可以说已经到了白热化的阶段。他们各说各话,各有千秋,已经成为企业技术决策者的主要困惑之一。而实际上,经过研究与分析,很容易就可以发现,他们所争论的“分”与“合”,看起来是完全相反的,实际上并不矛盾,其实是你中有我,我中有你,两者是有机结合的统一体,在现代数据管理的需求中都有各自的定位。企业所要做的并不是对技术策略进行非你即他的选择,而是根据自己的实际情况与需求,对各种技术与产品进行合理的定位;同时,更加重要的工作并不是某一项技术的正确定位与使用,而是能站在云数据中心建设的高度,将传统关係资料库资源与Hadoop集群资源集中起来形成PaaS平台,再对外提供分散的、数据相关的云服务,包括资料库云与Hadoop平台云,可以将之统称为大数据云。将大数据的话题提高到这样的层面,虽然相关的资源池调度与分配技术也非常重要,但更重要的却已经是面向云计算的大数据服务模式了。
另一方面,虽然关係资料库将与Hadoop等技术共存的思想被大多数人接受,也是本书所认同的观点,但广大读者可能还注意到一个现象:新兴的Hadoop/NoSQL等非SQL技术在不断发展的过程中,已经在逐步引进一些原本属于SQL技术体系的功能,如索引与事务;而关係资料库领域,也在逐步将这些新兴的技术引入其技术体系,如AsterData与最新Oracle 12C所具备的InDB MapReduce功能,都是除原有的SQL引擎以外,在其资料库内引入MapReduce处理引擎。那幺,未来数据管理技术的发展趋势究竟如何呢?我们说,在物理基础设施上,分散式集群架构应该是未来发展的大趋势,而在软基础设施层面,虽然SQL与非SQL技术体系在相当长的时间内会共存,但未来的趋势是相互融合的。现在看来,起码对数据管理技术来讲,开源是大趋势,摒弃产品销售为主导的商业模式,以技术服务为主体应该是各大厂商应该儘早考虑的策略。
在本书最后,笔者结合企业数据架构规划的实际,针对当今各个企业在回响大数据潮流时最为关心、最为困惑的问题:“到底如何在本企业实施与推广大数据”给出了切实可行的建议。可以看到,企业引入大数据的本质就是:以适合更多更广的数据源,以及提供更强大的数据管理处理能力为目标,面向新时代的业务规划(如网际网路金融),对现有数据体系的各个层面(包括採集、传输、加工、集成、分析、展现等)进行全面改造,推出大数据时代的新一代企业级数据架构,并将其作为现代企业IT架构的重要组成部分之一。笔者认为,企业引入云计算与大数据的战略思想应该是:“业务上是改造,技术上是改进;业务上是创新,技术上是补充”,仅供企业参考。
最后藉此机会向王建波、李鹏、葛荪葳等朋友表示感谢,与他们的讨论使我受益匪浅,也一併感谢所有对我的写作有过帮助的人。希望本书是一个成功的尝试,同时也希望能为广大读者与企业的相关设计、规划与实践活动提供有用的借鉴与帮助。
何小朝
2014年2月
令人遗憾的是,如今风头已远远盖过“云计算”的“大数据”,其现实情况与此类似。大数据概念最初是伴随着Hadoop等开源技术的推广而出现的,在国内外众多网际网路公司依靠它们取得巨大成功的强力推动下,传统数据管理技术的地位受到了严重的挑战,似乎不知Hadoop、不用Hadoop就会落后!但如何才能在本企业或者某个具体需求中正确有效地使用这些新技术呢?这至今依然是众多企业技术决策者的困惑。
大多数企业目前对大数据潮流的热烈回响其实是“雷声大,雨点小”,其中相当一部分是不分青红皂白,纯粹为了Hadoop而Hadoop,很少有产生实际成效的案例。本书认为,要正确回答这些问题,给出合适的决策,必须对这些技术本身进行较为深入的了解与分析,然后结合自己企业的实际,做出自己的判断。任何其他企业的经验都不可以照搬照抄;任何资料中关于各种技术的适用场景描述,即使是正确的,也都有其特殊的上下文环境,不可以当成普遍真理去盲目遵从。这里所说的对技术的了解,并不是指具体如何去使用它,而是指其内在本质、特点与相互联繫,这些往往比使用方法更重要,也是本书区别于其他大数据资料的主要特点之一。
首先,让我们看看云计算与大数据的关係,目前人们对此的理解更是混乱不堪,有人认为两者完全不同,有人则认为大数据技术其实就是云计算。对“云”,最开始,人们普遍认为那是一种採用一堆闲散资源完成一件重大任务的技术。后来,人们又意识到现代社会对“云”的诠释,其实更多的是指一种以服务为主的商业模式,而不是一种技术。现在,绝大多数人对“云”的理解停留于此,认为“云计算”与技术无关的人大都是这种思路。但在对“云”业务模式的实践中却发现,要搞“云”服务,必须从技术手段与商业模式两个维度同时入手才有意义,只拥有其中任何一个方面都是不行的,甚至可以说前者要比后者重要得多。大多数情况下,在“云”能适用的领域内,如果没有前者,后者所能提供的服务水平自然也就很有限,从而也就自然失去了“云”的含义。所以说,云计算的本质是商业模式,但其核心却仍然是技术问题。
而云在技术层面的核心问题又是什幺呢?有人认为是“小变大”的分散式计算,有人认为是“大变小”的虚拟化,而本书认为,云计算最核心的问题是数据,具体地讲,是现代业务环境下的数据管理问题,也就是能实现海量、多类型、高负载、高性能、低成本需求的数据管理技术,这实际上就是传统数据管理技术在现代的最大挑战。这其中最耀眼的,就是各种新兴的大数据家族成员的出现,包括开源体系的Hadoop、各种NoSQL资料库、NewSQL资料库(关係资料库联邦)、分散式档案系统等,甚至还包括非开源体系的新一代关係资料库。这样看来,“大数据”应该是“云计算”业务模式得以实现在数据管理层面的核心技术支撑,两者密不可分。
而从纯技术的角度看,“云计算”概念最初出现时就是指採用网路互联起来的设备共同完成一项庞大任务的技术策略,而Hadoop等流行大数据技术的核心思路大多如此。因此,我们又可以说:“云计算”是大数据的技术实现方法。这便是云计算与大数据的联繫,两者无论是在业务上,还是技术上,都是相互依存的。一句话,无论叫什幺名称,其实都是代表现代IT发展的最新进展而已。
再来看看各种流行的大数据技术本身,包括Hadoop,NoSQL,NewSQL,甚至一些新一代的关係资料库等。对它们,在现代数据管理领域内,目前的状态却是:人们普遍困惑的并不是能不能掌握这些技术的具体用法,而是到底什幺时候,在什幺场景下,如何定位与使用这些技术?这主要表现在以下几个方面。
一是如何定位新旧技术。即指新兴的以Hadoop为代表的开源技术,与传统的关係资料库技术,到底是新技术彻底颠覆传统技术,还是两者共存?如果是共存,如何共存?这是目前各个企业普遍感到困惑的最重要的问题。
二是部分技术人员对新事物只是盲从。大家在套用实践中或多或少地会遇到一些困难,于是很多技术人员就会把希望寄托在新出现的技术上,认为只要一用上如Hadoop或NoSQL这些新东西,目前的问题就会迎刃而解。接下来就立即紧张地投入到新技术的学习与使用上去,而不做是否适合自己需求的合理判断。很显然,这种对新技术的崇拜是盲目的。
三是各种技术之间出现了互相攻击、互相否定的态势。一度以来,传统的主流关係资料库(如Oracle,DB2等)在实践中出现了一些问题,主要是对高负荷环境下的海量数据套用出现了力不从心的现象,同时,其水平扩展性的限制与高昂的成本问题使客户越来越难以忍受。于是,一些非关係型的NoSQL资料库,或者一些低端资料库集群方案(如MySQL集群)就在一些场合替代了主流的商业资料库,并且表现出很优秀的性价比;另外,有些企业在分析领域也出现了以Hadoop MapReduce等开源产品全面替代关係型数据仓库的现象。于是,便出现了一种思潮,认为关係资料库最终将退出历史舞台。而另有一部分人则认为,所谓极其成功的新技术,只是昙花一现的暂时现象而已,传统的关係资料库经过改良以后,依然会是数据管理领域的王者,其他的技术会像30多年前关係资料库与其他数据管理技术之争的结果一样,逐渐消失。这些观点中,大多都是凭直觉、凭感觉、凭个人经验的判断得出,虽然不能说是武断,但如果没有令人信服的技术分析做支撑,就很难说谁对谁错。
四是新技术本身在实践中也出现了很多的问题。例如Hadoop MapReduce,虽然已经出现了Hadoop 2.0中的各项重要改进,但相信只要是真正用过它的人都知道,其在方便性、可靠性、可用性、效率等方面都还很不尽如人意。笔者记得一位很熟悉Hadoop的朋友说:“如果企业能用关係资料库解决问题,就儘量不要用它!”再如Twitter放弃了用Cassandra替代MySQL的决策,Digg使用Cassandra后出现的一系列严重问题等,都使很多人开始重新审视这些新技术。
其实,究其根本,以上现象出现的主要原因是:人们只是去学习如何使用这些新技术,却很少独立思考,对它们进行较为深入的学习与剖析;很少在设计思想、技术架构、内在本质等方面将它们与其他技术进行对比,以能在真正掌握后,做出属于自己、适合自己的判断。而这些又正是本书的主体内容。
如果在资料库技术领域继续探究,会发现NoSQL技术虽然适合海量数据的快速存取,却无法满足较複杂的关係模型数据管理及人们对习惯使用SQL语言的要求,而标準的关係资料库在水平扩展性上又严重受限。那幺,是否存在一种技术,既可以使用关係模型存储数据,使用SQL运算元据,又可以像NoSQL一样方便扩展?于是,本书还与读者分享了笔者自主研发的一个关係型云资料库的设计与实践,它既不同于目前流行的Hadoop/NoSQL等开源技术,也不同于传统的关係资料库,是一种介于两者之间的技术模式,目前的状态正好满足Hadoop与传统关係资料库都不太适用的企业级海量历史数据管理的需求,并已经在实践中取得一定的成果。接着,由该自主产品的设计实践活动出发,我们产生了对Hadoop本身许多固有技术问题更大胆的、更进一步的深入思考:PB级海量数据的批量分析能不能比Hadoop再提高一个数量级,例如,达到秒级?在保守的认识中,这样的要求似乎是不合理的,也是不可能实现的。然而大数据领域最新的技术进展—Hadoop的缔造者Google近年来一系列更前沿的、被称为“Google新三驾马车”的研究成果,通过模式(Schema)的回归与精巧的设计,已经向这样似乎是“不可能的任务”的宏伟目标迈出了一大步。这使我们意识到:技术的发展瞬息万变,Hadoop本身已不见得有多幺先进了,想要在实践中做出正确的决策,就必须不断学习,勇于创新,不断经历破与立的过程,而不能故步自封,原地不动。
除了需要对各种大数据技术手段进行深入剖析以外,当今IT界还在云计算技术两个不同的技术策略上有着广泛的争议,即“分”为云与“合”为云,前者是指数据切分后以小变大,后者是指以大变小,将分散的小资源集中整合起来管理后,再将资源进行统一的按需调度与分配。两者都称自己是云计算技术(或者说是大数据技术)的正宗,相互攻击与否定的现象极为激烈,并且各自都有坚实的成功实践为基础。表现最明显的就是以TB为代表的新兴网际网路技术力量与IBM、Oracle等老牌的资料库厂商之间关于以“分”为主的开源技术及以“合”为主的一体机技术之间的争论与竞争,可以说已经到了白热化的阶段。他们各说各话,各有千秋,已经成为企业技术决策者的主要困惑之一。而实际上,经过研究与分析,很容易就可以发现,他们所争论的“分”与“合”,看起来是完全相反的,实际上并不矛盾,其实是你中有我,我中有你,两者是有机结合的统一体,在现代数据管理的需求中都有各自的定位。企业所要做的并不是对技术策略进行非你即他的选择,而是根据自己的实际情况与需求,对各种技术与产品进行合理的定位;同时,更加重要的工作并不是某一项技术的正确定位与使用,而是能站在云数据中心建设的高度,将传统关係资料库资源与Hadoop集群资源集中起来形成PaaS平台,再对外提供分散的、数据相关的云服务,包括资料库云与Hadoop平台云,可以将之统称为大数据云。将大数据的话题提高到这样的层面,虽然相关的资源池调度与分配技术也非常重要,但更重要的却已经是面向云计算的大数据服务模式了。
另一方面,虽然关係资料库将与Hadoop等技术共存的思想被大多数人接受,也是本书所认同的观点,但广大读者可能还注意到一个现象:新兴的Hadoop/NoSQL等非SQL技术在不断发展的过程中,已经在逐步引进一些原本属于SQL技术体系的功能,如索引与事务;而关係资料库领域,也在逐步将这些新兴的技术引入其技术体系,如AsterData与最新Oracle 12C所具备的InDB MapReduce功能,都是除原有的SQL引擎以外,在其资料库内引入MapReduce处理引擎。那幺,未来数据管理技术的发展趋势究竟如何呢?我们说,在物理基础设施上,分散式集群架构应该是未来发展的大趋势,而在软基础设施层面,虽然SQL与非SQL技术体系在相当长的时间内会共存,但未来的趋势是相互融合的。现在看来,起码对数据管理技术来讲,开源是大趋势,摒弃产品销售为主导的商业模式,以技术服务为主体应该是各大厂商应该儘早考虑的策略。
在本书最后,笔者结合企业数据架构规划的实际,针对当今各个企业在回响大数据潮流时最为关心、最为困惑的问题:“到底如何在本企业实施与推广大数据”给出了切实可行的建议。可以看到,企业引入大数据的本质就是:以适合更多更广的数据源,以及提供更强大的数据管理处理能力为目标,面向新时代的业务规划(如网际网路金融),对现有数据体系的各个层面(包括採集、传输、加工、集成、分析、展现等)进行全面改造,推出大数据时代的新一代企业级数据架构,并将其作为现代企业IT架构的重要组成部分之一。笔者认为,企业引入云计算与大数据的战略思想应该是:“业务上是改造,技术上是改进;业务上是创新,技术上是补充”,仅供企业参考。
最后藉此机会向王建波、李鹏、葛荪葳等朋友表示感谢,与他们的讨论使我受益匪浅,也一併感谢所有对我的写作有过帮助的人。希望本书是一个成功的尝试,同时也希望能为广大读者与企业的相关设计、规划与实践活动提供有用的借鉴与帮助。
何小朝
2014年2月
名人推荐
大数据概念虽然很火,但对企业来讲,却依然存在很多亟待解决的问题:以Hadoop为代表的新兴技术在网际网路企业取得了巨大的成功,而金融、电信等传统行业应该如何借鉴?这些新兴技术与过去我们熟悉的关係资料库技术之间是什幺关係,它们会彻底颠覆关係资料库吗?各种大数据技术的本质特徵究竟是什幺?在现代企业数据体系建设中,新兴的Hadoop等技术到底应该如何正确定位?本书作者结合自身经验对这些问题进行了解答,并且可以引发企业结合自己的实际进行深入的思考,值得一读。
——中国建设银行厦门开发中心总工程师陈铭新
关于云计算、大数据、网际网路等互相渗透、依存的概念,目前着述众多,其角度不同,对象各异,但缺乏一个从策略到实践的清晰指南。何博士结合自己在大数据和云计算上的丰富经验,通过企业大数据战略、数据架构规划、大数据和云计算技术的深入解析,高屋建瓴又深入浅出地解答了大数据、云计算上重要的方向性和技术性问题。本书观点犀利,有战略高度,有技术细节,自成体系。对企业大数据策略的建立、技术方向的确定和具体实施有重要指导意义。
——泰康人寿首席信息官刘大力
2013年年初就流行一个说法:2013年是大数据元年。现在看来这个说法一点不为过。随着网际网路金融、移动套用的火爆,大数据已经不再是一个模糊的、深不可测的概念,它的相关套用已经开始进入并且影响人们的日常生活,很多企业也把大数据提升到公司的战略发展层面加以考虑。在大数据套用火爆的环境下,很多人却忽略了它的底层技术架构。事实上,根据不同的套用需求,选择合适的大数据技术,规划合适的基础技术架构,以应对未来的发展,对于企业的大数据战略来说仍然是至关重要的。本书作者何小朝博士长期从事并行处理、云计算、Hadoop等领域的谘询、规划和研发工作,本书充分体现了小朝在此领域的经验积累,紧密结合企业数据建设实践,对企业的大数据规划建设给出具体实用的指导意见,通过对各种技术的深入剖析,指出它们本质性的特点,使读者能更好地了解各种技术的适用场景。
——文思海辉高级副总裁王闯舟
大数据很火,连央视新闻都拿大数据说事,但何为大数据?大数据与传统的资料库、BI有何关联?为何高到各国政府的领导人,低到普通编程人员都觉得不知道大数据就落伍了?这需要在概念上,在技术实现上,在产品选择上,在研发/投资的方向上,釐清思路,不要人云亦云,把握错了方向与路线。我觉得该着作应该能够解答当下大家普遍关心与疑惑的问题,希望各位读者能通过阅读本书找到一个正确的解答。
——华胜天成首席技术官杨準
——中国建设银行厦门开发中心总工程师陈铭新
关于云计算、大数据、网际网路等互相渗透、依存的概念,目前着述众多,其角度不同,对象各异,但缺乏一个从策略到实践的清晰指南。何博士结合自己在大数据和云计算上的丰富经验,通过企业大数据战略、数据架构规划、大数据和云计算技术的深入解析,高屋建瓴又深入浅出地解答了大数据、云计算上重要的方向性和技术性问题。本书观点犀利,有战略高度,有技术细节,自成体系。对企业大数据策略的建立、技术方向的确定和具体实施有重要指导意义。
——泰康人寿首席信息官刘大力
2013年年初就流行一个说法:2013年是大数据元年。现在看来这个说法一点不为过。随着网际网路金融、移动套用的火爆,大数据已经不再是一个模糊的、深不可测的概念,它的相关套用已经开始进入并且影响人们的日常生活,很多企业也把大数据提升到公司的战略发展层面加以考虑。在大数据套用火爆的环境下,很多人却忽略了它的底层技术架构。事实上,根据不同的套用需求,选择合适的大数据技术,规划合适的基础技术架构,以应对未来的发展,对于企业的大数据战略来说仍然是至关重要的。本书作者何小朝博士长期从事并行处理、云计算、Hadoop等领域的谘询、规划和研发工作,本书充分体现了小朝在此领域的经验积累,紧密结合企业数据建设实践,对企业的大数据规划建设给出具体实用的指导意见,通过对各种技术的深入剖析,指出它们本质性的特点,使读者能更好地了解各种技术的适用场景。
——文思海辉高级副总裁王闯舟
大数据很火,连央视新闻都拿大数据说事,但何为大数据?大数据与传统的资料库、BI有何关联?为何高到各国政府的领导人,低到普通编程人员都觉得不知道大数据就落伍了?这需要在概念上,在技术实现上,在产品选择上,在研发/投资的方向上,釐清思路,不要人云亦云,把握错了方向与路线。我觉得该着作应该能够解答当下大家普遍关心与疑惑的问题,希望各位读者能通过阅读本书找到一个正确的解答。
——华胜天成首席技术官杨準