开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第一阶段):整体技术流程-数据采集和数据预处理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/693/detail/12164
整体技术流程-数据采集和数据预处理
内容简介
一、数据处理流程
二、数据采集
三、数据预处理
本节内容我们学习项目整体的基础流程和架构问题。这块知识点帮助我们从宏观层面去理清我们开展大数据项目分析该经过哪些模块,哪些步骤以及模块之间的关系。
一、数据处理流程
网站流量日志数据分析是一个纯粹的数据分析项目,其整体流程基本上就是依据数据的处理流程进行,通俗可以概括为:数据从哪里来(从采集的地方来)和数据到哪里去(到展示应用的地方去),可以分为以下几个大的步骤。
二、数据采集
数据采集概念,目标行业会有两种解释
一是数据从无到有产生的过程:通过技术把客观事件量化为数据(服务器打印的 log,自定义采集的日志,传感器收集等)叫做数据采集;通过工具把行为量化成为数据的行为称为数据采集。
另一方面也有把通过使用 Flume 等工具把数据采集运到指定位置的这个过程叫做数据采集。(也即我们的数据原本存在于某个介质中,但要通过某个工具采集至另一个介质中的过程也叫数据采集,如 apache flume)
这时候的数据采集是通过 source 对接我们的数据源,然后把数据放到指定的目的地中的过程,具体采集指什么过程需要结合语境进行分析。
数据采集保证了我们的项目能够有数据能够开展分析,如果没有数据后续将无法进行。
三、数据预处理
数据预处理(data preprocessing)是指在正式处理以前对数据进行的一些处理。现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据分析,或者说不利于分析。为了提高数据分析的质量和便捷性,产生了数据预处理技术。
数据预处理有多种方法:数据清理,数据集成,数据变换等。这些数据处理技术在正式数据分析之前使用,大大提高了后续数据分析的质量与便捷,降低实际分析所需要的时间。如果未进行数据预处理,直接开展分析,那后面一旦涉及数据格式不统一,再去做格式统一将会大大增加分析成本。
技术上原则来说,任何可以接受数据经过处理输出数据的语言技术都可以用来进行数据预处理。比如 java、Python、 shell 等。任何语言软件只要能够接受数据处理数据并且最终输出数据,都可以用于数据预处理。
本项目中通过 MapReduce 程序(标准的 java 程序)对采集到的原始日志数据进行预处理,比如数据清洗,日期格式整理,滤除不合法数据等,并且梳理成点击流模型数据。
使用 MapReduce 的好处在于:
一是 java 语言熟悉度高,有很多开源的工具库,可以无缝的调用 java 现有的开源库进行数据处理,便于数据处理。
二是如果数据量比较大,MR 可以进行分布式的计算,并发处理数据,提高效率。
数据预处理的目的是保证后续正式分析的数据干净统一,格式规整的结构化数据。