日志数据是互联网大数据的一个重要来源。在数据开发岗位的面试过程中,这一部分被问到的频率不高,但也绝非不会被问到,有点面试官会询问日志记录了哪些字段,如何埋点,所以仍然需要对日志采集有一个大概的了解。一下内容主要依据阿里的《大数据之路》。
1.浏览器的页面日志采集
浏览器的页面型产品/服务的日志采集可以分为两大类:
- 页面浏览(展现)日志采集。最基础的日志,是**页面浏览量(Page View,PV)和访客数(Unique Visitors,UV)**的统计基础。
- 页面交互日志采集。记录用户的操作。
1.1 页面浏览日志采集
主要用于分析 PV 和 UV 。页面浏览日志采集的主要过程简介如下:
- 采集:页面 HTML 文档内植入 JavaScript 脚本采集信息。
- 发送:采集后立即发送或延迟发送。以 URL 参数形式放在 HTTP 日志请求的请求行。
- 收集:由日志服务器完成。
- 存档:日志服务器解析并存档。
1.2 页面交互日志采集
采集用户的访问路径、具体行为。此时往往不会触发浏览器加载,所以无法使用 PV 日志的采集方法。
1.3 日志的清洗和预处理
采集之后,不能立即提供给下游使用,还需要进行一些离线预处理,具体包括:
- 识别流量攻击、网络爬虫、流量作弊。
- 数据缺项补全。例如登录后对登录前的页面日志做身份信息回补。
- 无效数据剔除。例如失效、冗余。
- 日志隔离分发。考虑安全性,进入公共数据环境前做隔离。
2.无线客户端的日志采集
采用日志采集 SDK 完成。这里需要注意的是设备标识。PV 和 UV 的统计,对于登录用户,可以使用用户 ID 来唯一标识,但是很多日志不要求用户登录,导致没有用户 ID。 PC 端使用 Cookie 信息来作为设备唯一信息,对于 APP 则需要选的设备唯一信息,不同版本的系统选择的标识不一样。
3.使用框架
一般使用 Flume 采集。具体数据流向如下图。关于 Flume 的知识将在后面的文章中进行讲解。
具体如下:
日志采集了解上面提到的就行。下一篇文章讲解业务数据的采集。