一、维度建模的基本概念

1.1维度建模的定义

维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法,数据集市可以理解为是一种小型的数据仓库。

1.2 维度表(dimension)

维度表示你要对数据进行分析时所用的一个量,比如,你要分析产品销售情况,你可以选择按照类别来进行分析,或者按照区域进行分析。这样的按照XX进行分析的就构成了一个维度。再比如“昨天下午我在星巴克话费200元喝了一杯卡布奇诺”,那么以消费为主题进行分析从这段消息中可以提取三个维度:时间维度(昨天下午)、地点维度(星巴克)、商品维度(卡布奇诺)。通常来说维度表信息比较固定,且数据量小。

1.3 事实表(fact_table)

表示对分析主题的度量。事实表包含了与各维度表相关联的外键,并调用JOIN方式与维度表关联。事实表的度量通常是数值型的,且记录数会不断增加,表规模迅速增长。比如上面消费的例子,他的消费事实表结构示例如下所示:

消费事实表:prod_id(引用商品维度表id)、timekey(引用时间维度表)、place_id(引用地点维度表)、unit(销售量)。

总的来说,在数据仓库中不需要严格按照规范化设计原则,因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。事实表的设计是以能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题内容为原则。

二、维度建模的三种方式

2.1 星型模型

星型模型(star schema)是最常用的维度建模方式。星型模型是以事实表为中心,所有的维度表都直接连接在事实表身上,像星星一样。

  1. 维度表只和事实表关联,维度表之间没有关联;
  2. 每个维度主键为单列,且该主键被放在事实表中,作为两边连接的外键。
  3. 以事实表为核心,维度表围绕核心呈星型分布。

2.2 雪花模型

雪花模型(snawflake schema)是对星型模式的扩展。雪花模式的维度表可以拥有其他维度表。虽然这种模型相比星型模型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维度表,性能也比星型模型要低,所以一般不是很常用。

2.3 星座模型

星座模型是星型模型延伸而来,星型模型是基于一张事实表,而星座模型是基于多张事实表的而且共享维度信息。

前面介绍的两种维度建模的方式是对应单事实表,但是在很多时候维度空间的事实表不止一个,而一个维度表也可能被多个事实表用到,在业务发展后期,绝大部分维度表建模都是采用星座模型。

三、模型命名规范

维度表命名遵循 dim_<dimension_name>的规则,其中dimension_name用来描述维度的内容。

维度一般是指 人员(who)、时间(when)、地点(where)、事件(what)来划分。

事实表的命名遵循fact_<fact_name> 的规则,其中fact_name用来描述事实表的内容。

事实表一般是以多少(how much)来划分的。

ETL自学之路-02(维度建模)相关推荐

  1. ETL自学之路-03(处理维度表)

    一.管理各种键 业务键:源系统中业务主键,用来标识唯一的一个业务实体. 维度表代理键: 用来标识维度表里面的一行. 数据仓库最佳实践表明,原则上,维度表应该使用自动生成的无意义的整型数值作为代理键. ...

  2. 企业级数据仓库:数据仓库概述;核心技术框架,数仓理论,数据通道Hive技术框架,HBase设计,系统调度,关系模式范式,ER图,维度建模,星型/雪花/星座模式,数据采集同步,业务数据埋点,数据仓库规范

    文章目录 第一章 数据仓库概述 1.1 数据仓库简介 1.1.2 什么是数据仓库? 1.1.3 OLTP 与 OLAP 1.2 数据仓库技术架构 1.3 课程目标 第二章 核心技术框架 2.1 数据仓 ...

  3. 浅谈数据仓库维度建模

    浅谈数据仓库维度建模流程 谈到Big Data就离不开数据仓库.数据集市等概念,而谈到数据仓库.数据集市,就又离不开数据仓库设计的方法,维度建模则是其中的典型.与维度建模相对立的则是范式建模,范式建模 ...

  4. 系列 | 漫谈数仓第二篇NO.2 『数据模型』(维度建模建模工具)

    点击上方"数据仓库与Python大数据",选择"置顶/星标" 本文导航 前言: model对于数仓是最核心的东西,数据模型是数据组织和存储方法,模型的好坏,决定 ...

  5. 大数据基础知识——数仓的搭建(维度建模)

    数据仓库 文章目录 数据仓库 数据仓库的介绍: 数据仓库的概念: OLTP和OLAP区别: 数据仓库的特点: 面向主题: 数据集成: 非易失: 时变: 数据仓库系统架构 系统结构图 源数据 ETL 数 ...

  6. 数据中台模型设计系列(一):维度建模初探

    1.与几个概念的关系 操作型业务系统对于这个概念大家都不陌生.企业业务赖以运转的交易系统就属于操作型业务系统.因此它是为了保障业务正常运转,能够更快的处理事务. 但是因为它是针对某一特定的意图(例如满 ...

  7. 漫谈数据仓库之维度建模

    2019独角兽企业重金招聘Python工程师标准>>> 0x00 前言 下面的内容,是笔者在学习和工作中的一些总结,其中概念性的内容大多来自书中,实践性的内容大多来自自己的工作和个人 ...

  8. 数据建模_漫谈数据仓库之维度建模

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...

  9. matdem矩阵维度必须一致_「数据仓库篇」Kimball维度建模方案

    一.文章概述 在开始维度建模之前,数据小组需要理解业务需求,以及作为基础的源数据的情况.通过与业务方沟通需要,数据小组找到业务方想要的关键指标.支持数据分析的目标.维度模型不应该由那些不懂业务需求的人 ...

最新文章

  1. Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器
  2. C#学习笔记(C#与C++的差异)001
  3. linux-IO之copy的实现
  4. 计算机游戏50关,YELLOW游戏全50关攻略
  5. 优秀的软件企业为何倒下?
  6. 谷歌tts android手机自带引擎,Android使用讯飞语记引擎实现中文TTS
  7. 【C语言】scanf()输入浮点型数据
  8. php图片上传报非法错误,老师,我在上传图片时,提示非法上传文件
  9. 如何在SQL Server中导入具有不同列数的平面文件
  10. HTML5下载属性简介
  11. DELPHI利WMI获得硬盘参数
  12. 基于FPGA的帧差法仿真实现
  13. 正则表达式应用(日期正则表达式)
  14. DBLink应用速成
  15. 洋桃开发板笔记(五 ) Flash闪存的使用
  16. 如何在地图上按地址搜索位置
  17. 创意撰写优化技巧通配符
  18. 做出正确选择 重设精彩人生
  19. 同源跨窗口通信:网易云音乐不同标签页打开同一页面,暂停原先标签页音频播放
  20. 60个必备NOIP模板 python算法模板

热门文章

  1. 网站服务器过载,服务器过载保护
  2. 新增免费根据商品条码查询商品名称API
  3. flink任务优化总结
  4. 利用Java进行身份证正反面信息识别
  5. arduino nano引脚号_ARDUINO 脚号的命名规则
  6. 谷歌浏览器崩溃之错误代码:RESULT_CODE_MISSING_DATA
  7. mysql多表查询分页面_mysql多表联合查询分点经验给大家
  8. 【读论文】基于深度学习的铁路道岔转辙机故障诊断(2INTRO)
  9. Farmer John 木瓜地 C++
  10. 元宇宙之XR(02)VR概念解读 分类说明