大数据开发之路-读书

大数据之路

1. 日志数据采集

1.1 浏览器的页面日志采集

浏览器页面采集往往分为两部分:

(1)页面浏览日志:分为页面浏览量PV和页面访客数UV

​ 将JavaScript脚本植入到HTML文档内,当页面被浏览器解析的过程中自动执行

​ 采集后,大多数情况会立即执行发送,发送到日志服务器

​ 日志服务端收到日志后立即做出回复

​ 服务端解析日志并进行存档

(2)页面交互日志:记录用户在页面上与控件互动的情况

​ 业务方在元数据管理界面注册需要采集日志的交互业务,平台生成代码模板供交互式页面进行嵌入,互动代码和控件一起被响应执行

​ 日志采集代码将日志发送到日志服务端,服务端进行简单的转储,不进行解析

在页面数据采集之后,还需要进行数据清洗。

1.2 无线客户端的日志采集

无线客户端的日志采集任务交由采集SDK完成,SDK将用户行为分为不同的事件,如页面事件和控件点击事件

(1)页面事件日志

​ 每条页面日志记录三类信息:1.设备和用户的基本信息 2.被访问的页面信息 3.访问的路径,用户还原用户完整的访问行为

​ SDK通常提供三个端口,一个在页面进入时触发,记录在进入页面时的信息,,一个在退出页面时触发,发送日志,除此之外还提供了拓展信息的接口,用于给页面日志添加相关参数

​ SDK还提供透传参数的机制,当前页面的部分信息,可以传递到下一页面,方便进行行为路径追踪

(2)控件点击和其他事件日志

​ 控件点击逻辑简单,只需要记录所在页面,用户、设备信息、控件信息等。

​ 其他事件由用户根据业务场景自定义事件来采集相关信息

​ 除此之外,SDK还提供了一些无需触发的采集接口,例如捕获应用崩溃的日志信息

(3)特殊场景

​ 为了平衡日志大小,对于某些如曝光和一些性能技术类日志,推荐使用SDK的聚集功能,避免日志的多次上传,减小服务器压力。

​ app具有明显的回退功能,这会影响SDK的访问路径,所以需要对页面是否存在回退行为进行分析

(4)H5&Native 日志统一

​ 为了避免将嵌入到Native中的H5页面日志与Native日志关联时出现数据丢失,成本过高的问题,需要对二者的日志进行统一处理,本文选用H5向Native归的方式

(5)设备标识

​ 在统计UV时,需要通过设备标识来判断用户的唯一性,采用UTDID。

(6)日志传输

​ 无线客户端日志的上传,不是产生一条发送一条,而是先储存在客户端本地,伺机上传。通过POST请求发送给服务端,服务端经过校验,将数据追加到客户端本地文件中进行存储,并进行维度切分,及当天的日志存储到当天文件中。还对日志进行分流。最后通过消息队列将日志数据推送给下游任务。

2.3 日志采集挑战

(1)日志分流和定制处理

(2)采集与计算一体化设计


大数据开发之路-读书
http://example.com/2024/10/18/数仓开发/大数据之路/大数据开发之路-读书/
Author
lpy
Posted on
October 18, 2024
Licensed under