整体来看, 未来的趋势是, 云计算作为计算资源的底层, 支撑着上层的大数据处理, 而大数据的发展趋势是, 实时交互式的查询效率和分析能力, 当前的大数据处理一直在向着近似于传统数据库体验的方向发展.
关于大数据和云计算的关系人们通常会有误解. 而且也会把它们混起来说, 分别做一句话直白解释就是: 云计算就是硬件资源的虚拟化; 大数据就是海量数据的高效处理. 如果做一个更形象的解释, 云计算相当于我们的计算机和操作系统, 将大量的硬件资源虚拟化之后再进行分配使用; 大数据则相当于海量数据的 "数据库".
整体来看, 未来的趋势是, 云计算作为计算资源的底层, 支撑着上层的大数据处理, 而大数据的发展趋势是, 实时交互式的查询效率和分析能力, 当前的大数据处理一直在向着近似于传统数据库体验的方向发展.
大数据的 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, 大数据实施落地式云技术.
来源: http://bigdata.51cto.com/art/201807/579332.htm