详细数据:用户行为分析之数据采集
优采云 发布时间: 2020-10-12 09:00用户行为分析数据采集
用户行为简介
用户行为分析的主要指标可以概括如下:哪个用户执行了什么操作,在哪里进行了操作,为什么要进行这些操作,通过什么方法,花费了多长时间以及其他问题,归纳为WHO,何时,何地,什么,为什么以及如何?时间。
基于以上5个W和2H,让我们讨论如何实现它们。
WHO,首先,您需要x以获得登录用户的个人信息。用户名,角色等。
何时获取用户访问页面每个模块的时间,开始时间,结束时间等
什么,在获取用户登录页面后已经执行了哪些操作,单击了哪些页面和模块,等等。
为什么,分析用户点击这些模块的目的
如何,用户如何访问系统,网络,APP,小程序等。
HOW TIME,用户访问每个模块多长时间,浏览特定页面等
以上是我们需要获取的所有数据。只有获得相关数据,我们才能分析用户行为。
用户行为数据采集掩埋点
掩埋点通常分为非掩埋点和代码掩埋点。这两个都有各自的优缺点,这里仅作简要介绍:
全掩埋点是一种前端掩埋方法。 SDK嵌入在产品中,这是最统一的掩埋点。关键行为是通过接口配置方法定义的,以完成埋入点采集,这是前端的埋入点方式之一。
优势:
缺点:
作为前端掩埋点,会有一些自然的缺点
代码掩埋点,这也是我们当前使用的掩埋方法。代码埋入点分为前端代码埋入点和后端代码埋入点。前端埋入点类似于完整埋入点,并且还需要嵌入到SDK中。区别在于对于每种事件行为,您需要调用SDK代码,传入必要的事件名称,属性参数等,然后将其发送到后台数据服务器。后端嵌入式点通过调用SDK接口的后端模块将事件和属性发送到后端服务器。
我们使用代码掩埋点,将其分为前端和后端。嵌入是一个特别重要的过程。它是数据的来源。如果数据源存在问题,则数据本身存在问题,分析结果将失去意义。
因为我负责日志检测,即埋入点之后事件日志的检测警报,并通知相应的埋入点开发人员,操作员和产品方面,所以我遇到了很多凹坑,其中大多数是过程。
事件属性具有元数据管理系统,并且行业中的某些服务也具有此结构。通常,首先定义事件和属性,然后掩埋点。原因是需要检查事件日志数据。有必要检查事件是否存在,属性是否丢失,数据是否正常等等。
遇到的坑
数据错误。这种情况很难发现。需要在操作产品的分析中找到它。这也有点不舒服
基于上述想法,让我们谈谈实现的相关技术问题以及如何进行用户行为分析。
数据采集
根据操作定义的嵌入式点接口形式获取的用户访问日志数据,必须预先在后端和前端定义数据存储格式,即字段内容为保存,并且嵌入点数据需要符合协议。格式统一并封装起来,以便于存储和分析。
以下数据采集神器Flume已耗尽。
实时掩埋点数据采集通常有两种方法:
直接触发的日志将发送到指定的HTTP端口,并写入kafka,然后Flume将kafka消耗到HDFS用户访问日志到磁盘,在相应的主机上部署flume代理,并将文件发送到采集记录目录到Kafka,然后将Flume部署到云中以将Kafka数据消耗到HDFS中
然后,Flume 采集系统的安装相对简单,只需两个步骤:
flume配置模板:
a1.sources = source1
a1.sinks = k1
a1.channels = c1
a1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.source1.channels = c1
a1.sources.source1.kafka.bootstrap.servers = kafka-host1:port1,kafka-host2:port2...
a1.sources.source1.kafka.topics = flume-test
a1.sources.source1.kafka.consumer.group.id = flume-test-group
# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /tmp/flume/test-data
a1.sinks.k1.hdfs.fileType=DataStream
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 100
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.source1.channels = c1
a1.sinks.k1.channel = c1