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