维度建模基本流程总结

news2025/2/25 18:27:49

一、维度建模基本流程图

数据RD进行业务调研和数据现状调研,产出符合相关模版规范的业务知识文档和数据现状文档。数据PM也会调研相关业务产出需求设计文档,三方参与需求评审,评审通过后基建数据RD进行需求拆解,产出技术方案,三方进行技术方案评审,如果技术方案评审通过进入基建需求池、排期、开发、上线并做相关数据运营动作。

二、维度建模流程详情

详细流程主要介绍每个步骤的参与方、行动详情、产出结果并明确相关的check机制。

2.1 业务调研

关键动作

业务调研主要是业务方、数据PM、数据RD参与,数据RD具体动作如下:

1.理解业务环境,通过和业务方代表交流发现需求,用于理解他们基于关键性能指标、竞争性商业问题、决策制定过程、支持分析需求的目标。

2.梳理业务过程,通过和源系统专家交流信息、业务方的描述信息梳理业务过程,业务过程是一个不可拆分的行为事件。

3.分析关键业务和核心问题,分析关键业务及其动作是什么,明确业务现阶段所关注的核心问题,对核心问题的理解有助于我们覆盖业务场景。

核心成果

业务调研完成后,需要编写业务知识文档,此文档可以按照如下思路整理

1.业务简介,源系统业务简单概述,明确决策过程和分析目标等。

2.统一业务概念,将源数据(即业务系统)中隐含的、有歧义的概念进行清晰化。

3.业务流程介绍,重点关注源系统的ER模型,整理业务流程图,梳理业务基本动作等。

4.总结业务对数据的需求,重点梳理业务指标。

业务调研步骤可重可轻,重:基建层面从质量、效率、成本和扩展性长远考虑需要深入调研并理解。①质量: 通过数据集成和一致性建设,提升数据指标的一致性及及时性;②效率:提升计算、存储、查询效率,提升用户体验;③成本:减少不必要的数据冗余、提升模型复用度,降低存储、计算以及维护开发、降低成本。④扩展:屏蔽业务及上游系统的变更影响,能灵活快速兼容业务变更以及支撑新业务。

轻:根据需求紧急程度,结合原有调研的相关知识,快速支持业务需求。

2.2 数据现状调研

关键动作

数据现状调研主要是数据PM、数据RD参与,关键动作如下:

1.数据PM需要梳理历史定义的数据指标口径,这部分口径解决什么问题(随着时间推移历史指标口径不明确,解释不清等)。

2.从数据RD角度需要梳理之前产出的模型、看板、数据产品,不同的交付方式所对应的模型是否相同,有没有口径不统一的风险。同时将这部分涉及的底表列出来,还没有接入的提前接入。

核心成果

1.数据RD明确指标如何使用:主要是通过表格描述清楚之前的看板和产品使用的模型、模型对应的指标。

2.历史指标及其口径,从数据PM角度需要了解之前定义的数据指标口径,这部分口径解决什么问题。

3.初步给出一些优化改进建议,比如重复逻辑下沉、重复开发优化等。

2.3 主题抽象&总线矩阵

关键动作

主要由数据RD完成,关键动作如下:

1.明确数仓建设的相关分层和命名规范。

2.明确数据域的抽象划分。

3.明确主题、业务过程及其对应关系。

4.明确业务过程和一致性维度关系。

核心成果

产出相关文档,主要包含①主题、词根和主题对应业务过程关系表;②主题和一致性维度矩阵,方便从宏观认识整个数仓;③每个主题下业务过程和一致性维度关系矩阵。

2.4 数据需求设计

关键动作

主要由数据PM完成,关键动作如下:

1.明确背景和业务价值。

2.如果是涉及到产品化的项目需要明确产品或报表工具,设计相关原型图。如果只提供数据集,需要明确指标如何使用,作用的结果。

3.定义清楚维度和指标(偏应用层指标)

4.明确期望交付时间、交付结果,数据回刷范围等。

关键产出就是需求文档(PRD)。

需求PRD产出后需要组织业务方、数据RD和PM进行需求评审,主要check 需求评审文档,是否符合既定规范,价值描述清晰、维度和指标口径,数据范围、交付时间等。

2.5 数据需求拆解

关键动作

主要由数据RD完成,关键动作如下:

事实表设计:

1.选择业务过程:选择主题域明确主题下的业务过程,选择具体的业务过程(在主题域内根据情况会抽象新增/合并业务过程)开始拆解。

2.确定事实表,根据需求设计合适的事实表类型,事务事实表、周期快照事实表、累积快照事实表。

3.声明粒度,在从给定的业务过程中获取数据时,原子粒度是最低级别的粒度,建议优先关注原子粒度数据开始设计,原子粒度数据能承受无法预期的用户查询,然后根据针对业务公共问题和性能出发设计上卷汇总粒度数据表。

4.确认维度:维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以成为实体对象。在实际工作中好的维度设计可以层次递进的反应业务情况

5.确认事实(指标):事实就是度量,一般是对某个业务事件的衡量,通常为数字,如定单量,订单金额等。尽可能包含业务过程下所有原子指标,只选择和业务过程相关的原子指标,统一同类指标的单位。根据规范对指标拆解:①确定原子指标:基于某一业务时间行为下的度量,是业务定义中不可再拆分的指标(比率等指标除外),具有明确业务含义和业务完整定义的名词。原子指标=业务过程(动作)+度量,比如推单量,下单金额,支付金额;②确定派生指标:派生指标=一个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标业务统计范围的圈定。比如昨日新用户下单量

6.梳理具体业务过程下的指标维度矩阵。

维表表设计

1.选择实体

维度表设计首先要选择实体,也就是维度表所要描述的抽象对象。如,互联网电商在交易过程中涉及到的实体有:买家、卖家、订单、广告等等,当然还有一些在不同业务场景下衍生出来的一些业务抽象实体,如优惠券、活动、商圈等都可以作为维度实体。 实体的选择主要是结合业务流程,在需要建模的业务流程环节涉及到了哪些参与者,这些不同的参与者便是维度表描述的实体对象,维度表中的属性,就是用来区分不同实体的特性。

2.确定主维表

确定主维表,主要是识别出维度表的主要数据来源。通常,业务系统中也会将相同类型业务实体进行统一存储(即一张表),亦或是在大型企业有建设业务中台会提前做同类业务实体的数据融合(如,商品中心、用户中心等)。但在没有类似业务中台可以直接获取全量维度实体数据的情况下,就需要自行确定业务实体数据的来源,并做融合。一般情况会将常规主要业务流程中产生的业务系统数据做为主维度表,因为其一般是维度表的主要数据来源,并且数据准确、丰富。

3.确定辅维表

辅维表存在的目的有两方面。一方面是补全主维表在维度实体的数据;另一方面是为了寻找维度表所表示的业务实体的一些其他属性描述辅助表,这些辅维表用来丰富维度表的属性描述,增强维度表的表现性,同样也能扩展维度表的分析能力。

4.识别维度属性

维度表的维度属性一般可以分为相对稳定的“固化属性”和变动频繁“动态属性“。由于“固化属性”和“动态属性”的变更周期差异巨大,一般会在维度表的构建过程中结合具体的场景进行拆分,一方面是保证维度表能够高效的产出,另一方面也是为追溯历史数据提供合理的技术实现。

注意点:增加文字描述(枚举和中文对应关系);统一单位;统一标志值(0/1,Y/N)等。

关键结果

产出业务过程下的指标维度矩阵。

2.6 技术方案设计和评审

主要由数据RD完成技术方案设计,然后组织PM和RD进行技术方案评审,关键动作如下:

1.原则上遵循公司数仓建模规范或数据仓库工具箱相关规范。

2.编写技术方案,背景部分主要阐述业务痛点和目标;需求梳理主要是明确我们开发的指标维度矩阵;核心模型设计即数仓整体架构设计(服务规范)和表详情设计,表详情设计部分主要明确三个部分①表的中英文名称②指标名和口径③指标加工逻辑和相关数据调研;最后技术方案中明确上线事项和分工排期。

关键结果

产出技术方案,技术方案可以分如下几个模块①项目背景,附上相关PRD和说明文档链接,介绍清楚背景收益等;②问题和风险,对于存在的问题和风险(业务风险、技术风险)应当有对应的方案,如存在风险或问题情况下,仍按需求进行,需要明确相关责任人。③项目计划,明确相关责任人和具体开发排期。④需求调研,调研需求的指标、维度和相关接口。⑤详细设计,第一部分给出整体的设计架构图;第二部分接口设计详情;第三部分数仓模型设计;⑥技术选型,重点关注查询引擎,查询量级,QPS等;⑦上线事项:测试case、上线顺序、上线Check List、承诺产出时间,稳定性保障、降级策略(数据延迟、集群异常等兜底方案是否可以使用T+2的数据,前端进行banner文案提示“数据暂不可用”,对外提供接口方式,应当与数据使用方商定出现无数据情况的后端兜底或者前端兜底。数据内容本身的错误和BUG无法进行兜底,责任由数仓RD来进行负责并处理。)

2.7 数据交付&运营

对相关指标进行绑定录入,编写使用文档等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redhawk:GSC file与STA file

1.GSC file redhawk做lowpower分析时需要GSC&#xff08;Global Switching Configuration&#xff09;file指导block/instance/power domain的开关状态。 Syntax&#xff08;in GSR file&#xff09;: GSC_FILES <gsc_FilePathName> Syntax&#xff08;in GSC file&a…

django项目实战八(django+bootstrap实现增删改查)进阶验证码

目录 一、安装第三方 1、pillow 2、第三方字体文件 二、实现生成验证码 1、创建code.py 2、url 3、修改auth.py 4、修改account.py 5、修改login.html 三、验证码校验 1、验证码写入到session 2、修改form下的LoginForm类新增code字段 3、修改login.html 4、修改acco…

Jasperreort使用

准备工作 下载Jaspersoft Studio 下载地址 下载后一直下一步安装 Studio基本使用 新建项目 新建模板 具体制作教程可前往B站搜索视频教程 添加中文字体 如果不添加&#xff0c;后面打印出PDF的时候中文显示不出来 电脑自带的字体一般在C:\Windows\Fonts 但该目…

6——JVM调优工具详解及调优实战

Jmap、Jstack、Jinfo命令详解 Jmap 此命令可以用来查看内存信息&#xff0c;实例个数&#xff0c;以及占用内存大小 生成dump文件 把dump文件装入Jvisvalvm进行分析 Jstack Jstack加进程id查找死锁 Jstack找出占CPU最高的线程堆栈信息 top -p 进程号&#xff1a;显示进程…

文件系统概念

1.文件逻辑结构 (1)有结构文件和无结构文件 ①定长记录 ②可变长记录 (2)顺序文件 (3)索引文件 (4)索引顺序文件 (5)多级索引顺序文件 2.文件目录 (1)文件控制块 (2)目录结构 (3)索引节点 3.文件的物理结构 (1)文件块&#xff0c;磁盘块 (2)文件分配方式 ①连续分配 ②链接…

跑步戴哪种耳机好,最适合运动跑步的蓝牙耳机

经常跑步使用的耳机&#xff0c;还是要选择佩戴着舒适以及牢固的运动耳机最为合适&#xff0c;在运动当中会遇到耳机掉落或者长时间佩戴耳道感到难受的现象发生&#xff0c;那么什么蓝牙耳机是最适合运动当中佩戴呢&#xff1f;下面这些耳机分享希望能够帮助大家。 1、南卡Run…

人工智能基础部分13-LSTM网络:预测上证指数走势

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下LSTM网络&#xff0c;主要运用于解决序列问题。 一、LSTM网络简单介绍 LSTM又称为&#xff1a;长短期记忆网络&#xff0c;它是一种特殊的 RNN。LSTM网络主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题…

CATCTF wife原型链污染

CATCTF wife原型链污染 原型链污染原理&#xff1a;https://drun1baby.github.io/2022/12/29/JavaScript-%E5%8E%9F%E5%9E%8B%E9%93%BE%E6%B1%A1%E6%9F%93/ 如下代码&#xff0c;prototype是newClass类的一个属性。newClass 实例化的对象 newObj 的 .__proto__ 指向 newClass…

数字证书不仅有SSL证书,数字证书类型科普大全

数字证书不仅有SSL证书&#xff0c;数字证书类型科普大全证书不单单有SSL证书&#xff0c;还有SSL证书、代码签名证书以及客户端证书等。具体分类跟着陕西CA一起来看看吧。SSL证书&#xff1a;单域名SSL证书、多域名SSL证书、通配符SSL证书代码签名证书&#xff1a;单位代码签名…

管理系统权限分析以及白屏处理

菜单权限的业务分析 超级管理员&#xff1a;首页、权限模块、商品模块 不同角色能看到的菜单是不一样的。 如何实现菜单的权限 登录时向服务器发请求&#xff0c;服务器会把用户相应的菜单的权限信息&#xff0c;返回给前端&#xff0c;可以根据服务器返回的数据&#xff0…

sql复习(set运算符、高级子查询)

一、set运算符 union&#xff1a;得到两个查询结果的并集&#xff0c;并且⾃动去掉重复⾏。不会排序 union all&#xff1a;得到两个查询结果的并集&#xff0c;不会去掉重复⾏。也不会排序 intersect&#xff1a;得到两个查询结果的交集&#xff0c;并且按照结果集的第⼀个列进…

JavaSEI学习day10 基础班知识点回顾

一. 注释 注释是对代码的一种解释,在程序 的指定位置, 添加的一些说明性信息被注释掉的内容, 不会参与程序的编译和运行. 分类:单行: // 注释信息多行: /* 注释信息 */文档: /** 注释信息 */ 二. 关键字 Java语言中有特殊含义的单词&#xff0c;就是关键字。在后面的课程中…

基于Django的员工管理系统

目录 一、新建项目 二、创建app 三、设计表结构 四、在MySQL中生成表 五、静态文件管理 六、添加页面 七、模板的继承 一、新建项目 django-admin startproject 员工管理系统 二、创建app startapp app01 三、设计表结构 app01/migrations/models.py from django.db impo…

类与类之间的关系有哪几种?

文章目录程序设计要素1.可读性2.健壮性3.优化4.复用性5.可扩展性设计类的关系遵循的原则1、 高内聚低耦合2、面向对象开发中 “针对接口编程优于针对实现编程”&#xff0c;”组合优于继承” 的总体设计类与类之间的关系&#xff08;即事物关系&#xff09; A is-a B 泛化&…

模拟用户登录-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-3】 模拟用户登录 【案例介绍】 1.任务描述 在使用一些APP时&#xff0c;通常都需要填写用户名和密码。用户名和密码输入都正确才会登录成功&#xff0c;否则会提示用户名或密码错误。 本例要求编写一个程序&#xff0c;模拟用户登录。程序要求如下&#xff1a; 用…

Redis02: Redis基础命令

一、基础命令 先启动redis服务&#xff0c;使用redis-cli客户端连到redis数据库里面 1. 获取符合规则的键: keys 要点&#xff1a; &#xff08;1&#xff09;keys 后面可以指定正则表达式 &#xff08;2&#xff09;在生产环境下建议禁用keys命令&#xff0c;因为这个命令会查…

为什么要经常阅读和分析计算机SCI期刊论文? - 易智编译EaseEditing

训练阅读与分析期刊论文的能力&#xff0c;可以增加中长期的学术竞争力。 只要能够充分掌握阅读与分析期刊论文的技巧&#xff0c;就可以水到渠成地轻松进行「创新」的工作。 所以&#xff0c;只要深入掌握到阅读与分析期刊论文的技巧&#xff0c;就可以掌握到大学生不曾研习过…

koa中间件的实现原理

koa中间件的实现原理如何&#xff1f;先来看一个例子。koa的执行顺序是这样的&#xff1a;const middleware asyncfunction (ctx, next) {console.log(1)await next()console.log(6) }const middleware2 asyncfunction (ctx, next) {console.log(2)await next()console.log(5…

GCN项目实战1-SimGNN

文章目录SimGNN&#xff1a;快速图相似度计算的神经网络方法1. 数据2. 模型2.1 python文件功能介绍2.2 重要函数和类的实现SimGNN&#xff1a;快速图相似度计算的神经网络方法 原论文名称&#xff1a;SimGNN: A Neural Network Approach to Fast Graph Similarity Computation…

2023年,即时配送迎来黄金年,其他玩家该如何“弯道超车”?

我们知道&#xff0c;面对如此宏达的快递行业&#xff0c;它的市场一直被许多人所看好。尤其近几年&#xff0c;随着电商、物流的发展&#xff0c;各互联网公司纷纷跻身这一领域。现在市面上为大家所熟知的三通一达、极兔以及顺丰等等。 除此之外&#xff0c;在一些细分领域&a…