📚 项目简介
在当今的商业环境中,大数据技术已经成为企业获取竞争优势的关键。通过深入分析用户数据,企业能够洞察用户行为,构建以用户为中心的运营模式,实现低成本快速成长。随着运营成本的不断攀升,粗放式营销和运营策略已不再适用,特别是在市场营销、产品制造、销售和客户服务等领域,企业需要转向更加科学和高效的方法。
对于电商或其他系统而言,上线后实时收集和分析用户行为数据,以数字化手段运营业务,显得尤为重要。为此,我们开发了一套用户行为分析系统,该系统兼容神策开源的埋点SDK,能够完成终端用户行为的上报。在数据收集方面,我们采用了Nginx、Flume和Kafka的组合,实现了日志的收集和传输;同时,利用Flink将埋点数据写入HDFS,为后续的数据分析打下基础。
本项目开源内容涵盖了四个关键步骤:Nginx的环境配置、Flume的解密和日志格式处理、将明文数据存储到Kafka的Topic中、以及Flink消费数据后将其存入HDFS。为了便于埋点的校验和调优,我们在Kafka环节增加了将埋点解析数据以JSON格式存储到MySQL的功能。未来,我们计划增加对友盟和其他SDK厂商埋点的处理,以及业务系统日志的采集入库功能。
🌱 项目主要内容
-
日志采集(Flume+kafka)利用Flume和Kafka实现高效日志收集,支持多种数据源和目的地,保证数据可靠传输。
-
日志入库(Flink+HDFS)Flink实时处理日志数据,存储至HDFS,支持实时决策和深度历史数据分析。
🎯产品主要特性
🎯工作流程
在系统供应商的协助下,我们成功实现了App和小程序的数据采集技术框架搭建和业务逻辑设计,并部署了用户行为数据的埋点机制。利用这些埋点数据,我们进一步构建了线上用户的行为标签和个性化画像。
🌌 架构设计思路
"埋点",用于描述在数据收集行业,特别是用户行为数据收集的过程中,对用户的特定行为或事件进行跟踪、记录以及传输的技术实现和操作流程。例如,这包括记录用户对某个图标的点击频率、观看视频的持续时间等行为数据。
业务设计思路
在设计埋点业务时,首要任务是通过对业务的深入分析,确定需要追踪的目标用户行为。接着,要明确在系统的哪些环节布置何种类型的埋点。在这一过程中,建议采用“事件模型”来对用户的多样化行为进行建模,该模型主要涉及“事件”和“用户”两个基本要素。运用4W1H(Who, When, Where, What, How)模型,即谁在何时何地以何种方式进行了何种行为,可以全面而准确地描绘用户行为的全貌。通过将这两个要素综合起来,我们能够清晰地刻画和理解用户的每一个行为细节。
技术架构
在SDK埋点采集过程中,我们收集来自多种终端的用户行为数据,包括iOS和Android设备、Web端、H5页面以及微信小程序等。针对不同平台,我们采用与之匹配的SDK,并通过主流编程语言实现。这些SDK收集的数据会被封装成JSON格式,然后通过HTTP POST请求发送至服务端提供的API。
服务端API构成了数据接入层,我们使用Nginx作为数据接收组件,它能够接收API传输的数据,并写入日志文件。Nginx的选择确保了系统的高可靠性和良好的可扩展性。
接下来,Flume的Source组件负责实时监听和读取Nginx生成的日志文件。读取的数据会经过Channel组件进行必要的处理,最后由Sink组件将处理后的数据推送到Kafka消息队列中,以便进行进一步的数据处理和分析。
软件完整架构
第三方埋点SDK集成步骤
-
集成SDK:首先,在终端应用的配置文件中,需要添加SDK的依赖信息。不同平台的应用可能有着不同的集成方式,具体的集成步骤将在后续的SDK技术文档中详细说明。
-
设置上报API:接着,需要配置SDK上报数据的服务器API地址。这个地址是SDK发送采集到的用户行为数据的目标地址。
-
启用全埋点功能:SDK具备自动捕获用户多种行为的能力,例如应用启动、关闭、页面浏览和控件点击等。在SDK初始化阶段,可以通过SDK提供的初始化方法来启用全埋点功能,从而实现对用户行为的全面追踪。
API接入服务设计
埋点数据由多个渠道通过HTTP API汇总至服务端API,以实现数据的接入。在此过程中,我们选用Nginx作为WEB服务器来接收来自客户端SDK的数据,并将其记录到日志文件中。选择Nginx的原因在于其卓越的高并发处理能力、稳定的高可靠性以及良好的高可扩展性,这些特性使其成为接收和处理大规模数据请求的理想选择。
用户行为采集场景
在用户行为采集的过程中,我们首先根据具体的应用场景来规划和实施埋点,同时利用这些场景来验证埋点的有效性。场景的梳理可以分为三个主要方面:
基础场景梳理:对于普遍存在的共性操作,我们采取统一的方法进行埋点设计。
关键操作场景:我们将关注点放在那些对业务至关重要的操作上,对这些操作进行整体的分析和埋点设计。
核心业务流程场景:我们根据不同的业务线,定义和梳理整个业务流程,确保埋点能够覆盖到业务的每一个关键环节。
应用效果
项目下载地址:https://gitee.com/xiaoxiangopen/analysis.git