DW及建模
发布日期:2022-02-14 23:02:47
浏览次数:28
分类:技术文章
本文共 1095 字,大约阅读时间需要 3 分钟。
DW的数据模型
- 范式建模
- RDB建模方法的三大范式设计
- 1NF:属性的原子性,不可再分(json字段可有下属数组的形式)
- 2NF:每个非主属性由整个主键函数决定,不能由主键的部分决定(基本信息–主键决定 与 衍生信息 主键不能决定)
- 3NF:每列都和主键列直接相关,而不是间接相关,其它字段间无依赖(业务表拆分为多维度关系表)
- EDW中3NF建模,基于一些其它的原因,并非完全3NF建模,甚至是反范式设计
- RDB建模方法的三大范式设计
- 雪花建模
- 维度建模中的一种
- 维度表可以拥有其他维度表的,虽然这种模型相比星型模型更规范一些
- 性能方面需要关联多层维度表,性能比星型要低
- 星型建模
- 以事实表为中心,所有的维度表直接连接在事实表上,像星星一样
- 数据集市维度建模中推荐的建模方法
- 特点
- 数据组织直观
- 执行效率高
- 事实星座模型
- 星型模型延伸
- 星座模型是基于多张事实表的,而且共享维度信息
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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月07日 22时17分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java SSM 项目实战 day07用户角色关联操作,添加角色,以及添加权限
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年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