DW及建模
发布日期:2022-02-14 23:02:47 浏览次数:28 分类:技术文章

本文共 1095 字,大约阅读时间需要 3 分钟。

DW的数据模型

  • 范式建模
    • RDB建模方法的三大范式设计
      • 1NF:属性的原子性,不可再分(json字段可有下属数组的形式)
      • 2NF:每个非主属性由整个主键函数决定,不能由主键的部分决定(基本信息–主键决定 与 衍生信息 主键不能决定)
      • 3NF:每列都和主键列直接相关,而不是间接相关,其它字段间无依赖(业务表拆分为多维度关系表)
    • EDW中3NF建模,基于一些其它的原因,并非完全3NF建模,甚至是反范式设计
  • 雪花建模
    • 维度建模中的一种
    • 维度表可以拥有其他维度表的,虽然这种模型相比星型模型更规范一些
    • 性能方面需要关联多层维度表,性能比星型要低
  • 星型建模
    • 以事实表为中心,所有的维度表直接连接在事实表上,像星星一样
    • 数据集市维度建模中推荐的建模方法
    • 特点
      • 数据组织直观
      • 执行效率高
  • 事实星座模型
    • 星型模型延伸
    • 星座模型是基于多张事实表的,而且共享维度信息

DW分层

  • SCR/ODS接口层
    • 数据接入层:通过工具实现统一采集、统一加载和统一调度
    • 建模方法:无,与对方模型完全一致
  • DWD细节数据层
    • 数据模型与ODS层一致,不做清晰转换处理、为支持数据重跑可额外增加数据业务日期字段、可按年月日进行分表、用增量ODS层数据和前一天DWD相关表进行merge处理
    • 建模方法:无,仅在原模型上增加日期字段
    • 服务领域: 为EDW提供各主题业务明细数据
  • DWB基础数据层
    • 这一层主要解决一些数据质量问题和数据的完整度问题
    • 建模方法:原则上为范式建模,但存在因为一些其他因素特意设计为非范式甚至反范式建模
  • DWS服务数据层
    • 基于DWB层数据按各个维度ID进行粗粒度汇总聚合
    • 建模方法:星型或雪花模型
    • 服务领域:为EDW提供各种统计汇总数据
  • DM数据集市层
    • 服务领域:数据挖掘,自定义查询,应用集市
    • 原则
      • 尽量减少数据访问时计算,优化检索
      • 维度建模,星型模型;事实拉宽,度量预先计算
    • 建模方法:星型或雪花模型
  • ST数据应用层
    • 服务领域:报表呈现。面向最终结果用户的业务指标、KPI,仪表盘、专题等。
    • 原则
      • 保持数据量小
      • 维度建模,星形模型
      • 增加数据业务日期字段,支持数据重跑
    • 维度建模
  • DIM维表层

维度建模

  • 维度建模以分析决策的需求为出发点构建模型,一般有较好的大规模复杂查询的响应性能,更直接面向业务,典型的代表是我们比较熟知的星形模型,以及在一些特殊场景下适用的雪花模型
  • 对比
    • 关系建模
      • 一定程度的范式建模,模型规范,数据冗余小
      • 需要对业务、数据及关系很熟悉,且业务不会出现很大很频繁的变动
    • 维度建模
      • 数据冗余
      • 专注于分析,快速交付
      • 适用于业务快速变化的情况(此时用ER建模风险较大,难度较高–模型变更等)

转载地址:https://blog.csdn.net/fish2009122/article/details/104991969 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Elasticsearch笔记
下一篇:非参数检验

发表评论

最新留言

不错!
[***.144.177.141]2024年04月07日 22时17分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Java SSM 项目实战 day07用户角色关联操作,添加角色,以及添加权限 2019-04-26
Java SSM 项目实战 day08 方法级别的权限操作 服务器端的权限控制(JSR-250注解)(支持表达式的注解)(@Secured)以及页面端的权限控制 2019-04-26
(精华)2020年6月25日 JavaScript高级篇 对象属性 2019-04-26
(精华)2020年6月25日 JavaScript高级篇 数据类型 2019-04-26
(精华)2020年6月25日 JavaScript高级篇 对象类型 2019-04-26
(精华)2020年6月25日 JavaScript高级篇 click事件(冒泡,捕获,委托) 2019-04-26
(精华)2020年7月4日 JavaScript高级篇 ES6(class类的继承) 2019-04-26
(精华)2020年7月5日 JavaScript高级篇 ES6(async和await) 2019-04-26
(精华)2020年7月5日 Node.js require和module 2019-04-26
(精华)2020年7月7日 Node.js http,https,tcp服务的创建 2019-04-26
(精华)2020年7月8日 Node.js connect的使用文件上传 2019-04-26
(精华)2020年7月8日 Node.js express(跨域处理) 2019-04-26
(精华)2020年7月12日 webpack 增加 babel⽀持 2019-04-26
(精华)2020年7月12日 webpack 常见插件的使用 2019-04-26
(精华)2020年7月12日 webpack 代码分割和多线程打包 2019-04-26
(精华)2020年7月12日 vue v-show和v-if的使用 2019-04-26
(精华)2020年7月12日 vue 事件参数$event 2019-04-26
(精华)2020年7月12日 vue 键盘事件 2019-04-26
(精华)2020年7月12日 vue filter过滤器的使用 2019-04-26
(精华)2020年7月12日 vue axio的使用 2019-04-26