指标体系在数仓物理实现层面主要是结合数仓模型分层架构进行指导建设,数仓建模的过程很大一部分其实就是在构建指标体系,可以说指标体系的好坏决定了模型了健壮性。
一、 存在的问题
实际工作中不管是做BI还是数仓项目,只要存在计算指标的功能就会存在以下问题:
- 命名不规范:好的指标命名是可以推断出其包含的业务过程的,但工作中总会碰到一些指标,很难判断这个指标是描述什么业务的。
- 计算口径不统一:有些指标的计算口径不同的人会有不同的理解方式,导致使用者对这一指标理解产生歧义。
- 数据来源、计算逻辑不清晰:之前工作中经常会碰到这类问题,当指标出现问题时需要去查代码才能找到指标使用了哪些表中的数据。而有些计算逻辑比较复杂的指标很难用语言描述清楚,即使能够描述清楚也会需要大段文字。指标开发人员很清楚其中的计算逻辑,使用者用起来是一头雾水。
- 指标重复/冲突/过度开发:由于没有统一的指标管理体系,导致很多指标重复开发,不同指标名称背后很可能是相同的计算逻辑和统计口径;指标名称相同,计算逻辑、统计口径、数据源等不一样,这种情况非常让人费解;工作中有时要开发一些由于“某些原因”必须开发的指标,而这些指标很多时候只使用一次
- 指标使用不明确:由于指标命名不规范、指标描述不清晰等问题,使用者不知道如何使用、分析这一指标。
二、 指标管理的一些原则
- 指标体系化管理、全局统一管理
- 指标计算逻辑、计算口径、数据源表述清晰。
- 指标命名规范、描述清晰且含义明确
- 明确指标的使用方式、系统、使用人等权限明确
从 “管理、计算、使用”三个角度阐述一下什么样的指标管理方法是“合格的”:
三、 基本概念
-
指标:业务单元细分之后量化的度量值
-
数据域:业务过程或者维度的抽象集合
其中,业务过程可以概括为一个个不拆分的行为事件,在业务过程之下,可以定义指标;维度,是度量的环境,如乘客呼单事件,呼单类型是维度。为了保障整个体系的生命力,数据域是需要抽象提炼,并且长期维护更新的,变动需执行变更流程。
-
业务过程:不可拆分的业务活动事件,如库房操作中的拣选、复核、打包等都是业务过程
-
时间周期:统计的时间范围或者时间点,非统计口径; 最近30天、自然周、截止当日等
-
修饰词:业务场景限定词,如AGV仓、Shuttle仓、立体仓库等,个人理解可以和维度属性等同; 修饰类型从属于某个业务域,如日志域的访问终端类型涵盖APP端、PC端等修饰词
-
修饰类型:修饰词的抽象划分,从属于某个业务域,如仓库类型下包含上述仓库类型在内的多种仓库
-
原子指标/度量:基于某一业务行为下的量化值,具有明确的业务含义,适合用“动作+度量”的方式命名;
原子指标和度量含义相同,基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名称,如支付金额。
指标分类主要分为原子指标、派生指标、衍生指标。
原子指标 基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名称,如呼单量、交易金额 派生指标 是1个原子指标+多个修饰词(可选)+时间周期,是原子指标业务统计范围的圈定。派生指标又分以下二种类型: 事务型指标:是指对业务过程进行衡量的指标。例如,呼单量、订单支付金额,这类指标需要维护原子指标以及修饰词,在此基础上创建派生指标。 存量型指标:是指对实体对象(如司机、乘客)某些状态的统计,例如注册司机总数、注册乘客总数,这类指标需要维护原子指标以及修饰词,在此基础上创建派生指标,对应的时间周期一般为“历史截止当前某个时间”。 衍生指标是在事务性指标和存量型指标的基础上复合成的。主要有比率型、比例型、统计型均值
-
维度:度量的环境,反映业务的一类属性,如库房维度、SKU品类维度、时间维度
维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。维度属于一个数据域,如地理维度(其中包括国家、地区、省市等)、时间维度(其中包括年、季、月、周、日等级别内容)。
-
维度属性:维度的属性,比如库房维度的属性:库房名称、库房位置、库房类型等
-
派生指标:时间周期+统计粒度+修饰词+原子指标,采用“修饰词__原子指标_时间周期”命名方式。一个简单的判断标准:如果修饰词有对应的维表,就可以作为派生指标,否则可以当作原子指标管理
四、指标管理方法
指标管理的几项目标是
技术目标 统一指标和维度管理,指标命名、计算口径、统计来源唯一, 维度定义规范、维度值一致
业务目标 统一数据出口、场景化覆盖
产品目标 指标体系管理工具产品化落地;指标体系内容产品化落地支持决策、分析、运营例如决策北极星、智能运营分析产品等
认识和管理复杂事物最好的方法之一就是分类
A[业务线] -->B{主题域}
B--> G(修饰类型)
B --> D(纬度)
B --> C(业务过程)
D-->K(纬度属性)
G-->H(修饰词)
C -->E(原子指标)
C-->J(度量)
H-->F(派生指标)
E -->F(派生指标)
F-->M(汇总事实表)
J-->N(明细纬度事实表)
K-->N(明细纬度事实表)
K-->L(纬度表)
K-->M(汇总事实表)
J-->M(汇总事实表)
一般会按照业务线、主题域、业务过程三级目录的方式管理指标,如果业务线条之间交叉较多,也可直接按照主题域划分。例如电商行业划分仓储、配送、零售、客服等主题域,都是为电商业务服务等,仓储主题域下面又划分为拣选、复核、打包等业务过程
规范的命名
- 原子指标:指标名称适合用“动作+度量”的命名方式,标识的命名用英文简称或者汉语拼音缩写比较好。
- 派生指标:指标名称应严格遵循“时间周期+统计粒度+业务限定+原子指标”的命名方式,标识命名要用“业务限定_原子指标_时间周期”的方式。
指标管理系统的基本功能
- 系统应当能按照指标管理体系进行多维度分类
- 能够清晰的描述指标名称(中英文)、业务口径、计算逻辑等;
- 能够较为便利的管理指标,进行添加、删除、修改等操作。
- 指标能够关联应用系统
- 指标应该和能数仓中的数据模型动态关联,即指标能够关联到表和字段上,以便使用者能够深入了解指标的计算过程,开发者能够较为便捷的定位数据源
- 系统应该和元数据管理系统关联,否则指标无法关联表和字段
- 应当能够同步数仓的主题域和业务过程,并按照命名规范创建指标
- 提供指标检索功能