维度 Dimension 是切分、分类和观察数据的角度,比如日期、地区、产品、渠道、客户类型和销售人员。度量 Measure 是可以聚合或计算的数值,比如订单数、金额、成本、数量和时长。把“华南、3月、企业客户”放在一起,是一个筛选条件;把“销售额为80万元”放在一起,才是被衡量的结果。
维度与度量不是永远固定的。同一个字段在不同场景中可能改变角色,例如“价格”可以作为度量计算平均值,也可以按价格区间作为维度观察分布。选择之前,我会先问:这个字段是在回答“按什么分类”,还是在回答“结果是多少”?
| 业务字段 | 更常见角色 | 可以回答的问题 |
|---|
| 下单日期 | 时间维度 | 结果在何时发生变化? |
| 客户类型 | 分类维度 | 哪类客户贡献更高? |
| 支付金额 | 度量 | 收入规模和客单价如何? |
| 渠道编码 | 渠道维度 | 不同来源的转化质量如何? |
数据粒度 Grain 指一条记录所代表的最小业务事件。例如订单明细表的一行可能代表“某订单中的某个商品”,订单主表的一行可能代表“一个订单”,客户月度汇总表的一行可能代表“一个客户在一个月的表现”。粒度不同,能回答的问题和可用的聚合方式也不同。
如果把订单主表和订单明细表直接连接,再按订单金额求和,明细行会把一笔订单复制多次,形成重复计算。这就是典型的粒度冲突。我的做法是先画出每张表的“一行代表什么”,明确主键与关联键,再决定在哪个层级汇总。
检查句:在写任何聚合公式前,先完整说出“每一行代表一个什么”。说不清时,先不要下结论。
结构化数据有明确字段和格式,适合放入表格或数据库;非结构化数据包括合同文本、聊天记录、图片和音频。半结构化数据如 JSON、日志文件则有一定标签但格式弹性较大。
数据类型决定处理方式,不等于数据价值高低。客户投诉文本可能很难直接汇总,却可以通过标签体系或文本分类转化为可分析的主题数据。
“地区”是名义类别,类别之间没有大小关系;“满意度等级”有顺序,但等级间距不一定相等;“销售金额”是数值尺度,可以做加减和比例比较。
把类别编码为1、2、3,不代表它真的变成了可求平均的数值。编码只是让系统识别类别,不能凭此推导出“3比1多两倍”。
交易发生时间、入账时间、发货时间和统计更新时间可能不同。实时数据适合监控当前状态,日快照适合追踪库存或客户状态变化,月度汇总适合经营复盘。
我会在看板标题或指标说明中标注时间口径,避免把“数据更新时间”误认为“业务发生时间”。