数据仓库模型评估的标准

面试中,肯定有数仓同学被问到:数据模型如何去评估、如何优化,那今天就聊一聊这个话题。

基本概念

模型:表达的是某一个主题、某一个业务过程,赋值业务价值,最终落地还是一个建表的过程

数仓模型:表赋予业务含义,简单来说还是表,可以理解成圆和球的关系

算法模型:输入数据集和样本集、训练超参,输出一系列参数,本质上就是数学公式

数据分析模型:通过看待业务不同角度去分析业务数据,本质上封装的是某个角度分析的策略

表:一个数字字典的结构体,比如:字段A、B、C没有实际业务含义,但是当表中字段是sku_id,sku_name以及相关维度信息,具备业务含义后就可以理解成一个sku的相关模型

ER模型:对三范式要求较高,强调的是实体关系,对数据冗余不太包容。需要基于整个业务梳理出所有的实体之间关系,这种方式好处就是没有数据冗余,但是成本较高,周期长

维度模型:对数据冗余相对宽容,基于事实和维度构建模型。基于需要分析的业务过程或者业务事实去划分事实和维度,根据看待的不同角度去划分维度

模型评估标准

高内聚,低耦合

在dwd层划划分主题域的过程中,可能一些业务过程比较复杂,层层抽离出实体对象到最细粒度的一个动作,比如:下单、支付等等,这样做主要是建设一个细粒度模型,降低业务过程之间的耦合度,模型更加灵活 ,减少不同模型之间对相同业务的依赖,尽量把这种细粒度的业务流程汇聚到一个模型中,减少依赖。

核心模型和扩展模型分离

一些重要的数据作为核心模型产出(典型的就是一些大宽表)

一些不是很边缘的业务数据在不影响核心模型的情况下其实可以合并到核心模型,保证核心模型不会太重,不影响产出时效

公共逻辑下沉

出现相同逻辑的时候可以在dwd或者做个中间层收口,万一口径发生变化,只需要在最底层修改逻辑,上层只需要回溯验证数据即可,而不是说到处修改用到的地方

成本和性能平衡

成本:宽表不能过大,存储成本

性能:产出时效性

提倡建设公共层,减少逻辑的重复加工(将数据武装到每个人都可以兼容装备)

数据可回滚

确保一些经常变化的维度可以回滚,比如:当下游每天产出指标的时候,突然今天的指标值和昨天的差异性很大,这个时候我们就要去回滚昨天的数据,看今天数据是否异常还是逻辑错误等等

规范

主要是一些数仓的研发规范,如表命名规则:dwd_部门_一级主题域_最小业务流程_业务流程缩写_全量/增量缩写(数仓笔记语雀中详细记载)

枚举值的一致性

优化:主要分为两个方面合并和拆

合并

为什么合并:可能存在相似的业务流程,有一些小模型,彼此之间还存在对相同业务过程的依赖

合并原则:在不破坏核心模型的简洁性和产出时效方面,可以进行合并,减少对这些不是很边缘业务的关联

拆分

影响到核心模型的产出时效、维护难,可读性差,比如:用户购物这个业务流程,显然不可能把订单和商品的一些信息放在一起的

相关推荐
千桐科技4 小时前
数据中台 ETL 编排实践:基于 qData 开源版实现数据接入、转换与调度执行
数据仓库·开源·etl
XLYcmy12 小时前
AI 时代,MOM(制造运营管理系统)该如何演进? 上
ai·llm·agent·模型·mom·harness·工业系统
西木莉7 天前
数据仓库概述
数据仓库
魔士于安7 天前
unity 丑陋哥布林 哥布林有humannoid 动画没 带动画
unity·游戏引擎·材质·贴图·模型
舒克·堂吉7 天前
【理解模型的10个维度和主流模型10维度评价表】
模型
Francek Chen8 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Moshow郑锴8 天前
从“水库”到“直饮水站”:重新理解 Data Mart 与 Data Lake、Data Lakehouse、Data Warehouse 的区别
数据仓库·data·湖仓一体
躺柒9 天前
读数据架构知识体系指南01关系数据仓库(上)
数据仓库·架构·数据分析·spark·数据湖·关系数据库·企业数据仓库
tianhuo00311 天前
从MySQL到Apache Doris:生鲜供应链数仓的ETL流水线与SARIMA需求预测全实
数据仓库·数据中台·零售行业供应链数字化
SendTomo11 天前
.ico透明图标在线生成下载平台深度解析
大数据·数据结构·数据库·数据仓库·个人开发