长沙商业网站建设,顺义专业建站公司,教育类网站设计,哪些项目适合开工作室面试中#xff0c;肯定有数仓同学被问到#xff1a;数据模型如何去评估、如何优化#xff0c;那今天就聊一聊这个话题。
基本概念
模型#xff1a;表达的是某一个主题、某一个业务过程#xff0c;赋值业务价值#xff0c;最终落地还是一个建表的过程
数仓模型#xf…面试中肯定有数仓同学被问到数据模型如何去评估、如何优化那今天就聊一聊这个话题。
基本概念
模型表达的是某一个主题、某一个业务过程赋值业务价值最终落地还是一个建表的过程
数仓模型表赋予业务含义简单来说还是表可以理解成圆和球的关系
算法模型输入数据集和样本集、训练超参输出一系列参数本质上就是数学公式
数据分析模型通过看待业务不同角度去分析业务数据本质上封装的是某个角度分析的策略
表一个数字字典的结构体比如字段A、B、C没有实际业务含义但是当表中字段是sku_idsku_name以及相关维度信息具备业务含义后就可以理解成一个sku的相关模型
ER模型对三范式要求较高强调的是实体关系对数据冗余不太包容。需要基于整个业务梳理出所有的实体之间关系这种方式好处就是没有数据冗余但是成本较高周期长
维度模型对数据冗余相对宽容基于事实和维度构建模型。基于需要分析的业务过程或者业务事实去划分事实和维度根据看待的不同角度去划分维度
模型评估标准
高内聚低耦合
在dwd层划划分主题域的过程中可能一些业务过程比较复杂层层抽离出实体对象到最细粒度的一个动作比如下单、支付等等这样做主要是建设一个细粒度模型降低业务过程之间的耦合度模型更加灵活 减少不同模型之间对相同业务的依赖尽量把这种细粒度的业务流程汇聚到一个模型中减少依赖。
核心模型和扩展模型分离
一些重要的数据作为核心模型产出典型的就是一些大宽表
一些不是很边缘的业务数据在不影响核心模型的情况下其实可以合并到核心模型保证核心模型不会太重不影响产出时效
公共逻辑下沉
出现相同逻辑的时候可以在dwd或者做个中间层收口万一口径发生变化只需要在最底层修改逻辑上层只需要回溯验证数据即可而不是说到处修改用到的地方
成本和性能平衡
成本宽表不能过大存储成本
性能产出时效性
提倡建设公共层减少逻辑的重复加工将数据武装到每个人都可以兼容装备
数据可回滚
确保一些经常变化的维度可以回滚比如当下游每天产出指标的时候突然今天的指标值和昨天的差异性很大这个时候我们就要去回滚昨天的数据看今天数据是否异常还是逻辑错误等等
规范
主要是一些数仓的研发规范如表命名规则dwd_部门_一级主题域_最小业务流程_业务流程缩写_全量/增量缩写数仓笔记语雀中详细记载
枚举值的一致性
优化主要分为两个方面合并和拆
合并
为什么合并可能存在相似的业务流程有一些小模型彼此之间还存在对相同业务过程的依赖
合并原则在不破坏核心模型的简洁性和产出时效方面可以进行合并减少对这些不是很边缘业务的关联
拆分
影响到核心模型的产出时效、维护难可读性差比如用户购物这个业务流程显然不可能把订单和商品的一些信息放在一起的