applogs流量数据项目学习

一、 项目介绍
项目的功能主要是面向App开发商提供App使用情况的统计服务 主要是基于用户启动app的统计分析,app只要启动就会上报一条日志记录 (启动日志),当然也会有其他的日志比如说页面访问日志、错误日志等
源码参考github: https://github.com/CodeTxp/appLogsPro1
二、完成的工作效果主要有

  • 统计App(一段时间)新增用户的数目 如:一周内的每天的新增用户数目 五周内每周的新增用户数目等等
  • 统计App(某段时间)的活跃用户:就是指定时间段内打开过app的用户
  • 统计App的沉默用户数量 比如两天内没有启动过app 的用户就算是沉默用户
  • 统计App的各个版本的新增用户、活跃用户、启动次数(或者叫版本分布)
  • 统计App的回流用户 如本周回流用户指的是:上周没有启动而本周启动的用户
  • 统计App连续n周活跃用户数目(连续n周 每周至少启动一次)
  • 统计App忠诚用户的数目(比如定义为连续5周以上活跃的用户为忠诚用户)
  • 统计App近期流失用户(比如定义为连续n(2<=n<=4)周没有启动的用户)
  • 统计App留存用户数目 某一段时间的新增用户,经过一段时间后,仍然是app的用户
  • 统计用户新鲜度 比如定义每天启动app的新老用户比例

三、涉及到的技术以及架构
java hadoop hive flume kafka ssm框架
技术框架
在这里插入图片描述

四、实现

  • 公共模块的实现 (app-analyze-common模块):包括相关的日志实体
    AppBaseLog
    AppErrorLog
    AppEventLog
    AppLogEntity
    AppPageLog
    AppStartupLog
    AppUsageLog

  • Web收集日志程序的编写(app-logs-collect-web)
    下面来具体的分析一下,收集日志的程序的编写首先涉及到的关键的点有

    a、修正时间
    b、基本属性复制
    c、处理ip地址问题
    d、发送log给kafka主题

1、首先为什么要进行修正时间的操作?
因为客户端上报日志的时间可能会与服务器端的时间不统一、比如昨天的日志今天才上报,日志的时间是昨天的,但是确实今天上报的,在这种情况下就要进行时间的修正,将时间修正为服务器端的时间。
2、基本属性复制是干嘛的?
它主要完成的是Log实体中公共部分属性和Log类中间属性的复制 通过反射机制
3、处理ip地址问题完成的主要是什么问题?
地理工具类,实现通过ip查找地址区域
然后发送log给kafka的主题

  • Flume在这个项目中的相关应用
原文地址:https://www.cnblogs.com/tongxupeng/p/10259513.html