大数据理论与工程实践
上QQ阅读APP看书,第一时间看更新

工程角度的大数据历史

大家都知道,科技的发展不是孤立的,苹果也不是凭空从天上掉下来的。在它砸在牛顿脑袋上之前,它总应该是长在某棵树上的。按牛顿那句被曲解的名言所说,大家都是站在巨人的肩膀上的。

一般都认为大数据的发展源于Google在2003年年底发表的MapReduce一文Jeffrey Dean & Sanjay Ghemawat, MapReduce: Simplified Data Processingon Large Clusters, OSDI 2004.。而实际上这篇论文只是把一类大数据问题抽象化,从而建立了一套实用的计算模型,极大地促进了大数据技术的发展。

而按照前文的基本处理模型,实际上很多的必要步骤和技术要素都已经经过了长时间的发展和完善,甚至很多技术都已经应用很久了。从这个角度而言,大数据也是一种新瓶装旧酒的概念。当然,经过最近15年的发展,特别是和人工智能各项技术结合之后,大数据概念已经脱胎换骨,同使用某些类似技术的旧瓶概念相比,已经完全不同了。

图1-1中所示的大数据基本处理模型同二十多年前的日志处理和分析系统的结构几乎完全相同。当然,日志处理和分析系统的数据采集环节采集的都是日志信息;数据存储环节使用的一般是文本文件或者关系型数据库;数据分析环节有的用自行编写的脚本,有的利用New Relic之类的分析工具;而数据使用也许会采用类似Crystal Report的通用报表展示系统,当然也可以自行编写。事实上,目前的日志处理和分析已经形成了完整的框架,如使用ELK框架进行日志分析。其中的E、L、K分别代表Elasticsearch,Logstash, Kibana,分别解决日志处理中的查询、存储和展示问题。

在数据采集环节,即使不考虑日志采集类的技术和应用,物联网也已经发展了很多年,传感器的开发和应用也有超过二十年的历史。同样的,随着摄像头的广泛部署,视频采集技术和该技术相关的传输技术也发展了二十多年,如H.264标准H.264标准是ISO/IEC 14496定义的MPEG-4的第十部分。发布之前就已经有了H.263及H.261等标准。

在数据存储领域,NAS(Network Attached Storage)和SAN(Storage Area Network)发展了很多年。其中,大数据存储使用的很多技术是和SAN相通的,包括分片、寻址、容错、恢复、通信等。甚至在很多大数据应用中,人们会直接使用NAS服务或者专用存储设备来存储数据,如Glaster FS或者EMC的存储设备。这种时候,一般不能采用本书中特指的大数据处理方式来处理数据,而会采用比较传统的文件或者关系型数据库方式。很多云服务商甚至提供了基于存储网络(Storage Network)原理的云存储服务。同样的,大数据处理集群也采用类似策略,只是数据的访问对上层处理而言更加确定。当然,用户仍旧不需要关心具体的存储策略,直接使用即可。

在数据处理方面,大数据处理在本质上是分布式处理和相关通信技术、平台的延伸。例如,20世纪著名的网格计算(Grid Computing)虽然和大数据常常依赖的云计算(Cloud Computing)云计算不完全是计算技术,更多的是资源管理和调度技术。但是云计算本身是一个多层概念,在SaaS层,可以被看作是一种计算技术。有不同点,但它们都是分布式计算(Distributed Computing)的衍生技术。至于分布式计算的发展就更加久远了,在20世纪六七十年代发展起来的ARPANET(Internet的前身)可以被看作是分布式计算的一种应用。

因此,目前快速发展的大数据技术是基于这些成熟的技术,为了解决具有前文列举的特性的特定应用问题,通过建立和目前软硬件水平相适应的存储技术、计算模型,而逐步发展起来的。