今天给大家分享一个大数据平台建设的方法论,总阅读量10W,喜欢度1W。
在数据平台建设初期,做大数据平台的目的是为未来的数据分析打基础。那我们就必须制定一个适合企业的计划。目前,根据国内大多数企业或单位,我们可以大致将其分为几类:
1)目前企业有明确的数据分析要求,对要分析的数据有明确的目标。我知道自己要收集哪些应用数据,也知道数据分析的最终效果。这样,我们就可以用相应的应用系统收集数据,对收集到的数据进行标准化,最后进行存储、分析和建模。
2)目前,企业不知道自己数据分析的目标,但希望对大数据做一些治理和规划。
3)对于一些没有完整信息系统的企业,可能只有一两个应用。在规划信息化建设的时候,要规划好自己企业的数据建设,统一应用之间的数据标准。然后制定数据中心的规划。
总体方案设计中需要考虑的因素:
多少数据:几百GB?几十TB?数据存储在哪里:在MySQL中?在甲骨文?还是其他数据库?数据如何从当前存储系统进入大数据平台?如何将结果数据写出到其他存储系统?分析主题是什么:只有几个简单的指标?尽管如此,仍有许多统计指标需要专门人员来整理、分组和设计产品。你需要建造一个完整的仓库吗?是否需要BI报表:业务人员是否有能力操作BI,或者团队组成比较简单,不需要前端和后端人员的输入就可以方便的使用BI;大数据平台由三部分组成:
数据访问是将数据写入数据仓库,即数据集成。因为在企业中,数据可能分布在外部和内部。在外部,企业使用第三方系统生成的数据和一些公共数据是分布式的,而在内部,企业内部的IT系统生成的数据是分布式的。
这些数据一般是独立分布的,也就是所谓的数据孤岛。这个时候这些数据就没有意义了,所以数据访问就是把这些内部和外部的数据整合在一起进行分析。
对于小公司来说,找一两台机器搭建集群大概就是一个大数据平台。在初始阶段,数据量会很小,不需要太大规模。这个时候组件的选择也是非常随机的,Hadoop,任务调度的脚本或者多情酒等轻量级框架等等。数据分析可能没有导入RMDB那么快。
可能没有时间进行监控和部署。有了脚本或轻量级监控,可能就没有ganglia、nagios、puppet什么的了。这个阶段可以算是技术积累。用传统的手段还是真正的大数据平台还很模糊,但为了未来的可扩展性,此时Hadoop可能是一个不错的选择。
例如,对于您的数据访问,您可能会找到一个定时脚本或记录一个合同,以找到一个服务器来接收和写入HDFS之前,但它可能不会工作了。这些可能没有高性能,也没有异常保证,你需要更强的解决方案,比如Flume。
你的生意越做越大,老板需要看的报表越来越多,需要培训的数据需要清理,所以你需要任务调度,比如oozie或者azkaban。这些系统帮助您管理关键任务的计划和监控。
数据处理是对访问的数据进行数据清洗和ETL建模,建立数据表之间的关联、聚合、追加等关系。
最后说说数据分析。
数据分析一般包括两个阶段:数据预处理和数据建模分析。数据预处理是为后期建模分析做准备。主要工作是从海量数据中提取可用特征,构建大宽度表。Hive SQL、Spark QL和Impala可能会在此过程中使用。
数据建模分析是对预处理提取的特征/数据进行建模,得到期望的结果。如前所述,最好使用的是Spark。
在完成底层业务数据的整合后,昌九物流在业务系统数据整合的基础上,通过FineReport数据决策系统有效整合了各业务系统的实时数据,并根据各部门的需求搭建了数据分析模板。
摘要
首先要有Hadoop集群,只有HDFS和Hive之后才能进行数据访问工作,基于集群才能构建工具链。当工具链中的OLAP引擎构建好了,就会有上层的BI、报表系统和数据API。
因此,通过厘清各部分之间的关系,很容易理解大数据平台的构建过程。