大数据技术中,关于用户行为分析方面的有哪些技术

JavaScript013

大数据技术中,关于用户行为分析方面的有哪些技术,第1张

做用户行为分析的基础是获得用户行为数据,例如用户页面停留时间、跳转来源等等。这些信息有些能直接拿到,有些是需要做一些计算才能拿到的。一般来说用户访问时的一些信息都是以日志的形式打到web容器的日志空间中去,这其中包含了最通用的一些访问信息以及一些自定义的日志打点。

题主提到了大数据技术中对用户行为进行分析,那么可以假定网站或者App的访问量是比较傲多的。由于系统流量比较大,计算维度又比较多,后续数据消费者的需求增长比较快,所以对计算分析平台有了一定的要求。具体表现为:

1.负载能力。流量增大以后带来的压力是多方面的,比如网络带宽的压力、计算复杂度带来的压力、存储上的压力等等。一般来说这些都是比较显而易见的,会对产生比较直接的影响,比如计算实时性下降、消息出现了堆积、OOM等等。为了解决这一现象,一般来说会选择一些分布式的框架来解决这个问题,比如引入分布式计算框架storm、spark,分布式文件系统hdfs等。

2.实时性。在系统资源捉襟见肘时消息的实时性会立即受到严重影响,这使得部分算法失效(例如对计算和收集上来的数据进行行为分析后,反馈到推荐系统上,当整体响应时间过场时会严重影响推荐效果和准确度)。对于这个情况来说可能会选择storm这种具有高实时性的分布式流式计算框架来完成任务。

3.系统管理和平台化相关技术手段。在大数据情景下,企业内数据环境和应用环境都是比较复杂的,用户行为分析应用不是一成不变的,那么就要求用户行为分析这种多变的应用在复杂环境中能有效生存,这包括算法数据材料的获得、系统运维、系统任务调度、系统资源调度等等,相关的技术很多时候要求团队自研,但也有ganglia、yarn、mesos这类开源系统可以参考或者直接使用。

4.数据链路。企业技术环境一般来说是非常复杂的,一层一层交错在一起,远不是一句MVC三层架构能够概括得了的,为了避免消息流通呈复杂的网状结构,一般会考虑应用服务化、企业服务总线(ESB)及消息总线来做传输,有兴趣的话题主可以百度一下这几个方向的技术和开源工具。

5.应用快速生成工具。我个人认为在大数据环境下应用都摆脱不了一个快速开发的要求,用户行为分析也是如此,这时候要考虑对接一些开源的分布式数据分析算法库而不是通过自己去实现,比如像spark ml,mahout这类的库用得好能减少很多工作量。

付费的用行为分析自建系统像growingio,诸葛io,神策这些都可以。3家相比诸葛io只能做一些简单的数据分析,growingio最大的特色是无需埋点,可以回溯任何数据,其他的搜需要埋点后才能收集数据,神策听过没用过