跳到主要内容

设备型号活跃明细查询

核心概念:数据分析 | 设备型号活跃明细查询 | 概览

设备型号活跃明细查询管理用于统计和分析设备型号维度的活跃情况,支持按时间范围、MAC来源等多维度进行筛选和聚合统计。该模块整合了自动化的日常活跃统计与人工深度分析数据。

数据来源由 UOTA01(主UOTA 心跳活跃)UOTA02(备UOTA 域名分发活跃) 两份日活CSV聚合而成,MAC来源下拉提供 15 种口径(sourceType 0~14),覆盖两个 APK 与巴伦/非巴伦的全部交集与差集


核心概念:数据分析 | 设备型号活跃明细查询 | 快速访问

快速访问

在设备型号活跃明细查询模块中,您可以快速访问系统。


核心概念:数据分析 | 设备型号活跃明细查询 | 功能说明

功能说明

设备型号活跃明细查询的功能说明:该模块帮助运营人员掌握设备型号维度的活跃趋势、留存与流失情况。

1. 搜索与筛选

设备型号活跃明细查询的搜索条件:系统提供了灵活的查询条件,以满足不同的分析需求。

搜索条件之来源

操作说明

  • 日期范围:选择查询的起始日期和结束日期。
  • 设备型号:支持输入设备型号进行搜索(支持模糊/精确匹配)。
  • MAC来源:提供 15 种口径选择,涵盖 UOTA01、UOTA02 与巴伦属性的全部交集/差集。详见下表:
sourceType显示名含义
0全部UOTA01 ⋃ UOTA02(在任一 APK 活跃过)
1巴伦UOTA01 ⋃ UOTA02,且属于巴伦
2非巴伦UOTA01 ⋃ UOTA02,且不属于巴伦
3UOTA01只要在 UOTA01 活跃过即算
4UOTA01且属于巴伦在 UOTA01 活跃过且属于巴伦
5UOTA01且不属于巴伦在 UOTA01 活跃过且不属于巴伦
6UOTA02只要在 UOTA02 活跃过即算
7UOTA02且属于巴伦在 UOTA02 活跃过且属于巴伦
8UOTA02且不属于巴伦在 UOTA02 活跃过且不属于巴伦
9在UOTA1不在UOTA2UOTA01 ∖ UOTA02(仅 UOTA01 活跃,未出现在 UOTA02)
10在UOTA1不在UOTA2且属于巴伦上述且属于巴伦
11在UOTA1不在UOTA2且不属于巴伦上述且不属于巴伦
12在UOTA2不在UOTA1UOTA02 ∖ UOTA01(仅 UOTA02 活跃,未出现在 UOTA01)
13在UOTA2不在UOTA1且属于巴伦上述且属于巴伦
14在UOTA2不在UOTA1且不属于巴伦上述且不属于巴伦
口径说明
  • 0/1/2 是 UOTA01 与 UOTA02 的并集,代表在任一备份 APK 上只要看到过设备,都计为活跃。
  • 3~5 / 6~8 分别看 UOTA01、UOTA02 各自的覆盖面。
  • 9~14差集口径,用来诊断单一 APK 失效、主备 APK 覆盖不一致等场景(例如仅在 UOTA01 活跃则意味着备UOTA 未调用域名分发接口)。
  • 按设备型号分组
    • 开启:结果列表将按“设备型号”进行分组展示,查看每个型号的具体数据。
    • 关闭:结果列表将展示汇总数据(不区分具体型号)。

核心概念:数据分析 | 设备型号活跃明细查询 | 2. 列表字段说明

2. 列表字段说明

设备型号活跃明细查询的列表字段:详细解释了列表中的各项指标含义。

列表(按设备型号分组)

字段说明

字段名含义来源/备注
统计日期数据的统计时间点。-
设备型号设备的具体型号名称。仅当勾选“按设备型号分组”时显示。
MAC来源当前数据所属的来源分类(0~14,详见上文枚举表)。-
设备活跃数量统计日期的活跃设备总数。自动计算
由 XXL-JOB 每日执行 updateDeviceDeviceModelActivity 生成。
今日新增活跃截止到统计当日,从库里最早的基准日期开始计算,首次出现活跃的设备数量。人工分析
依赖离线工具 DeviceActivityAnalysisApp 计算并导入。
今日后不再活跃在基准日期曾活跃,但从基准日期开始截止到人工执行统计时,未再活跃过的设备总量(即流失设备)。人工分析
依赖离线工具 DeviceActivityAnalysisApp 计算并导入。
创建时间该条统计记录入库的时间。-

数据导出

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

核心概念:数据分析 | 设备型号活跃明细查询 | 技术架构与数据流

技术架构与数据流

设备型号活跃明细查询的技术架构:本模块采用了自动化统计人工离线分析相结合的混合架构。

1. 数据流向图

设备型号活跃明细查询的数据流向:

Mermaid Diagram Code:

flowchart TD
    subgraph RawData ["原始数据源"]
        DailyLog1["UOTA01 日活 CSV<br/>(主UOTA心跳)"]
        DailyLog2["UOTA02 日活 CSV<br/>(备UOTA域名分发)"]
        BaseData["设备基础信息库<br/>(含巴伦 MAC 集合)"]
    end

    subgraph AutoProcess ["自动化流程 (每日)"]
        Job["XXL-JOB: updateDeviceDeviceModelActivity"]
        Job -->|"1. 下载 & 解析两份日志"| DailyLog1
        Job --> DailyLog2
        Job -->|"2. 按 15 种 sourceType 聚合"| JobLogic["型号+来源统计日活"]
        JobLogic -->|"3. 写入/更新"| DB[("数据库: device_model_activity_detail")]
    end

    subgraph ManualProcess ["人工深度分析 (按需)"]
        Tool["离线工具: DeviceActivityAnalysisApp"]
        Tool -->|"1. 读取全量历史"| RawData
        Tool -->|"2. 复杂模型计算"| ToolLogic["计算新增/留存/流失"]
        ToolLogic -->|"3. 生成 CSV"| ResultFile["分析结果文件"]
        ResultFile -.->|"4. 导入 (人工/脚本)"| DB
    end

    DB -->|"5. 查询展示"| Frontend["前端页面"]

2. 核心业务逻辑

设备型号活跃明细查询的核心逻辑:

自动化统计 (XXL-JOB)

  • 任务名称DeviceInfoJob.updateDeviceDeviceModelActivity
  • 执行频率:每日凌晨。
  • 逻辑
    1. 从任务参数获取基准日期(activityDayInt)与两份活跃CSV的URL(activityFilePath 为 UOTA01,uota2ActivityFilePath 为 UOTA02),并先清理当日旧数据。
    2. 加载 巴伦 MAC 集合,用于判定是否属于巴伦。
    3. 阶段 B:处理 UOTA01 文件,记录 (mac+cpu) -> deviceModel 映射到 uota01Map,输出 sourceType 3 / 4 / 5
    4. 阶段 C:处理 UOTA02 文件,同时完成:
      • 6 / 7 / 8:UOTA02 本身与巴伦交集;
      • 0 / 1 / 2:并集口径(UOTA01⋃UOTA02);
      • 12 / 13 / 14:UOTA02 中不在 UOTA01 的差集口径;
      • 9 / 10 / 11 由 UOTA01 文件中不出现在 uota02KeySet 的 key 反推得出。
    5. 多类 sourceType 同时更新到数据库的 deviceCount 字段。

深度分析 (离线工具)

  • 工具类DeviceActivityAnalysisApp
  • 场景:需要分析长周期的用户生命周期指标(如新增、流失)。
  • 逻辑
    1. 今日新增活跃:对比历史所有活跃记录,识别当日首次出现的 MAC。
    2. 今日后不再活跃:基于选定的“基准日期”,追踪该日期活跃的设备在后续日子里是否再次活跃。
    3. 结果由人工确认后更新至数据库对应字段。

核心概念:数据分析 | 设备型号活跃明细查询 | 数据模型

数据模型

设备型号活跃明细查询的数据模型:

Mermaid Diagram Code:

erDiagram
    DeviceModelActivityDetailDO {
        long id PK
        date baseDay "统计日期"
        string deviceModel "设备型号"
        int sourceType "MAC来源 (0~14, 详见来源枚举)"
        int deviceCount "活跃设备数量 (自动)"
        int newActiveCount "今日新增活跃 (人工)"
        int lostCount "今日后不再活跃 (人工)"
        datetime createTime "创建时间"
        datetime updateTime "更新时间"
    }
数据时效性
  • 设备活跃数量为 T+1 自动更新,数据通常是最新的。
  • 新增活跃不再活跃指标依赖人工触发离线分析任务,如果未及时执行,这两列数据可能会滞后或为空。
开发文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答