数据看板设计
问题
如何设计一个有效的数据看板?看板的布局、指标选择和更新策略有哪些最佳实践?
答案
看板设计框架
看板布局原则
经典三层布局
| 区域 | 内容 | 说明 |
|---|---|---|
| 顶部 | KPI 卡片 | 3-6 个核心指标 + 同比/环比 |
| 中部 | 趋势图 + 对比图 | 核心指标走势、维度对比 |
| 底部 | 明细表 / 下钻 | 支持筛选排序 |
┌─────────────────────────────────────────┐
│ DAU: 12.3万 收入: ¥850万 转化率: 3.2% │ ← KPI 卡片
│ ↑5.2% 周同比 ↑12% 月同比 ↓0.1% 环比 │
├──────────────────────┬──────────────────┤
│ │ │
│ DAU日趋势折线图 │ 渠道收入对比柱状图 │ ← 趋势 + 对比
│ │ │
├──────────────────────┼──────────────────┤
│ │ │
│ 转化漏斗图 │ 用户构成饼图 │ ← 分析
│ │ │
├──────────────────────┴──────────────────┤
│ Top 10 产品明细表(可排序、可筛选) │ ← 明细
└─────────────────────────────────────────┘
KPI 卡片设计
KPI 卡片示例
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Indicator(
mode="number+delta",
value=123000,
delta={'reference': 117000, 'relative': True, 'valueformat': '.1%'},
title={'text': 'DAU'},
number={'valueformat': ','},
domain={'row': 0, 'column': 0}
))
fig.add_trace(go.Indicator(
mode="number+delta",
value=8500000,
delta={'reference': 7600000, 'relative': True, 'valueformat': '.1%'},
title={'text': '收入(元)'},
number={'valueformat': ',.0f', 'prefix': '¥'},
domain={'row': 0, 'column': 1}
))
fig.add_trace(go.Indicator(
mode="number+delta",
value=0.032,
delta={'reference': 0.033, 'relative': True, 'valueformat': '.1%'},
title={'text': '转化率'},
number={'valueformat': '.1%'},
domain={'row': 0, 'column': 2}
))
fig.update_layout(
grid={'rows': 1, 'columns': 3, 'pattern': 'independent'},
height=200
)
fig.show()
指标选择公式
北极星指标 + 支撑指标
- 北极星指标:1 个最能反映业务健康的指标(如日活跃用户数)
- 一级指标:3-5 个支撑北极星的关键指标(获取、激活、留存、变现)
- 二级指标:可下钻的维度指标(按渠道、按地区细分)
看板分类
| 看板类型 | 受众 | 更新频率 | 特点 |
|---|---|---|---|
| 战略看板 | 管理层 | 周/月 | 宏观 KPI、趋势、目标达成率 |
| 运营看板 | 运营团队 | 日/实时 | 活跃、留存、转化细节 |
| 分析看板 | 分析师 | 按需 | 可下钻、多维筛选 |
| 监控看板 | 技术/运维 | 实时 | 异常告警、系统指标 |
交互设计
| 交互类型 | 用途 | 实现工具 |
|---|---|---|
| 日期筛选 | 切换时间范围 | 日期选择器 |
| 维度筛选 | 按渠道/地区/产品线 | 下拉菜单 |
| 下钻联动 | 点击图表联动更新 | 交叉筛选 |
| Tooltip | 悬停显示详细数据 | Plotly/ECharts |
| 导出 | 导出数据或图表 | CSV/PDF 下载 |
更新策略
| 数据类型 | 更新频率 | 技术方案 |
|---|---|---|
| 实时指标 | 秒/分钟级 | Flink → ClickHouse → 看板 |
| 日报指标 | T+1 天 | 离线调度 → 数仓 DWS → 看板 |
| 周/月报 | 周/月 | 调度任务 → 聚合表 |
常见面试问题
Q1: 看板上应该放多少个指标?
答案:
- 单个看板 6-10 个核心指标,过多则失去焦点
- KPI 区域不超过 6 个卡片
- 遵循"一屏看全局、点击看细节"原则
- 不同角色看不同看板,避免一个看板塞所有指标
Q2: 如何设计一个电商数据看板?
答案:
- KPI 区:GMV、订单量、UV、转化率、客单价、退货率
- 趋势图:GMV 日趋势(vs 去年同期)
- 漏斗图:浏览 → 加购 → 下单 → 付款
- 对比图:各品类收入占比、各渠道UV
- 明细表:Top 商品、异常指标
- 筛选器:日期、品类、渠道、地区
Q3: 看板加载慢怎么优化?
答案:
- 预计算聚合表:不要在看板层做实时聚合
- 分层查询:先加载 KPI,再异步加载图表
- 默认时间范围:默认显示近 7 天而非全量
- 缓存策略:Redis 缓存高频查询结果
- 采样:明细数据展示用采样或分页
Q4: 如何衡量看板的有效性?
答案:
- 使用率:每天有多少人打开看板
- 停留时间:用户在看板上花多少时间
- 决策关联:看板是否驱动了具体决策
- 反馈:用户是否觉得信息足够/过多/缺失