用户行为分析-事件分析模型

这篇对事件分析做简单总结

用事件的概念来描述用户的行为,包含时间,地点,人物,方式等要素,这也是常见的做法

1、是什么?

  事件分析是基于用户的行为数据,也就是事件数据,对用户行为进行多维度,多条件的指标分析和统计,分析用户的行为模式。

  常见的指标有:此类行为的次数,用户数,属性值的统计数,总和,均值等,

  多维分析则是指根据某个属性对用户进行分组划分,

  多条件分析是通过属性值控制,筛选出特定的人群进行分析

2、如何实现?

  用户的行为数据必定是巨大的,通过埋点采集的用户行为会存储在hive的明细表中,或者其他存储系统。我们采取的是hive hdfs存储,使用日期+事件名作为hive分区,既先通过日期,再通过事件分区。

可快速检索,修改数据也不会影响过其他事件,压缩格式使用ORC,较parquet有能搞的压缩比和查询效率,当然也是其不足之处。

  事件分析为了实现其灵活性,实现其多维分析,多条件分析,必须直接使用明细数据,不能做预处理,同时是即席查询对计算引擎的要求较大,选择的是presto作为计算引擎,并且方便做二次开发,UDF等函数开发,后面很多复杂分析也是通过presto自定义函数实现的。

  在系统功能的实现难度上:

  1、前端的复杂交互设计,支持多事件选择,多指标,多维度,事件的多条件等等

  2、接口参数设计,解析成最终能执行的SQL,并且支持多表操作,如后期支持用户信息表,用户分群表联合对事件数据做筛选

  3、查询性能,即席查询需要控制时间在10-20s,大部分查询需要在此时间范围内完成(目前数据量相对较少,暂时没有做过多优化,如近似统计函数,缓存)

原文地址:https://www.cnblogs.com/lrxvx/p/14286364.html