GoWind 开源生态GoWind 开源生态
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
  • 介绍

    • GoWind UBA 产品介绍
  • 架构参考

    • UBA 系统架构
    • UBA 后端模块总览
    • UBA 后端 API 契约
    • UBA 前端架构
  • 开发者指南(二开)

    • UBA 安装指南
    • UBA 代码生成管线教程
    • 新增对外服务教程
    • 新增业务实体教程
    • 新增前端页面教程
  • 运维指南

    • UBA Docker 部署指南
    • UBA 配置详解与安全清单
    • UBA PM2 部署指南
    • UBA Superset BI 部署指南
  • 数据分析师指南

    • 数据分析师上手指南
    • 基础聚合

      • 事件趋势分析
      • 活跃用户分析
      • 维度分组聚合
    • 转化与路径

      • 漏斗分析
      • 留存分析
      • 热门转化路径
      • 行为序列分析
    • 用户深度

      • 归因分析
      • 分布分析
      • 用户分群圈选
      • 点击热力图
      • 间隔时间分析
    • 生命周期

      • 用户生命周期
      • 流失与回流分析
      • 新老用户对比
      • 矩阵象限分析
    • 营收与价值

      • 营收分析
      • 付费分层(鲸鱼分析)
      • 历史 LTV 分析
    • 会话与异常

      • 会话分析
      • 同比环比与异常检测
    • 游戏专属

      • 关卡分析(游戏)
      • 滚服留存(游戏)
      • 同时在线分析(游戏)
      • 经济系统分析(游戏)
    • OLAP 查询手册
  • SDK 接入

    • Web SDK 接入指南
    • C# SDK 接入指南(Unity / Godot / .NET)
  • 附录

    • UBA 附录:端口、术语、已知限制与 FAQ

维度分组聚合

维度分组聚合(GroupBy)按某个维度字段(平台、渠道、地区、版本等)对事件指标进行分组统计,回答"按 X 维度看,分布/对比如何"。对应后端 AnalyticsService.GroupBy。


一、它能回答什么问题

  • 各渠道(channel)带来的事件量占比?哪个渠道最多?
  • iOS / Android / Web 三端的活跃对比?
  • 不同 App 版本的用户分布?

二、关键概念

概念说明
维度(dimension)分组依据的字段,走白名单(见下)
指标(metric)聚合方式:COUNT 事件数(默认)/ UNIQUE_USER 去重用户数 / SUM_AMOUNT 金额求和
占比(percentage)每个分组占总量比例

支持的白名单维度:platform / channel / country / app_version / event_name / event_category / os / network(游戏模型另支持 server_id / level 等)。


三、后端接口

gRPC:AnalyticsService.GroupBy

字段类型说明
time_rangeTimeRange分析时间范围
dimensionstring分组维度字段名(白名单内)
metricstring(可选)COUNT / UNIQUE_USER / SUM_AMOUNT,默认 COUNT
app_iduint32(可选)按应用过滤
event_namestring(可选)事件名过滤(空 = 全部事件)
top_nuint32(可选)返回前 N 个分组,默认 20

响应 GroupByResponse:buckets[](每个 GroupByBucket 含 label / value / percentage)、dimension、total。

HTTP(admin 转发)

POST /admin/v1/analytics/group-by
Content-Type: application/json

{
  "timeRange": { "startMs": 1718169600000, "endMs": 1718774399000 },
  "dimension": "channel",
  "metric": "UNIQUE_USER",
  "topN": 10
}

四、SQL 原理

SELECT channel AS label, count(DISTINCT user_id) AS value
FROM events_fact
WHERE event_time BETWEEN :start AND :end
GROUP BY channel
ORDER BY value DESC
LIMIT 10;

应用层再用各分组的 value 除以 total 得到 percentage。

维度字段走白名单校验(防 SQL 注入):只有上述白名单内的字段名才允许作为 dimension,否则后端拒绝。


五、典型场景

渠道质量评估

dimension=channel, metric=UNIQUE_USER:看各渠道的去重用户数,评估投放渠道的获客规模。

版本分布

dimension=app_version, metric=COUNT:看各版本的事件量,评估版本迁移进度与新版本是否异常。

平台对比

dimension=platform:对比 Web/iOS/Android 的事件规模。


六、注意事项

  • 维度必须在白名单内,自定义字段不能直接作为 dimension(可用 properties 自定义属性走其他分析或 Superset 自建查询)。
  • top_n 截断:长尾分组(如上百个国家)会被截断到前 N,剩余的不会单列。
  • SUM_AMOUNT 依赖 amount 字段:只有上报时填了 amount 的事件(如支付)才有意义。

七、相关文档

  • 数据分析师上手指南
  • 事件趋势分析
  • 营收分析
  • 后端 API 契约
Edit this page
Last Updated:: 6/29/26, 3:57 PM
Contributors: Bobo
Prev
活跃用户分析