一、数据采集
1.1 概述
随着传统互联网、移动互联网、物联网等技术的兴起,企业的业务形态开始多元化,业务的主体类型也愈加丰富,不局限于用户、供应商、员工、设备、车辆等对象的状态与行为都会对业务产生通过行为买点、爬虫、日志、填报等方式来收集各类业务对象行为数据是企业非常重要的方法和手段。从空间维度来看,对象行为可以分为线上行为和线下行为两类。采集这两类行为所产生的数据的方法是不一样的,方法也随即技术的研究不断发展变化。
1.2 线上行为采集
1.2.1 概述
线上行为的主要载体可以分为传统互联网和移动互联网两种,对应的形态有PC系统、PC网页、H、微信小程序、App、智能可穿戴设备、物联网传感设备等。在技术上,数据采集主要有客户端埋点和服务端埋点两种方式。其中客户端埋点主要通过在终端设备内嵌入埋点功能模块,通过模块能力采集客户端的用户行为,并上传回行为采集服务端。
1.2.2 客户端埋点
1.2.2.1 埋点方式分类
常见的客户端埋点方式有3种:全埋点、可视化埋点和代码埋点。
- ❑全埋点
将终端设备上用户的所有操作和内容都记录并保存下来,只需要对内嵌SDK做一些初始配置就可以达到收集全部行为的目的。这也经常被称为无痕埋点、无埋点等。
- ❑可视化埋点
将终端设备上用户的一部分操作,通过服务端配置的方式有选择性地记录并保存。
- ❑代码埋点
根据需求来定制每次的收集内容,需要对相应的终端模块进行升级。
1.2.2.2 优略势分析
对于这3种埋点方式,企业可以根据实际业务场景来判断和选择。它们的优劣势对比如下。
全埋点适合于终端设计标准化且有统一系统接口的情形。它利用系统提供的事件捕获机制,在对象事件发生时调用埋点工具中的指定处理逻辑,对该事件相关的信息进行记录。这种方法的优点是不用频繁升级,在一次性验证并发布后,就可以获取终端的全量行为数据。当突然发现需要对某个对象进行分析时,可以直接从历史数据中找到所需的数据,而不需要再次进行数据收集。其缺点是数据存储、传输的成本较高,有些当前不用的数据也需要保留。
可视化埋点适合于需要考虑存储和带宽成本的情形,可通过后端配置来降低对象事件行为采集数量,实现机制和全埋点类似。其优点是发布后不需要频繁升级,成本比全埋点低,并且能够灵活配置;缺点是当需要对某一个对象进行分析,但发现其数据没有采集时,需要重新配置并等数据采集完成后再进行后续工作,容易影响业务进度。
代码埋点主要适合于终端设计非标准化、事件行为需要通过代码来控制的情形。其优点是灵活性强,针对复杂场景可以单独设计方案,对存储、带宽等可以做较多的优化;缺点是成本高,维护难度大,升级周期较长。
1.2.2.3 埋点举例
下图所示为某站点的网站行为埋点日志
该埋点日志中记录了数据的类型(logtype)、内容标题(title)、行为的上一级页面(pre)、用户的屏幕分辨率(scr)、用户标识(cna)、用户名(nick)等各类信息。对于这些数据,后端运营人员可以进行挖掘和分析,从而指导产品、运营的优化。例如:根据用户的屏幕分辨率数据,可以在产品布局上进行更好的适配;通过行为的上一级页面,可以知道用户是从哪个页面进入当前页面的,进而优化用户行为路径。
1.2.3 服务端埋点
除了客户端埋点,常见的线上埋点还有服务端埋点,即通过在系统服务器端部署相应的数据采集模块,将采集到的数据作为行为数据进行处理和分析。
服务端埋点常见的形态有HTTP服务器中的access_log,即所有的Web服务的日志数据。前面提到的客户端的3种埋点方式,常见的简化实现方案一般也会配合HTTP服务器中的access_log来落地,但有时为了更好地融合,会定制一些服务端的SDK,用于捕获服务端系统中无法通过常规访问获取的数据信息,如内部处理耗时、包大小等数据。
服务端埋点的优点很明显,当需要获取的用户行为通过服务端请求就可以采集到或者通过服务端内部的处理逻辑能获取时,采用这种方式来收集用户行为数据能够降低客户端的复杂度,避免一些信息安全问题。
但其弊端也很明显,有些用户行为不一定会发出访问服务端的请求,这种方式就无法采集这部分数据。因此,服务端埋点一般会和客户端埋点结合使用,相互补充,以完成全部目标用户行为的采集。
1.3 线下行为采集
1.3.1 概述
线下行为数据主要通过Wi-Fi探针、摄像头、传感器等硬件采集。随着设备的升级,各种场景中对智能设备的应用越来越多,安防、客户监测、考勤等开始深入人们的工作和生活。常见的线下行为采集方式有网络信号采集、图像识别采集及设备日志采集等。
1.3.2 网络信号采集
通过Wi-Fi或移动分光信号采集周边移动设备上的用户行为是早年比较常用的用户行为采集方式,但有些不合规的使用涉及个人隐私,且手机操作系统也针对这类现象进行了一定的防采集处理,出于隐私保护、系统防护等原因,现在这种采集方式仅限于公共安全领域使用。拿Wi-Fi信号采集来说,其主要原理是通过信号探测的协议,在热点附近的移动设备探测SSID时建立网络连接,从网络协议中获取手机的网络设备号。
1.3.3 图像识别采集
图像主要通过智能摄像头来采集,采集内容后会根据业务需要及存储成本要求进行处理,既可以输出原始或压缩过的视频流,也可以通过设备本身部署的算法模型识别图像的内容,输出结构化数据。例如,目标对象进入相应区域后摄像头可以识别相关信息,然后采集和保存图像并生成唯一标识(如Face ID)、行为特征等描述信息供后续业务使用。
1.3.4 设备日志采集
AIoT设备记录了运行期间各类行为事件日志,这些日志数据的结构相对标准,有较强的时间属性,在工业制造、智能安防、执法稽查等领域广泛应用。由于缺少强制性的行业标准要求,当前大部分设备厂商为了构建自己的生态壁垒而使用私有协议进行数据传输。如果要采集和使用AIoT设备中的日志数据,企业通常需要先使用物联网平台或盒子对设备生产的数据进行协议转换,并通过订阅的方式获取基于标准协议传输的数据。
1.4 互联网数据采集
网络爬虫又称为网页蜘蛛,是一种按照既定规则自动抓取互联网信息的程序或脚本,常用于网站的自动化测试和行为模拟。Google、搜狗、百度等搜索引擎都基于它们内部自建的网络爬虫,在遵守相关协议的情况下不断爬取互联网上的新鲜网页信息,对内容进行处理后提供相应的检索服务。
当企业的内部信息不足时,可以考虑利用外部互联网的数据进行一些“化学反应”,将外部的数据与内部数据有效融合,从而让内部数据在应用上有更多价值。网络爬虫有多种实现方式,目前有较多的开源框架,如Apache Nutch 2、WebMagic、Scrapy、PHPCrawl等,利用它们我们可以快速根据自己的实际应用场景构建数据抓取逻辑。当然,需要遵守相应的协议和法规,同时要避免对目标网站带来过大的请求压力。
1.5 数据手工填报
受限于业务信息化程度较弱或数据保密要求,并不是所有的数据都会被机器记录,但这部分数据对决策分析等用途又至关重要。因此,为了能够将这些数据重新“信息化”,企业会使用数据填报类工具完成这部分数据的采集。
通常,数据收集员会定义收集数据的规范表单,比如填写字段、预设值、填写时间要求、填报人员等,下发给填报人员填写。数据填报与组织结构紧密关联,涉及多级上报时,还需要设定不同级别表单内容之间的联动计算方式,让整个上报过程更简单精确。
原文链接:https://blog.youkuaiyun.com/qq_25409421/article/details/140794408