大数据分析项目生命周期

前言

这里说的分析是狭义上的数据分析,并不包含数据挖掘,它们之间具体的区别后续文章会详细描述
这里只做一个简单的总结如下表:

差异角度 数据分析 数据挖掘
定义 描述和探索性分析,评估现状和修正不足 技术性的“采矿”,发现未知的模式和规律
侧重点 实际的业务 挖掘技术的落实,完成“采矿”过程
技能 统计学、数据库、Excel、可视化等 过硬的数学功底和编程技术
结果 需结合业务知识解读统计结果 模型或规则

数据分析流程图

大数据分析项目生命周期_第1张图片

流程详解

1.识别问题和结果

首先要明确项目的业务问题和期望的结果,以便确定需要哪些数据,可以进行哪些分析。业务问题的一些示例是公司销售额下降、客户访问了网站但没有购买产品、客户放弃了购物车、支持电话热线呼叫量的突然增加等。而项目成果的一些示例是把购买率提高10%、将购物车放弃率降低50%、在下一季度让支持电话量减少50%的同时保持客户满意度。

2.识别必要的数据

要确定数据的质量、数量、格式和来源。数据源可以是数据仓库(OLAP)、应用程序数据库(OLTP)、来自服务器的日志文件、来自互联网的文档,以及从传感器和网络集线器生成的数据。要识别所有内部和外部数据源的需求。此外,要确定数据匿名化和重新进行身份信息处理的要求,以删除或掩盖个人身份信息(personally identifiable information,PII)。

3.收集数据

我们可以使用Sqoop工具从关系数据库收集数据,并使用Flume来对数据进行流式传输。我们还可以考虑使用Apache Kafka来实现可靠的中间存储。在设计和收集数据的时候,还要考虑容错的情况。

4.预处理数据和ETL

我们得到的数据会有不同的格式,也可能有数据质量问题。预处理步骤的作用是把数据转换为所需的格式,或清理不一致、无效或损坏的数据。一旦数据符合所需的格式,就可以启动执行分析阶段的工作。Apache Hive、Apache Pig和Spark SQL都是对海量数据进行预处理的优秀工具。
在某些项目中,如果数据已经具备了整洁的格式,或者分析过程是使用读取模式(Schema-on-Read)方法直接针对源数据进行的,那可能就不需要这个步骤了。

5.进行分析

我们进行分析的目的是回答业务方面的问题。这就需要了解数据以及数据点之间的关系。进行分析的类型有描述性和诊断性分析,得到的是数据的过去和当前视图。它通常回答的是像“发生了什么事情?”和“为什么发生?”这样的一些问题。在某些情况下也会进行预测分析,它回答的问题是,基于某个假设会发生什么情况,诸如此类。
Apache Hive、Pig、Impala、Drill、Tez、Apache Spark和HBase都是在批处理模式下进行数据分析的优秀工具。而Impala、Tez、Drill和Spark SQL等实时分析工具可以集成到传统的商业智能工具(Tableau、Qlikview等)里,用于交互式分析。

6.数据可视化

数据可视化是把分析结果以图像或图形格式来呈现,以便更好地理解分析结果,并根据这些数据做出业务决策。
通常,我们可以使用Sqoop将最终数据从Hadoop导出到RDBMS数据库,以便集成到可视化系统中;也可以把可视化系统直接集成到Tableau、Qlikview、Excel这些工具中。基于Web的笔记本(如Jupyter、Zeppelin和Databricks cloud等)也可以通过和Hadoop及Spark组件进行集成,用于实现数据的可视化。

后记

这些东西对于每一个数据分析工程师(广义包含数据挖掘)来说都是最最基本的东西,但是自己最近就因为忙于其他的工作,把公司交给的数据分析(狭义的)工作没有按照这个流程走,出现了后续的一堆统计问题。(比如由于前期没有对底层数据进行充分的预处理导致了很多维度的统计偏差,刚开始会把责任推给上游的数据分析师,最后想想自己无论多忙,既然接受了这个任务,就应该完全按照流程去分析数据,而不应该投机取巧)

你可能感兴趣的:(大数据)