关于大数据和云计算的关系人们通常会有误解。而且也会把它们混起来说,分别做一句话直白解释就是:云计算就是硬件资源的虚拟化;大数据就是海量数据的高效处理。
虽然上面的一句话解释不是非常的贴切,但是可以帮助你简单的理解二者的区别。另外,如果做一个更形象的解释,云计算相当于我们的计算机和操作系统,将大量的硬件资源虚拟化之后再进行分配使用,在云计算领域目前的老大应该算是Amazon,可以说为云计算提供了商业化的标准,另外值得关注的还有VMware(其实从这一点可以帮助你理解云计算和虚拟化的关系),开源的云平台最有活力的就是Openstack了;
大数据相当于海量数据的“数据库”,而且通观大数据领域的发展也能看出,当前的大数据处理一直在向着近似于传统数据库体验的方向发展,Hadoop的产生使我们能够用普通机器建立稳定的处理TB级数据的集群,把传统而昂贵的并行计算等概念一下就拉到了我们的面前,但是其不适合数据分析人员使用(因为MapReduce开发复杂),所以PigLatin和Hive出现了(分别是Yahoo!和facebook发起的项目,说到这补充一下,在大数据领域Google、facebook、twitter等前沿的互联网公司作出了很积极和强大的贡献),为我们带来了类SQL的操作,到这里操作方式像SQL了,但是处理效率很慢,绝对和传统的数据库的处理效率有天壤之别,所以人们又在想怎样在大数据处理上不只是操作方式类SQL,而处理速度也能“类SQL”,Google为我们带来了Dremel/PowerDrill等技术,Cloudera(Hadoop商业化最强的公司,Hadoop之父cutting就在这里负责技术领导)的Impala也出现了。
整体来看,未来的趋势是,云计算作为计算资源的底层,支撑着上层的大数据处理,而大数据的发展趋势是,实时交互式的查询效率和分析能力,借用Google一篇技术论文中的话,“动一下鼠标就可以在秒级操作PB级别的数据”难道不让人兴奋吗?
在谈大数据的时候,首先谈到的就是大数据的4V特性,即类型复杂,海量,快速和价值。IBM原来谈大数据的时候谈3V,没有价值这个V。而实际我们来看4V更加恰当,价值才是大数据问题解决的最终目标,其它3V都是为价值目标服务。在有了4V的概念后,就很容易简化的来理解大数据的核心,即大数据的总体架构包括三层,数据存储,数据处理和数据分析。类型复杂和海量由数据存储层解决,快速和时效性要求由数据处理层解决,价值由数据分析层解决。
数据先要通过存储层存储下来,然后根据数据需求和目标来建立相应的数据模型和数据分析指标体系对数据进行分析产生价值。而中间的时效性又通过中间数据处理层提供的强大的并行计算和分布式计算能力来完成。三层相互配合,让大数据最终产生价值。
数据存储层
数据有很多分法,有结构化,半结构化,非结构化;也有元数据,主数据,业务数据;还可以分为GIS,视频,文件,语音,业务交易类各种数据。传统的结构化数据库已经无法满足数据多样性的存储要求,因此在RDBMS基础上增加了两种类型,一种是hdfs可以直接应用于非结构化文件存储,一种是nosql类数据库,可以应用于结构化和半结构化数据存储。
从存储层的搭建来说,关系型数据库,NoSQL数据库和hdfs分布式文件系统三种存储方式都需要。业务应用根据实际的情况选择不同的存储模式,但是为了业务的存储和读取方便性,我们可以对存储层进一步的封装,形成一个统一的共享存储服务层,简化这种操作。从用户来讲并不关心底层存储细节,只关心数据的存储和读取的方便性,通过共享数据存储层可以实现在存储上的应用和存储基础设置的彻底解耦。
数据处理层
数据处理层核心解决问题在于数据存储出现分布式后带来的数据处理上的复杂度,海量存储后带来了数据处理上的时效性要求,这些都是数据处理层要解决的问题。
在传统的云相关技术架构上,可以将hive,pig和hadoop-mapreduce框架相关的技术内容全部划入到数据处理层的能力。原来我思考的是将hive划入到数据分析层能力不合适,因为hive重点还是在真正处理下的复杂查询的拆分,查询结果的重新聚合,而mapreduce本身又实现真正的分布式处理能力。
mapreduce只是实现了一个分布式计算的框架和逻辑,而真正的分析需求的拆分,分析结果的汇总和合并还是需要hive层的能力整合。最终的目的很简单,即支持分布式架构下的时效性要求。
数据分析层
最后回到分析层,分析层重点是真正挖掘大数据的价值所在,而价值的挖掘核心又在于数据分析和挖掘。那么数据分析层核心仍然在于传统的BI分析的内容。包括数据的维度分析,数据的切片,数据的上钻和下钻,cube等。
数据分析我只关注两个内容,一个就是传统数据仓库下的数据建模,在该数据模型下需要支持上面各种分析方法和分析策略;其次是根据业务目标和业务需求建立的KPI指标体系,对应指标体系的分析模型和分析方法。解决这两个问题基本解决数据分析的问题。
传统的BI分析通过大量的ETL数据抽取和集中化,形成一个完整的数据仓库,而基于大数据的BI分析,可能并没有一个集中化的数据仓库,或者将数据仓库本身也是分布式的了,BI分析的基本方法和思路并没有变化,但是落地到执行的数据存储和数据处理方法却发生了大变化。
谈了这么多,核心还是想说明大数据两大核心为云技术和BI,离开云技术大数据没有根基和落地可能,离开BI和价值,大数据又变化为舍本逐末,丢弃关键目标。简单总结就是大数据目标驱动是BI,大数据实施落地式云技术。