06 离线数据分析流程介绍

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 06 离线数据分析流程介绍

本文主要让读者感受数据分析系统的宏观概念及处理流程,初步理解Hadoop等框架在其中的应用环节,不用过于关注代码细节。

下面来举一个应用广泛的数据分析系统例子,用来采集web日志数据。

需求分析

一般中型的网站(10W的PV以上),每天会产生1G以上Web日志文件。大型或超大型的网站,可能每小时就会产生10G的数据量。

具体来说,比如某电子商务网站,在线团购业务。每日PV数100w,独立IP数5w。用户通常在工作日上午10:00-12:00和下午15:00-18:00访问量最大。日间主要是通过PC端浏览器访问,休息日及夜间通过移动设备访问较多。网站搜索浏量占整个网站的80%,PC用户不足1%的用户会消费,移动用户有5%会消费。

对于日志的这种规模的数据,用Hadoop进行日志分析,是最适合不过的了。

需求描述:“Web点击流日志”包含着网站运营很重要的信息,通过日志分析,我们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化率、访客的来源信息,访客的终端信息等。

数据来源: 本案例的数据主要由用户的点击行为记录

获取方式:在页面预埋一段js程序,为页面上想要监听的标签绑定事件,只要用户点击或移动到标签,即可触发ajax请求到后台servlet程序,用log4j记录下事件信息,从而在web服务器(nginx、tomcat等)上形成不断增长的日志文件。

58.215.204.118 - - [18/Sep/2013:06:51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 
"http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"
数据处理流程

本案例跟典型的BI系统极其类似,整体流程如下:

但是,由于本案例的前提是处理海量数据,因而,流程中各环节所使用的技术则跟传统BI完全不同:

  1. 数据采集:定制开发采集程序,或使用开源框架FLUME。
  2. 数据预处理:定制开发mapreduce程序运行于Hadoop集群。
  3. 数据仓库技术:基于Hadoop之上的Hive。
  4. 数据导出:基于Hadoop的sqoop数据导入导出工具。
  5. 数据可视化:定制开发web程序或使用kettle等产品。
  6. 整个过程的流程调度:Hadoop生态圈中的oozie工具或其他类似开源产品。

看看项目技术的架构图:

还有项目相关的截图:

1 . Mapreudce程序运行:

2 .在Hive中查询数据:

3 .将统计结果导入mysql:

./sqoop export --connect jdbc:mysql://localhost:3306/weblogdb --username 
root --password root  --table t_display_xx  --export-dir 
/user/hive/warehouse/uv/dt=2014-08-03

最后,经过完整的数据处理流程后,会周期性输出各类统计指标的报表,在生产实践中,最终需要将这些报表数据以可视化的形式展现出来,本案例采用web程序来实现数据可视化。

效果如下所示:

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
数据采集 人工智能 数据可视化
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
Streamline Analyst 🪄是一个开源的基于GPT-4这样的大语言模型的应用,目标简化数据分析中从数据清洗到模型测试的全部流程。分类预测、聚类、回归、数据集可视化、数据预处理、编码、特征选择、目标属性判断、可视化、最佳模型选择等等任务都不在话下。用户需要做的只有选择数据文件、选择分析模式,剩下的工作就可以让AI来接管了。所有处理后的数据和训练的模型都可下载。
558 2
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
|
7月前
|
数据采集 机器学习/深度学习 数据可视化
数据科学项目实战:完整的Python数据分析流程案例解析
【4月更文挑战第12天】本文以Python为例,展示了数据分析的完整流程:从CSV文件加载数据,执行预处理(处理缺失值和异常值),进行数据探索(可视化和统计分析),选择并训练线性回归模型,评估模型性能,以及结果解释与可视化。每个步骤都包含相关代码示例,强调了数据科学项目中理论与实践的结合。
724 2
|
5月前
|
数据采集 机器学习/深度学习 SQL
如何构建高效的数据分析流程:从技术视角出发
【7月更文挑战第22天】构建高效的数据分析流程是一个持续迭代的过程,需要技术团队与业务团队的紧密合作。通过不断优化流程,企业可以更加高效地利用数据资源,为业务决策提供有力支持。
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
完整的Python数据分析流程案例解析-数据科学项目实战
【7月更文挑战第5天】这是一个Python数据分析项目的概览,涵盖了从CSV数据加载到模型评估的步骤:获取数据、预处理(处理缺失值和异常值、转换数据)、数据探索(可视化和统计分析)、模型选择(线性回归)、训练与评估、优化,以及结果的可视化和解释。此流程展示了理论与实践的结合在解决实际问题中的应用。
123 1
|
6月前
|
存储 机器学习/深度学习 缓存
如何使用PySpark进行离线数据分析?
【6月更文挑战第15天】如何使用PySpark进行离线数据分析?
92 10
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
人工智能 Cloud Native 大数据
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
462 0
|
7月前
|
数据采集 数据可视化 数据挖掘
利用Python和Pandas库优化数据分析流程
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要依据。Python作为一种强大且易于上手的编程语言,配合Pandas这一功能丰富的数据处理库,极大地简化了数据分析的流程。本文将探讨如何利用Python和Pandas库进行高效的数据清洗、转换、聚合以及可视化,从而优化数据分析的流程,提高数据分析的效率和准确性。
|
7月前
|
数据采集 数据可视化 数据挖掘
知识分享-商业数据分析业务全流程
知识分享-商业数据分析业务全流程
109 1
|
7月前
|
算法 安全 数据挖掘
Python典型数据分析流程——纯理论(深入理解的看)
Python典型数据分析流程——纯理论(深入理解的看)
125 0