一文说清指标和维度

      在大数据时代,尤其是互联网公司从业者,对指标和维度这两个概念应该不陌生。但在工作中,我发现有些同学其实对这两个概念并不是很清楚,尤其是二者的区别。不信?请自问能不能快速给指标和维度做个定义,或是一句话说出二者的区别。

1 定义

      指标是度量事物/现象的某方面发展程度的统计依据。统计通常就是指加总求和、求平均、求最值等算数操作。那么在统计时总是需要知道是统计的事物的那个方面的,或者说计算的是对象的哪个属性值。例如统计学生的考试分数、商品订单的交易额等指标。

      维度是考察事物/现象的某个角度,是事物的某个特征方面。这里的角度或特征方面,通常而言,是对象的外部属性。换言之,维度通常是被考察对象的附加属性而非固有属性。例如时间、地域范围等维度。

2 区别

      指标和维度都可以作为表头,也就是关系数据库的字段。怎么区分呢,一个简单的办法就是看字段的值是不是数字类型的(也有例外,见下文)。绝大多数情况下指标字段的取值是数字,维度字段的取值是文本或时间或枚举。

      另一条判断标准是,看这个字段能不能进行求和、求均值/最值等聚合查询,如果是就是指标,否则应属维度。维度常用作分类统计的依据,例如按班级维度统计学生成绩的平均分、最高分、最低分;或者按年度统计学生成绩的平均分,乃至查看这些分数的时间变化曲线。

      对于熟悉SQL的读者而言,也可以这么区别,那些用来做group by的字段通常就是维度,而那些用来sum或max的字段就是指标。

3 分类

      指标可以分为基础指标和复合指标两种。基础指标就是不能再细分的原子指标,复合指标就是由多个指标计算而来的指标。如用户数、销售额是基础指标,点击率是复合指标(点击率由点击数和展示数两个指标计算得来,除法计算)。

      维度可分为定性维度和定量维度两种。例如,城市、性别、月份就是定性维度,而销售额等级/区间就是定量维度。比如某公司对销售额划分了【万元以下】【1~10万】【10万以上】三个等级)。这里的定量维度就是前面说的例外,即以字段值类型来判断字段是指标还是维度的例外情况。

4 一句话总结

      指标是定量的数值字段,维度是分类聚合的枚举或时间字段。在SQL中指标通常在sum/max等函数内,维度通常在group by之后。

分类:
代码人生