zoukankan      html  css  js  c++  java
  • 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在这个项目中的相关应用
  • 相关阅读:
    sqlserver 批量删除所有表语句
    C# 中的委托和事件
    Oracle建立用户
    C# Linq获取两个List或数组的差集交集
    Linux下Redis安装与配置操作说明
    word缩印
    centos7上的postgresql10安装和配置
    numpy技巧
    发票二维码扫描增强_06_持续优化
    发票二维码扫描增强_05_构建目标二维码
  • 原文地址:https://www.cnblogs.com/tongxupeng/p/10259513.html
Copyright © 2011-2022 走看看