数据仓库中的指标体系模型介绍

数据仓库中的指标体系介绍


文章目录


前言

数据仓库的指标体系(或指标体系设计)通常属于 数据建模阶段 的一部分。具体来说,它属于数据仓库构建的以下步骤:

需求分析阶段-->指标体系设计-->数据建模阶段-->数据加载与计算-->数据展示与分析

什么是指标体系

指标体系设计有哪些模型?

我基于 Oracle 11g 数据库中 SCOTT 用户 的表(如 EMP、DEPT、SALGRADE 等),针对每种指标体系拆解模型举的具体实例:

1. 指标分层模型

应用场景: 构建企业组织中的分层指标体系。

案例:

战略层: 提升公司总薪资水平(如平均薪资增长 10%)。

战术层: 按部门分析各部门平均薪资的增长(DEPT 表中的部门)。

运营层: 按员工分析个人薪资的增长(EMP 表中的员工薪资)

sql 复制代码
-- 查询战略层(全公司平均薪资)
SELECT AVG(SAL) AS AVG_SAL FROM EMP;

-- 查询战术层(按部门分层)
SELECT DNAME, AVG(SAL) AS AVG_SAL FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO GROUP BY DNAME;

-- 查询运营层(每位员工的薪资)
SELECT EMPNO, ENAME, SAL FROM EMP;

2. 维度模型

应用场景: 通过事实表和维度表分析员工薪资。

案例:

事实表: EMP 表中的薪资(SAL)。

维度表:

部门维度:DEPT 表(部门编号、部门名称、部门位置)。

时间维度:假设有 HIREDATE(入职时间)。

sql 复制代码
-- 部门维度分析:按部门统计薪资总和
SELECT D.DNAME, SUM(E.SAL) AS TOTAL_SAL 
FROM EMP E 
JOIN DEPT D ON E.DEPTNO = D.DEPTNO 
GROUP BY D.DNAME;

-- 时间维度分析:按年份统计薪资总和
SELECT TO_CHAR(HIREDATE, 'YYYY') AS YEAR, SUM(SAL) AS TOTAL_SAL 
FROM EMP 
GROUP BY TO_CHAR(HIREDATE, 'YYYY');

3. 指标树模型

应用场景: 分解总薪资指标。

案例:

顶层指标: 全公司薪资总额。

中间层: 部门薪资总额。

底层指标: 员工个人薪资。

sql 复制代码
-- 顶层指标
SELECT SUM(SAL) AS TOTAL_SAL FROM EMP;

-- 中间层指标
SELECT DNAME, SUM(SAL) AS DEPT_TOTAL_SAL 
FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO 
GROUP BY DNAME;

-- 底层指标
SELECT EMPNO, ENAME, SAL FROM EMP;

4. KPI(关键绩效指标)模型

应用场景: 绩效考核中使用的核心指标。

案例:

目标: 提升员工工作效率。

KPI:

员工平均薪资。

工资高于 3000 的员工占比。

sql 复制代码
-- KPI 1: 员工平均薪资
SELECT AVG(SAL) AS AVG_SAL FROM EMP;

-- KPI 2: 工资高于 3000 的员工占比
SELECT ROUND(COUNT(CASE WHEN SAL > 3000 THEN 1 END) * 100 / COUNT(*), 2) AS PERCENTAGE 
FROM EMP;

5. 主题域模型

应用场景: 按主题域分类管理指标。

案例:

薪资域: 薪资总额、平均薪资。

部门域: 每个部门的员工人数、部门平均薪资。

时间域: 员工入职年份分布。

sql 复制代码
-- 薪资域:总薪资、平均薪资
SELECT SUM(SAL) AS TOTAL_SAL, AVG(SAL) AS AVG_SAL FROM EMP;

-- 部门域:每部门员工人数和平均薪资
SELECT DNAME, COUNT(*) AS EMP_COUNT, AVG(SAL) AS AVG_SAL 
FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO 
GROUP BY DNAME;

-- 时间域:按入职年份统计员工人数
SELECT TO_CHAR(HIREDATE, 'YYYY') AS YEAR, COUNT(*) AS EMP_COUNT 
FROM EMP 
GROUP BY TO_CHAR(HIREDATE, 'YYYY');

6.平衡计分卡(BSC)模型

应用场景: 全面衡量企业运营的多个维度。

案例:

财务视角: 全公司薪资总额。

客户视角: 每部门员工人数(部门为"客户")。

内部流程视角: 员工工龄分布。

学习与成长视角: 员工平均奖金(COMM 字段)。

sql 复制代码
-- 财务视角:薪资总额
SELECT SUM(SAL) AS TOTAL_SAL FROM EMP;

-- 客户视角:每部门员工人数
SELECT DNAME, COUNT(*) AS EMP_COUNT 
FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO 
GROUP BY DNAME;

-- 内部流程视角:员工工龄分布
SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)/12) AS YEARS_OF_SERVICE, COUNT(*) AS EMP_COUNT 
FROM EMP 
GROUP BY FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)/12);

-- 学习与成长视角:员工平均奖金
SELECT AVG(COMM) AS AVG_COMM FROM EMP WHERE COMM IS NOT NULL;

7.数据指标框架模型(Metrics Framework)

应用场景: 指标从基础到聚合的层级。

案例:

原子指标: 每个员工的薪资。

衍生指标: 平均薪资。

聚合指标: 全公司薪资总额。

sql 复制代码
-- 原子指标
SELECT EMPNO, ENAME, SAL FROM EMP;

-- 衍生指标
SELECT AVG(SAL) AS AVG_SAL FROM EMP;

-- 聚合指标
SELECT SUM(SAL) AS TOTAL_SAL FROM EMP;

8.时间序列模型

应用场景: 按时间分析员工薪资的变化。

案例:

按年份统计入职员工的薪资总额和平均薪资。

sql 复制代码
SELECT TO_CHAR(HIREDATE, 'YYYY') AS YEAR, SUM(SAL) AS TOTAL_SAL, AVG(SAL) AS AVG_SAL 
FROM EMP 
GROUP BY TO_CHAR(HIREDATE, 'YYYY');

9.分层分级指标模型

应用场景: 按组织层级分解指标。

案例:

公司总薪资目标分为各部门目标,再分为员工目标

sql 复制代码
-- 公司总薪资
SELECT SUM(SAL) AS TOTAL_SAL FROM EMP;

-- 部门薪资
SELECT DNAME, SUM(SAL) AS DEPT_TOTAL_SAL 
FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO 
GROUP BY DNAME;

-- 员工薪资
SELECT EMPNO, ENAME, SAL FROM EMP;

10. Objective-Strategy-Metrics(OSM)模型

应用场景: 提升员工收入。

案例:

Objective(目标): 提高公司员工平均薪资。

Strategy(战略): 提高每部门的平均薪资。

Metrics(指标): 员工平均薪资、部门平均薪资

sql 复制代码
-- 公司平均薪资
SELECT AVG(SAL) AS AVG_SAL FROM EMP;

-- 部门平均薪资
SELECT DNAME, AVG(SAL) AS DEPT_AVG_SAL 
FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO 
GROUP BY DNAME;

11. UJM 模型(User Journey Metrics 模型)

应用场景: 员工招聘和发展过程的分析。

案例:

旅程阶段:

吸引: 招聘的候选人数。

转化: 入职员工人数。

留存: 员工工作年限。

扩展: 员工晋升比例。

sql 复制代码
-- 吸引阶段:假设有招聘数据表
SELECT COUNT(*) AS CANDIDATE_COUNT FROM CANDIDATES;

-- 转化阶段:入职人数
SELECT COUNT(*) AS HIRED_COUNT FROM EMP;

-- 留存阶段:按工龄统计员工人数
SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)/12) AS YEARS_OF_SERVICE, COUNT(*) AS EMP_COUNT 
FROM EMP 
GROUP BY FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)/12);

-- 扩展阶段:晋升员工人数占比(假设 `JOB` 字段中有 "MANAGER" 表示晋升)
SELECT ROUND(COUNT(CASE WHEN JOB = 'MANAGER' THEN 1 END) * 100 / COUNT(*), 2) AS PROMOTION_RATE 
FROM EMP;

总结

一、模型使用场景

模型名称 主要使用场景
1. 指标分层模型 适用于多层次管理场景,如公司战略目标、部门目标、运营目标逐级分解的场景。
2. 维度模型 数据仓库或 BI 分析中,用于从多维角度(如时间、部门、员工)分析数据。
3. 指标树模型 指标的层级分解与依赖分析,如总收入拆解为部门收入和区域收入。
4. KPI 模型 关键绩效指标监控场景,如企业绩效考核或某项目的核心指标监控。
5. 主题域模型 适合大型企业按业务主题划分指标体系,如财务、销售、客户、运营等。
6. 平衡计分卡(BSC)模型 战略管理和全面绩效评估,如从财务、客户、流程、学习等多个视角评估企业绩效。
7. 数据指标框架模型 复杂数据体系的指标标准化和全生命周期管理,用于企业建立统一的指标管理平台。
8. 时间序列模型 动态分析指标随时间变化的趋势,适用于业务监控、预警系统、趋势预测场景。
9. 分层分级指标模型 适按企业组织架构进行指标分层,如总部到区域分部到门店逐级分解指标。
10. Objective-Strategy-Metrics(OSM)模型 从目标、战略、指标三个层次设计方案,适用于目标导向的战略管理场景。
11. UJM 模型 用户行为分析场景,如互联网产品用户生命周期(吸引 → 转化 → 留存 → 扩展)相关指标分析。

二、模型的相同点

  • 目标明确性:

所有模型都以解决某一明确的业务问题为核心,如绩效提升、趋势分析、用户行为优化等。

例如:KPI 模型、OSM 模型、分层模型等都围绕目标进行分解或监控。

  • 数据指标化:

各模型都强调通过定量化指标(如薪资总额、留存率)来衡量目标和执行效果。

数据是模型的基础,通过清晰的指标定义和逻辑支持分析与评估。

  • 逻辑层次性:

多数模型具备层次性结构,比如指标分层模型、指标树模型、OSM 模型都强调指标的上下级关系。

  • 可监控与评估:

模型通过定义具体的衡量标准,便于对业务的执行过程进行持续监控与优化。

三、模型名称 特点(差异点)

模型名称 特点(差异点)
1. 指标分层模型 强调从战略层到运营层的指标逐级分解,适用于多层级的企业管理场景,特别是需要明确责任和目标的场景。
2. 维度模型 侧重于从多个分析维度(如时间、部门、区域等)对数据进行统计分析,是数据仓库和 BI 分析的重要工具。
3. 指标树模型 强调指标的分解路径和层级依赖关系,适合复杂业务场景中逐级分解目标和追溯来源。
4. KPI 模型 聚焦于核心绩效指标,强调关键目标的少量指标监控,适用于简单、直接的目标评估场景。
5. 主题域模型 按业务主题划分指标,适合大型企业或复杂组织按功能划分数据分析指标(如销售、财务等领域)。
6. 平衡计分卡(BSC)模型 从多个视角(财务、客户、流程、学习)衡量目标完成情况,适用于全面绩效评估,适用场景较广但设计复杂度较高。
7. 数据指标框架模型 强调指标的全生命周期管理(定义、使用、更新、维护),适合数据治理和标准化管理。
8. 时间序列模型 侧重分析指标随时间的变化趋势,适合业务动态监控和预测,突出指标的时间维度。
9. 分层分级指标模型 从组织架构分层和分级角度设计指标,适合跨层级、多级分支的企业环境。
10. OSM 模型 从目标到战略再到指标逐层设计,逻辑递进清晰,适合目标导向型的企业战略管理场景。
11. UJM 模型 基于用户旅程设计指标,突出用户行为分析和生命周期价值(如互联网行业中的用户留存和转化场景)。

四、总结

  • 相同点:

这些模型的核心思想都是为了更好地管理和分析数据,以支持业务目标的达成。

它们都通过指标的设计和分析,为业务提供决策支持。

  • 不同点:

视角不同:

如 平衡计分卡模型 是从多个维度综合评估,维度模型 则强调多维度数据的分析。 UJM 模型 从用户行为出发,而 分层模型

则更注重企业内部目标分解。
适用场景不同: 时间序列模型 适合时间动态监控场景,而 指标树模型 适合分解复杂指标。
复杂度不同: 简单模型如 KPI 模型 适合直接监控核心目标; 复杂模型如 数据指标框架模型 和 OSM 模型

需要全面的设计和较高的实现成本。

使用建议:

单独使用: 对于小型业务,建议采用如 KPI 模型 或 分层模型 等简单的模型。

结合使用: 对于复杂场景,可以结合多个模型使用,如用OSM 模型 制定战略目标,结合 KPI 模型 和 时间序列模型 监控关键指标,辅以 维度模型 和 指标树模型 支持多维分析。

相关推荐
武子康11 小时前
大数据-266 实时数仓 - Canal 对接 Kafka 客户端测试
java·大数据·数据仓库·分布式·kafka
zincooo14 小时前
Hive分区表添加字段
数据仓库·hive·hadoop
昊昊该干饭了18 小时前
数仓建模(二) 从关系型数据库到数据仓库的演变
大数据·数据仓库·数据库架构
SelectDB技术团队21 小时前
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
大数据·数据库·数据仓库·数据分析·doris
武子康1 天前
大数据-269 实时数仓 - DIM DW ADS 层处理 Scala实现将数据写出HBase等
java·大数据·数据仓库·后端·flink·scala·hbase
矮萌杰;2 天前
Hive集成Iceberg碰到的问题
数据仓库·hive·hadoop·iceberg
QEasycloud2 天前
数据仓库建设方案和经验总结
数据仓库
花菜回锅肉3 天前
【数据仓库】spark大数据处理框架
大数据·数据仓库·spark
花菜回锅肉4 天前
【数据仓库】hive on Tez配置
数据仓库·hive·hadoop