news 2026/7/3 0:29:19

数仓项目指标体系的拆分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数仓项目指标体系的拆分

做一个数仓项目的前提是需要分析指标体系,对指标体系进行一个拆分,知道一个需求指标依赖于什么指标。

1,指标体系中指标的类型

指标类型一共有三大类

原子指标:基于某一业务事件行为下的度量,是业务定义中不可再拆分的最小计算单元。

-- 业务过程(从哪张表查询)-- 度量(对哪一列进行分析) -- 聚合逻辑(count,sum等聚合方式)

“原子指标是与具体统计维度无关的”。例如,“支付金额”是原子指标,但“最近7天各渠道支付金额”是派生指标。原子指标只定义“算什么”和“怎么算(聚合方式)”,不包含“在哪算(粒度/限定)”。

派生指标:依赖于原子指标在进行进一步的聚合统计

-- 原子指标 -- 统计周期(间隔多久统计一次)-- 统计粒度(group by) -- 业务限定(where)

衍生指标:依赖于派生指标,通常需要两个派生指标进行计算,一般是占比,比率等指标的统计

-- 派生指标 -- 计算逻辑(可能是派生指标 / 派生指标,或者是基于派生指标进一步的统计)

2,具体指标的拆分,电商数仓中流量域指标体系的拆分

指标一:最近1、7、30日各渠道访客数

指标二:最近1、7、30日各渠道会话平均浏览页面数

指标三:最近1、7、30日各渠道跳出率

指标四:最近1、7、30日页面浏览路径分析

3.拆分指标的方法论

第一步:先判断这个指标是否可以再拆分。

例如上面的最近1、7、30日各渠道会话平均浏览页面数,除了我上面拆分成会话页面浏览数,拆分成这个的原因是因为有avg()聚合函数,可以直接统计。除此之外,可以拆分成页面浏览的总数以及会话的总数这两个派生指标,两者相除也可以得到这个衍生指标。

层级指标名称构成/计算逻辑备注
衍生指标各渠道会话平均浏览页面数会话页面浏览总数 / 会话总数最终需求指标
派生指标A最近N天各渠道会话页面浏览总数原子指标(页面浏览数) + 周期(N天) + 粒度(渠道)分子
派生指标B最近N天各渠道会话总数原子指标(会话数) + 周期(N天) + 粒度(渠道)分母
原子指标页面浏览数业务过程(页面浏览) + 度量(page_id) + 聚合(count)不可再分
原子指标会话数业务过程(会话) + 度量(session_id) + 聚合(count_distinct)不可再分

第二步:判断指标是否依赖于其他的指标。

例如,上面的最近1、7、30日各渠道跳出数量。通过分析我们可以知道,这个指标依赖于另一个指标,各会话的页面浏览次数,所以我们需要先求出页面浏览次数。

第三步:拆分出原子指标

原子指标不可再拆分,只要确定了这个指标直接就可以通过现有的表,可以直接求出来,这个指标就是原子指标。

4.抽取相同统计周期,统计粒度,业务限定的逻辑为DWS层的中间表

在指标拆分中,我们发现很多的派生指标的统计周期,统计粒度,业务限定都相同。这会造成数据的重复读取和数据的重复计算,非常影响统计分析的效率,我们就可以将这些相同的逻辑抽取出来,作为一张中间表来进行存储,后续指标计算需要用到的时候,就不需要再从头计算,而是直接就可以复用这个中间表。

DWS层就是专门用来存储这样的中间表,所以可以将这些表存储到DWS层中。后续ADS做需求分析是,优先到DWS层中找,如果有相关的表,可以直接用来计算。DWS层没有找到再去DWD + DIM层寻找。因为对于一些特定需求的指标,我们就没有必要抽取出来中间表,这样反倒会影响性能,毕竟中间表需要落盘,额外会消耗资源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 0:28:55

YOLOv8一站式实战:从环境搭建到生产部署的计算机视觉全流程指南

在计算机视觉项目开发中,你是否曾面临这样的困境:目标检测需要部署YOLO,图像分类又要用ResNet,语义分割还得换UNet,不同任务切换框架、配置环境、处理数据格式让人疲于奔命,项目集成复杂度陡增。如果你希望…

作者头像 李华
网站建设 2026/7/2 14:23:21

超越Redis:揭秘操作系统隐形缓存体系,优化系统性能的底层逻辑

你是不是也遇到过这种情况:系统性能瓶颈,第一反应就是“上Redis缓存”;接口响应慢,立刻想到“是不是缓存没命中”;甚至很多架构设计文档里,缓存层几乎成了标配,仿佛没有Redis的系统就不够“现代…

作者头像 李华
网站建设 2026/7/3 0:28:08

超越Redis:揭秘操作系统底层缓存机制的性能优化实践

在开发高性能应用时,我们常常第一时间想到 Redis 这类分布式缓存中间件,仿佛它是解决所有性能瓶颈的“银弹”。然而,你是否遇到过这样的场景:即使引入了 Redis,应用的响应速度依然不尽如人意,尤其是在处理大…

作者头像 李华
网站建设 2026/7/1 3:41:23

MSC许可使用期限与规定

确保合规使用,提升资源价值随着科技的快速发展,工程仿真软件在科研与工程实践中扮演着越来越重要的角色。作为业界领先的工程仿真软件供应商,MSC软件公司提供的许可使用服务,为广大用户提供了高效、稳定的解决方案。然而&#xff…

作者头像 李华
网站建设 2026/7/2 18:14:17

C++ 内存泄漏:ASAN 工具使用教程

C 内存泄漏:ASAN 工具 超详细使用教程 AddressSanitizer(ASAN) 是 C 排查内存泄漏的工具,比 Valgrind 快 5~10 倍,GCC/Clang/VS 全都自带,不用额外安装,直接编译就能用。 它能精准检测&#xff…

作者头像 李华
网站建设 2026/7/3 0:20:13

batis框架搭建

官方链接:MyBatis 3 | 入门 – mybatis 1.创建数据库表 2.idea项目创建 3.添加依赖,mysql,mybatis等 maven官方网站:Maven Repository: com.mysql mysql-connector-j 8.3.0 标红可能需要在idea右侧点击刷新 4.mybatis.xml配置 5.idea创建实体类接收…

作者头像 李华