小象用户行为分析平台
介绍
大数据技术已经迅速应用于商业并产生价值,通过数据分析来识别用户行为,建立以用户为中心的低成本快速增长,是一个企业必须具备的核心竞争力。 随着成本的大幅度增加,企业必须改变过去粗放型的营销和运营方式,特别是在市场营销、产品制造、销售以及未来的客户服务等各个方面向更加科学、高效的方向转变。
小象电商系统上线后,需要收集用户行为数据,通过大数据实时分析实现电商业务数字化运营。基于此强需求开发小象用户行为分析,兼容神策开源的埋点SDK完成终端行为上报,采用Nginx+Flume+kafka实现日志收集,采用Flink写入HDFS。
本开源项目内容包括nginx环境配置、Flume解密和日志格式处理、将明文数据存放到kafka的Topic下、Flink消费后将埋点数据存入HDFS的关键4步操作。为方便前期埋点的校验调优,在kafka环节,增加了埋点解析数据JSON格式存入MySQL。后续计划增加友盟和其他SDK厂商的埋点处理,以及业务系统日志的采集入库。
项目主要内容
1. 日志采集 (Flume+kafka)
2. 日志入库 (Flink+HDFS)
工作流程
架构设计思路
业务设计思路
技术架构
SDK埋点采集行为数据来源终端包括iOS、安卓、Web、H5、微信小程序等。不同终端SDK采用对应平台和主流语言的SDK,埋点采集到的数据通过JSON数据以HTTP POST方式提交到服务端API。 服务端API由数据接入系统组成,采用Nginx来接收通过 API 发送的数据,并且将之写到日志文件上。使用Nginx实现高可靠性与高可扩展性。 对于Nginx打印到文件的日志,会由Flume的 Source 模块来实时读取Nginx日志,并由Channel模块进行数据处理,最终通过Sink模块将处理结果发布到 Kafka中。
软件完整架构
第三方埋点SDK集成步骤
1. 引入SDK: 在终端应用配置文件添加 SDK 依赖,不同终端引入方式会有差异,具体操作步骤将在后续SDK技术文档中体现。
2. 配置上报服务端API地址: 用于设置SDK上报API的服务端地址。
3. 开启全埋点: SDK 可以自动采集一些用户行为,如 App 启动、退出、浏览页面、控件点击。初始化 SDK 时,通过SDK提供的初始化方法可以配置开启全埋点。
API接入服务设计
不同渠道的埋点数据通过 HTTP API 发送给服务端API实现数据接入。 采用Nginx作为WEB容器接收客户端SDK发送的数据,并且将之写到日志文件上。使用 Nginx 主要是考虑到其高并发、高可靠性与高可扩展性。
用户行为采集场景
通过应用场景梳理,实现以场景规划埋点,用场景检验埋点。场景梳理可以抽象为三个层面:
1. 通用基础场景: 共性操作统一考虑
2. 重要操作场景: 重要操作整体归因
3. 业务主流程场景: 以业务线定义完整过程
应用效果
版权声明
小象数据行为分析用Apache2.0开源协议个人和企业,在直接使用、二次开发后商业使用,需要遵守:
1. 包含xiaoxianganalysis LICENSE文件(授权使用者免费使用小象分析专利和知识产权)
2. 如果修改了代码,需要在被修改的文件中说明
3. 在修改和有源代码衍生的代码中,需要带有原来代码中的协议,商标
4. 在二次开发后商业发布的产品中,使用了多个开源软件,则必须包含一个Notice文件,在Notice文件中需要带有xiaoxianganalysis LICENSE。你可以在Notice中增加自己的许可,但不可以表现为对xiaoxianganalysis LICENSE构成更改。
例如:
`
Apache-2.0 license
`