1.2 大数据的技术转型

直至今天,我们无论是使用ATM机取款、预订航班机票,还是查询交通违章信息,都离不开关系数据库,都依托于背后的关系数据库的数据事务处理。在事务处理上,关系模型无处不在。关系数据库模型成功的关键之处,在于该模型的标准化。每个数据单元在一个表中只会出现一次,这不但减少了冗余的存储成本,而且还使得数据修改只发生在一个位置,数据的一致性得以保持。表中的某一列可被指定为主键,主键是一个保证无二义性地检索单条记录的属性值,还可以在查询语法中使用主键来连接这些关系。关系数据库还创造出了结构化查询语言(Structured Query Language, SQL)来表达关系查询。关系型数据库为存储和查询数据提供了非常灵活的模型。

关系数据库模型的另一个重要概念是事务。事务管理器(或者一个事务处理服务)在一个工作单元中维护数据的完整性。一组操作被当作一个工作单元(unit),在一个工作单元中,操作的所有部分一起成功,或失败并恢复。

凡符合关系模型的数据库,在事务处理上需要满足被称为ACID的特性。

●原子性(Atomicity):一个事务要被完全地、无二义性地做完或撤销。在任何操作出现一个错误的情况下,构成事务的所有操作的效果必须被撤销,数据应被回滚到事务开始前的状态。

●一致性(Consistency):一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成了一个成功的事务时,数据应处于一致的状态。一个一致的事务将保护定义在数据上的所有完整性约束。

●隔离性(Isolation):在同一个环境中,可能有多个事务并发执行,而每个事务都应表现为独立执行。串行地执行一系列事务的效果应该等同于并发地执行它们。在一个事务执行的过程中,数据的中间状态不应该被暴露给所有的其他事务;两个并发的事务应该不能操作同一项数据。

●持久性(Durability):一个被完成的事务的效果应该是持久的。只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。

关系数据库有两个强制性要求:对数据要预先理解,在进行插入操作之前,必须先定义好模式和关系;在写入操作发生后,保持数据的一致性。

可扩展性是这种计算模式的一大缺陷。当数据容量更大、并发处理性能需求更高时,唯有提高服务器性能指标和可靠性,这是典型的向上扩展模式(Scale Up)。即使可采用并行数据库集群,最多也只能管理有限数量的服务器,而且这种并行数据库也同样要求高配置的服务器才可以运转,其成本之高可以想象。

随着信息技术的进步,相比较而言,软件的重要性将下降,数据的重要性将上升。人类处理、传输和保存数据的能力不断增强。

20多年来,CPU的性能提高了3500倍;内存和磁盘的价格下降到了原来的450万分之一和360万分之一;主干网络带宽每6个月增加1倍,而每比特费用将趋于零。

另一方面,人类生产数据的能力也在增强,数据正在发生井喷式的增长。这与互联网、移动互联网、社交网络以及未来物联网大潮的高速发展直接相关。特别是智能手机等手持设备和社交网络的广泛使用,使得越来越多的人能够将可支配时间投入到各种应用中,而未来物联网的发展,任意物品和设施都有可能24小时不间断地产生状态数据。

让我们看一看当今互联网应用场景:Facebook管理了超过400亿张图片,所需存储空间超过100PB,每天发布的新消息超过60亿条,所需的存储空间超过10TB;Twitter一天产生1.9亿条微博;搜索引擎一天产生的日志高达35TB,Google一天处理的数据量超过25PB;YouTube一天上传的视频总时长为5万小时……。

数据量的衡量单位,从小到大依次为KB、MB、GB、TB、PB、EB和ZB,相互之间的转换公式为1024KB=1MB;1024MB=1GB;1024GB=1TB;1024TB=1PB;1024PB=1EB;1024EB=1ZB。我们曾经经历过MB存储时代、GB存储时代,随着IT技术的快速发展,我们迈入了TB时代,而现在正向PB、EB时代迁移。

尽管随着时间的推移,商用计算机硬件变得越来越便宜,但是,从历史和经济的角度来看,持续不断地升级到更高配置的服务器硬件是不可行的。花费数倍的价钱升级一个大型机器,可能无法提供同样倍数的性能。相比之下,性能一般的小型服务器仍然很便宜。一般情况下,从经济的角度来看,水平扩展更有意义。换句话说,应该简单地为系统增加更多便宜的机器,而不是试图将一个关系型数据库放到一台昂贵的大型服务器上。

以关系数据库技术,不可能支撑今天大数据的应用场景。

对于很多应用场景,尤其是互联网相关应用来说,并不像银行业务等对数据的一致性有很高的要求,而更看重数据的高可用性以及架构的可扩展性等技术因素。因此,NoSQL数据库应运而生,作为适应不同应用场景要求的新型数据存储与处理架构,它与传统数据库有很强的互补作用,而且应用场景更加广泛。例如,Yahoo公司通过部署包含4000台普通服务器的Hadoop集群,可以存储和处理高达4PB的数据,整个分布式架构具有非常强的可扩展性。NoSQL数据库的广泛使用,代表了一种技术范型的转换。