文章目录

  • 一、数据仓库架构
    • 1. 自顶向下
    • 2. 自底向上
  • 二、维度数据建模
  • 三、星型模型和雪花模型
    • 1. 星型模型
    • 2. 雪花模型

本篇文章主要介绍了数据仓库的整体架构、数仓中常用的维度数据建模方法以及星型模型和雪花模型的区别。

一、数据仓库架构

数据仓库是将不同来源的数据在统一的模式下组织起来的异构集合。构建数据仓库有两种方法:自顶向下和自底向上。

1. 自顶向下

自顶向下的架构如下图:

图中各主件的作用如下:

  1. External Sources
    外部源是不管收集的数据是何种类型的数据源。数据可以是结构化的、半结构化的和非结构化的。结构化的数据,比如:关系型数据库中的表等;半结构化的数据,比如:Json串、XML文件等;非结构化的数据,比如:图片、音频、视频等。

  2. Stage Area
    由于从外部数据源抽取的数据没有特定的格式,因此需要对这些数据进行处理,以将其加载到数据仓库中。为此,建议使用ETL工具:

    E(Extracted): 从外部数据源抽取数据。
    T(Transform): 将抽取的数据转换成标准格式。
    L(Load): 将标准格式的数据加载进数据仓库。

  3. Data-warehouse
    在自顶向下的方法中,数据仓库存储最原始的数据。

  4. Data Marts
    数据集市也是存储组件中的一部分。它存储由不同主题组织起来的数据。

  5. Data Mining
    数据挖掘就是对数据仓库中的大量数据进行分析处理。利用数据挖掘算法找出数据仓库中隐藏的数据价值。

自顶向下的方法是被数据仓库之父Bill Inmon定义的——数据仓库作为公司的中央仓库,而数据集市从完整的数据仓库创建而来。

  • 自顶向下优点
  1. 由于数据集市是从数据仓库创建而来,因此提供了数据集市的一致维度视图。
  2. 这种模型可以很好的应对业务数据的变化。大公司会更喜欢采用这种方法。
  3. 从数据仓库创建数据集市比较容易。
  • 自顶向下缺点
  1. 设计和维护的成本比较高。

2. 自底向上

自底向上架构如下图:

整个数据的流转过程:

  1. 首先,数据会从外部数据源被抽取过来。
  2. 数据经过ETL之后,不再进入数据仓库,而是被加载进数据集市。每个数据集市针对的是不同的业务主题,并且可以直接提供报表功能。
  3. 将数据集市整合进数据仓库。

自下而上的方法是Ralph Kimball(数据仓库和BI领域的权威专家)提出的——首先创建数据集市,并为分析提供单个业务视图,在创建完整的数据集市之后再创建数据仓库。

  • 自底向上优点
  1. 由于是先创建数据集市,所以会快速生成报表。
  2. 数据仓库可以根据数据集市进行扩展。
  3. 设计成本比较低。
  • 自底向上缺点
  1. 由于维度视图的局限性,造成这种方法没有对数据的一个全局把控。

二、维度数据建模

维度建模的概念是由Ralph Kimball提出的,是许多OLAP(Online Analytical Processing,联机分析处理)系统使用的数据模型。维度建模有两个比较常用的建模模型:星型模型雪花模型,模型由事实表维度表组成。

维度建模步骤如下图:
 

  1. Identifying the business objective
    第一步就是确定业务对象,比如,销售(Sales)、人力资源(HR)、促销(Marketing)等。业务对象的选择直接影响着之后所用数据的质量,是数据建模中非常重要的一步。
  2. Identifying Granularity
    确定要存储到表中的数据的粒度。
  3. Indentify Dimensions and ites Attributes
    维度用来对数据仓库中的事实数据进行分类。比如,数据维度可能会是时间中的年、月、日,也可能是地域中的省、市、区县等等。
  4. Indentifying the Fact
    确认事实表,比如,商品价格、尺寸等。
  5. Building of Schema
    构建模型,比较常用的模型有:星型模型和雪花模型。

三、星型模型和雪花模型

1. 星型模型

星型模型是数仓建模中较为常用的模型,它包含一个或多个事实表,以及连接到事实表上的维度表。星型模型相较于雪花模型在查询处理方面是更为高效的。

星型模型之所以被称为星型,是因为它的物理模型就像是一个恒星的形状,中心是一个事实表,事实表上连着维度表。如下图:

在上图中,SALES就是一个事实表,其他的都是维度表,并各自都有属于自己的属性。事实表中存储业务流程中的定量数据;维度表中存储事实数据的描述性特征。事实数据,比如图中的:销售价格、数量、重量等。

  • 星型模型优点
  1. 关联查询比较简单,没有过于复杂的关联关系。
  2. 由于一些维度表已经预先进行了合并,因此不需要过多的join操作,那么关联查询效率就会更高。
  • 星型模型缺点
  1. 数据并不像3NF那样规范化。
  2. 由于一些维度表已经预先进行了合并,就会造成数据的冗余存储,占用了更多的空间。

2. 雪花模型

雪花模型可以认为是星型模型的变体。雪花模型在星型模型的基础上,对维度表进行了更规范化的拆分,就会促使某些维度表拆分出更细分的维度表。看下图:

图中就把Employee表拆分成了Employee和Department两张维度表,Department维度表可以提供一个部门更详细的信息,比如名字和位置。还有也把Customer维度表拆分成了Customer和City两张维度表,City维度表有关于一个城市的详细信息,比如城市名、邮政编码、所属省和国家。

雪花模型和星型模型的主要区别在于,雪花模型的维度表是规范化存储的,减少了冗余。这样做的好处是易于维护和节省存储空间,缺点就是需要更多的连接来执行查询,性能较差。

通常情况下,不建议使用雪花模型,因为它会增加维度模型的复杂度,可理解性差,而且需要连接更多的表来满足查询,性能低。

最后总结一下雪花模型有哪些优缺点。

  • 雪花模型优点
  1. 提供了规范化的数据,数据完整性高。
  2. 由于数据时高度规范化的,因此占用的存储空间较小。
  • 雪花模型缺点
  1. 高度结构化的数据,在另一方面也增加了模型的复杂度。
  2. 规范化的数据,在查询的时候会有更多的join连接,就会导致较差的性能。

数据仓库——数据仓库架构、维度数据建模、雪花模型和星型模型相关推荐

  1. 数据仓库——维度数据建模实例

    在这篇文章中,你将会学到如何一步步地进行维度数据建模,你将看到如何在真实的场景中使用维度模型. 什么是维度数据建模 维度数据建模是在进行数仓设计时的一种数据建模方法.这种建模方法的主要目标是为了提高数 ...

  2. 数据仓库星型模型vs雪花模型

    一.概述 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织. 当所有维 ...

  3. 全方位解读星型模型,雪花模型及星座模型

    ​1背景 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型,雪花型模型及星座模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型,雪花型模型还是星座模型 ...

  4. OLAP+星型模型+雪花模型

    OLAP+星型模型+雪花模型 主键+外键 事实表+维度表 OLAP:联机分析技术( On-Line Analytical Processing) OLTP:On-Line Transaction Pr ...

  5. 三大数据模型:星型模型、雪花模型、星座模型

    星型模型 星型模型中只有一张事实表,以及0张或多张维表,事实表与维表通过主键外键相关联,维表之间不存在关联关系,当所有维表都关联到事实表时,整个图形非常像一种星星的结构,所以称之为"星型模型 ...

  6. FocusBI:租房分析星型模型

    微信公众号:FocusBI 关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言; 如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文 ...

  7. 数据仓库(3)数仓建模之星型模型与维度建模

      维度建模是一种将数据结构化的逻辑设计方法,也是一种广泛应用的数仓建模方式,它将客观世界划分为度量和上下文.度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称 ...

  8. 「数据仓库架构」数据建模:星型模式

    数据建模是现代数据工作流中的一个关键步骤,其目的是将原始数据组织成方便.高效的形式.如果一个可用的数据集易于访问,数据分析师和科学家将发现他们的工作更加容易.更快的分析和预测将导致更快的商业决策洞察力 ...

  9. 3000字长文为你解读数据仓库与复杂业务数据建模全流程

    近日,2022年个推TechDay"治数训练营"系列直播课第一期圆满举办.个推资深大数据研发工程师为大家深入浅出地介绍了数据仓库的前世今生以及数据建模的常用方法. 本文对" ...

最新文章

  1. 《C++应用程序性能优化::第五章动态内存管理》学习和理解
  2. store内部数据调用 与 view使用store数据
  3. NYOJ 63 小猴子下落
  4. iMeta宏基因组生物信息期刊-创刊背景和简介
  5. php期末作业经验,期末作业.php
  6. 常用的排序算法总结(一)
  7. 8Manage助力花安堂打造新品研发项目管理平台
  8. vsftp的简单搭建
  9. 闪迪内存卡软件测试,存储卡不稳定?我们用微波炉测试 结果震惊了!
  10. apollo学习之:如何测试canbus模块
  11. 全球及中国钢铁行业投资产量趋势及营销盈利模式研究报告2021版
  12. android锁屏是弹出窗口,Android锁屏状态下弹出activity
  13. SSL证书错误了怎么办?
  14. Hash表的初步认识
  15. win10鼠标右边光圈一直闪烁,原因是
  16. 全网最通俗易懂的 Self-Attention自注意力机制 讲解
  17. 华硕 ZenFone 国产新机盘点
  18. 【第五周】新蜂团体贡献分
  19. 口红游戏 插口红游戏 h5页面开发
  20. 深入理解Java异常机制

热门文章

  1. 使用Adobe Acrobat设置pdf的页码
  2. VMware虚拟机XP系统安装教程【图文教程】
  3. 带软开启功能的MOS管电源开关电路
  4. 3D打印的塑料汽车最高时速为50英里
  5. 电商平台零售数据分析
  6. 电脑PDF阅读器哪个好用?建议收藏这些阅读器
  7. spss分析qpcr数据_实时荧光定量PCR的三种数据分析方法比较.doc
  8. Codeforces 575C 状压+KM
  9. 【突发奇想 之 vector使用时性能测试】
  10. MCGS触摸屏的使用