一键采集上传常见的细节问题(阿里巴巴移动端的:数据技术专家的离线数据分析业务)
优采云 发布时间: 2021-09-14 13:14一键采集上传常见的细节问题(阿里巴巴移动端的:数据技术专家的离线数据分析业务)
作者介绍
程俊杰,曾任数据技术专家。主要负责业务数据分析挖掘系统架构与设计,包括*敏*感*词*数据采集、分析处理、数据挖掘、数据可视化、高性能数据服务等。
1简介
最近,我的同事正在总结行业中的各种埋藏技术。在此基础上,结合我之前的一些经验和想法,谈谈数据生产和采集。
很久以前,在当年的PC时代,由于存储和计算能力有限,人们很少使用日志来分析业务。而是在业务逻辑中,将业务需要分析的数据提前写入库中,对库的数据进行统计分析。因此,在做 OLAP 之前,需要非常先进的硬件支持。大家去IOE等购买昂贵的服务器进行数据仓储和数据分析。由于成本问题,我们的数据很少,因此统计分析和挖掘的好处微乎其微。
随着Hadoop的兴起,分布式文件系统和分布式计算大大降低了存储成本和计算成本,让我们现在可以使用日志分析服务。
2数据
对于移动应用,分析的数据大致可以分为两种,一种是线上数据,一种是线下数据。在线数据,即App后端服务产生的日志数据,如服务接口的性能数据、服务接口的调用及其参数等。通过服务器的日志数据,我们无法只统计服务接口的性能指标,还针对具体的业务逻辑和相关分析,一些常见的App分析指标如新增、活跃度、积累、留存等,也可以通过服务日志来统计。
对应的离线数据是App客户端自身产生的数据。这种情况一般发生在客户端没有调用底层服务的时候。如果需要了解用户在客户端的行为,就需要用到离线数据。离线日志一般会记录用户在客户端的具体行为,比如用户在客户端的拖拽、上下滚动、翻页,不涉及后端服务的操作,以及崩溃产生的数据应用程序本身的行为,可以记录。是的,录制内容包括事件类型、控件编号、控件属性及相关参数、事件时间等。
3在线日志
在线日志,一般来说有两种:
4 个离线日志
离线日志一般有两种:
5个埋点并上传
无论是在线日志还是离线日志,首先要确认日志记录在哪里,所以引入了埋点的概念。通俗的说,在正常业务代码的逻辑中,添加日志代码就叫做埋点。但一般情况下,埋点仅用于描述客户端日志记录。
由于在线日志是直接在服务器端生成的,log采集工具可以直接将收录日志的服务器的采集日志数据传输到相应的文件系统,所以不存在日志上传的问题。但是对于离线日志,数据是在客户端生成的,所以必须考虑上传机制。
6 离线日志上传机制
业界采用的离线日志上传机制如下:
服务器提供了一个日志接口。当客户端有事件时,直接调用日志接口将日志记录在服务器上。
服务器提供日志上传接口。客户端将日志临时存储在客户端本地。当达到一定大小且网络环境允许时,将日志文件通过上传接口打包压缩后上传。
第一种上传方式在时效性上有一定的保证。在网络环境允许的情况下,可以及时向服务器记录信息,但是当埋点较多时,记录日志产生的流量会很大。占用大量带宽,给用户带来损失。同时,这种在线方式无法捕捉到某些前端行为,例如在某个活动中的停留时间。另外一个重要的问题是,由于没有客户端数据的临时存储机制,当网络暂时不可用时,无法正常调用日志接口,日志全部丢失。第二种方式时效性较差,因为需要等待数据积累到一定程度,或者网络允许,比如wifi的情况下发送,但是占用带宽比较小,而且作用于客户。捕获更灵活。
7埋点三方案
1、传统埋点:开发者直接在客户端埋点。
2、Visualization embedding:由于传统embedding的一系列问题,自然产生了visual embedding方案。不是编写代码,而是使用可视化的交互方法将核心代码与配置和资源分开。 App启动是通过网络更新配置和资源,实现埋点功能。
可视化埋点的大致流程如下:
需要注意的细节很多:
3、无埋点:所谓非埋点,其实就是全埋点。它与视觉埋点非常相似。可视化埋点根据埋点配置采集数据,非埋点方案是尽可能采集所有控件的运行数据。实现原理也很简单。客户端添加扫描码,并为每个扫描的控件添加一个*敏*感*词*事件。当事件被触发时,记录日志。
其实我想大家对这个都不陌生。比如很久以前,PC站点和各大分析平台的统计数据都需要在网页上
在中间添加一段js代码
。其实那个js代码就是我们现在说的没有埋点的扫描码。
这里我要强调的是,因为视觉埋点只是在需要的时候埋点,所以不能回溯事件。也就是说,我们只能统计从需求提出后的埋点到埋点之前的所有数据。我们无法获取数据。对于非埋点方案,埋点开始的时候已经记录了所有的数据,所以可以查看之前的数据(这里之前的也是相对于提升统计所需的时间,不是相对于时间的)埋点),这意味着它可以回溯。而这种回溯是基于大量的存储需求。
8 总结
无论解决方案如何,我们唯一的目标是采集尽可能多的数据。因此,在实际操作过程中,我们可以根据具体情况采用多种方案的组合。