大数据技术已经迅速应用于商业并产生价值,通过数据分析来识别用户行为,建立以用户为中心的低成本快速增长,是一个企业必须具备的核心竞争力。
随着成本的大幅度增加,企业必须改变过去粗放型的营销和运营方式,特别是在市场营销、产品制造、销售以及未来的客户服务等各个方面向更加科学、高效的方向转变。
小象电商的产品近一年交付给客户后,不少客户陆续提出需要进行用户行为数据收集和分析,希望通过大数据实时分析实现电商业务数字化运营。小象智慧基于此强需求开发“小象用户行为分析”产品,采用Nginx+Flume+kafka实现日志收集,采用Flink+ClickHouse架构实现OLAP的实时分析,同时数据会备份写入HDFS。
完成数据采集技术构建和业务设计,在App、小程序的系统供应商配合下完成用户行为数据采集埋点,并基于埋点的数据构建线上用户行为标签和画像。
所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。
埋点业务设计,首先需要根据业务分析明确采集的目标行为,进一步搞清楚应该在哪些地方埋什么样的点。过程中建议使用“事件模型(Event模型)”来描述用户的各种行为,事件模型包括事件(Event)和用户(User)两个核心实体。基于4W1H模型描述用户行为可将整个行为描述清楚,要点包括:是谁、什么时间、什么地点、以什么方式、干了什么。通过这两个实体结合在一起就可以清晰地描述清楚用户行为。
SDK埋点采集行为数据来源终端包括iOS、安卓、Web、H5、微信小程序等。不同终端SDK采用对应平台和主流语言的SDK,埋点采集到的数据通过JSON数据以HTTPPOST方式提交到服务端API。服务端API由数据接入系统组成,采用Nginx来接收通过API发送的数据,并且将之写到日志文件上。使用Nginx实现高可靠性与高可扩展性。对于Nginx打印到文件的日志,会由Flume的Source模块来实时读取Nginx日志,并由Channel模块进行数据处理,最终通过Sink模块将处理结果发布到Kafka中。Kafka是一个广泛使用的高可用的分布式消息队列,作为数据接入与数据处理两个流程之间的缓冲,同时也作为近期数据的一个备份。通过对外提供访问API,数据中台可以直接从Kafka中将数据引走,进入数仓构建指标。
不同渠道的埋点数据通过 HTTP API 发送给服务端API实现数据接入。 采用Nginx作为WEB容器接收客户端SDK发送的数据,并且将之写到日志文件上。使用 Nginx 主要是考虑到其高并发、高可靠性与高可扩展性。
通过应用场景梳理,实现以场景规划埋点,用场景检验埋点。场景梳理可以抽象为三个层面:
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。