跳到主要内容

APP活跃统计管理

核心概念:数据分析 | APP活跃统计管理 | 概览

APP活跃统计管理用于统计和分析应用的活跃情况,数据来源于集成了我们SDK的应用。


核心概念:数据分析 | APP活跃统计管理 | 快速访问

快速访问

在APP活跃统计管理模块中,您可以快速访问系统。


核心概念:数据分析 | APP活跃统计管理 | 功能说明

功能说明

APP活跃统计管理的功能说明:该模块主要用于查看特定APP的活跃数据统计,帮助您了解哪些应用被用户频繁使用。


核心概念:数据分析 | APP活跃统计管理 | 1. 活跃统计列表(一级页面)

1. 活跃统计列表(一级页面)

APP活跃统计的一级页面:在APP活跃统计管理的一级页面中,这里展示了APP的整体活跃情况。数据是根据预设的定时任务(或手动触发)按年、月、日维度汇总得出的结果。

一级页面列表查询

操作说明:您可以通过上方的搜索框,输入APP名称包名,选择统计维度记录时间来查找特定的应用。

字段说明

  • 包名:APP的包名。
  • 统计维度:含年、月、日三种类型。
  • 设备数量:截止统计任务执行时,对应统计维度(年、月、日)下的设备总数。
  • 运行时长:截止统计任务执行时,对应统计维度(年、月、日)下所有设备的累计运行时长。点击数值可切换显示格式。
  • 记录时间:对应统计维度(年、月、日)的具体时间点。

数据导出

  • 同步导出:点击导出后,系统立即处理并返回导出结果。

核心概念:数据分析 | APP活跃统计管理 | 2. 详细活跃数据(二级页面)

2. 详细活跃数据(二级页面)

APP活跃统计的二级页面:在APP活跃统计管理的二级页面中,点击列表中的某一项,可进入二级页面查看每一台设备的详细活跃数据。这些数据同样基于定时任务统计分段数据生成。

二级页面列表查询

功能

  • 列表查询:查看具体的活跃记录,支持按包名MAC地址CPU地区APP版本号进行搜索。
  • 导出:点击“导出”按钮,可将当前的活跃统计数据导出为Excel文件,便于离线分析。

字段说明

  • MAC:设备的MAC地址。
  • CPU:设备的CPU。
  • 版本号:APP的版本号。
  • 地区:设备所属地区。
  • 包名:APP的包名(由上一级页面带入,列表默认隐藏)。
  • 统计维度:统计的时间维度(年/月/日)(由上一级页面带入,列表默认隐藏)。
  • 运行时长:设备的APP运行时长。点击数值可切换显示格式。
  • 记录时间:对应统计维度(年、月、日)的具体时间。

二级页面导出

数据导出

  • 同步导出:点击导出后,系统立即处理并返回导出结果。
  • 异步导出:当数据量较大时,系统采用异步导出方式。您可以在 导出任务管理模块 中查看进度并下载文件。

核心概念:数据分析 | APP活跃统计管理 | 常见问题

常见问题

APP活跃统计管理的常见问题:关于APP活跃统计管理的常见问题:

  • 数据更新频率:数据更新取决于统计任务的执行时间,通常为每日更新。
异步导出

当导出数据量较大时,系统会采用异步导出方式。您可以在 导出任务管理 中查看导出进度并下载文件。

关联模块

核心概念:数据分析 | APP活跃统计管理 | 数据处理流程

数据处理流程

本章节说明APP活跃统计的数据流转过程,帮助理解数据从设备上报到最终展示的完整链路。

1. 整体数据流向

Mermaid Diagram Code:

graph TD
    App["终端设备"]
    API_V1["V1接口"]
    API_V2["V2接口"]
    
    Kafka{"消息队列"}
    Consumer["消费者处理"]
    RawDB[("原始日志")]
    
    DetailDB[("统计详情表<br/>日/月/年三维度")]
    
    Job_ETL["定时任务<br/>数据聚合"]

    App --> API_V1
    App --> API_V2
    
    API_V1 -->|"直接入库"| DetailDB
    
    API_V2 -->|"延迟上报模式"| DetailDB
    API_V2 -->|"实时上报模式"| Kafka
    
    Kafka -->|"削峰缓冲"| Consumer
    Consumer -->|"写入"| RawDB
    
    Job_ETL -->|"读取聚合"| RawDB
    Job_ETL -->|"写入"| DetailDB

2. 数据上报模式

数据上报接口

APP端通过API上报活跃数据,后端根据接口版本和上报类型采取不同的处理策略,代码参考 ForeignThirdAppApiController.java

详细接口定义、参数说明及三种上报模式(实时/延迟/特殊)请参考:APP 活跃上报接口

  • V1 接口 (/app/activity):

    • 采用直接入库模式,适用于低频或老版本客户端。
    • 数据经过清洗(MAC格式化、IP解析地区)后直接写入活跃详情表。
  • V2 接口 (/third/app/activity/v2):

    • 实时模式:设备按服务端配置间隔上报,服务端通过 Kafka 异步处理。
    • 延迟模式 (TYPE_DELAY):设备批量上报历史积压数据,后端跳过 Kafka 直接入库。
    • 特殊模式:设备仅上报活跃状态(如开机、跨天),不统计运行时长。

实时上报模式

  • 适用场景:设备正常运行、网络稳定时
  • 工作方式:设备按服务端配置的时间间隔(如每30分钟)定期上报
  • 处理流程:数据先进入消息队列缓冲,再由消费者异步处理入库
  • 优势:通过消息队列削峰填谷,避免高峰期系统压力过大

延迟上报模式

  • 适用场景:设备离线后重新联网、网络不稳定导致积压
  • 工作方式:设备本地缓存历史数据,联网后批量上报
  • 处理流程:跳过消息队列,直接写入统计表
  • 优势:确保离线期间的数据不丢失,支持补传
上报策略

设备端具备智能重试机制:当上报失败时,按 5分钟→30分钟→100分钟→300分钟→1天→3天... 的间隔逐步重试,确保数据最终送达。

3. 消息队列缓冲

实时上报的数据会先进入消息队列(Kafka),主要作用:

  • 削峰填谷:平滑处理设备高峰期的上报请求,保护后端服务稳定性
  • 异步解耦:上报接口快速响应,数据处理异步完成,不影响设备端运行
  • 容错机制:即使后端服务短暂不可用,消息队列也能暂存数据,待服务恢复后继续处理

4. 定时任务聚合

系统通过定时任务将原始日志数据聚合成可查询的统计数据:

任务名称执行频率功能说明
数据聚合每日凌晨将前一天的原始日志按设备维度聚合,计算运行时长
日志清理定期执行清理过期的原始日志表,释放存储空间

聚合后的数据按日、月、年三个维度分别存储,支持不同时间跨度的统计分析。

5. 数据存储结构

最终展示的统计数据包含以下核心信息:

  • 设备标识:MAC地址、CPU型号
  • 应用信息:包名、版本号
  • 运行数据:运行时长(分钟)
  • 地理信息:根据IP解析的国家/地区
  • 时间维度:统计日期
IP归属地解析

系统根据设备上报时的IP地址自动解析所属国家/地区,用于地区维度的统计分析。

6. 数据模型关系

下图展示了从原始日志上报到最终统计数据的逻辑转换关系:

Mermaid Diagram Code:

classDiagram
    class AppActivityReq {
        String mac
        String cpu
        String packageName
        String versionCode
        Date timeStamp
        String ip
    }
    
    class RawLogTable {
        String id
        String mac
        String cpu
        String package_name
        Int partition_index
        DateTime create_time
        <<按日&包名分表>>
        <<Hash分区>>
    }
    
    class DetailTable {
        String mac
        String cpu
        String package_name
        Date ts
        String country
        Double duration
        <<业务查询主表>>
    }
    
    AppActivityReq --> RawLogTable : Kafka Consumer写入
    RawLogTable --> DetailTable : XXL-JOB ETL转换
    AppActivityReq ..> DetailTable : V1接口/延迟上报直接写入
开发文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答