在这篇文章中,你将会学到如何一步步地进行维度数据建模,你将看到如何在真实的场景中使用维度模型。

什么是维度数据建模

维度数据建模是在进行数仓设计时的一种数据建模方法。这种建模方法的主要目标是为了提高数据检索效率,对select查询操作进行了优化。维度数据建模最适合数仓星型模型和雪花模型。

数仓中的维度数据建模不同于ER建模(Entity-Relationship Model,关系-实体模型),ER建模的主要目标是通过减少数据的冗余来规范化数据, 而维度数据建模使得数据一旦存储在数仓中后,能被更容易地获取。维度模型是许多OLAP系统的底层数据模型。

维度模型是被传奇人物Ralph Kimball提出的,你可以读读他的这本书The Data Warehouse Toolkit

维度数据建模的步骤

接下来我们通过一个示例来了解维度数据建模的步骤。场景:您希望存储某个MedPlus商店每天销售多少片paracetamol 和 diclofenac 的信息。建模过程中,所有数据都归为两类:维度表和事实表。事实表中包含度量信息,维度表中包含限定度量的信息。

下面是数据仓库维度建模示例的步骤:

第一步:选择业务目标

在我们的例子中,业务目标就是存储单个商店每天paracetamol 和diclofenac 的销售数据。

第二步:确定粒度

粒度是表中存储的最低级别的信息。例如,如果表包含每日销售数据,则粒度为“每日”。

在我们的例子中,假设一个特定的MedPlus商店在特定的一天销售1000片paracetamol ,那么粒度是每天,而在特定的月份销售10000片,那么粒度是每月。

设定粒度信息是非常重要的,我们的例子采用的是“每日”的粒度。

第三步:确定维度和维度属性

在我们的例子中,可以确定三个维度:商店、药品(paracetamol 和diclofenac)和日期。下面是维度表的结构。
Medicine

SK NAME
1 Paracetamol
2 Diclofenac

Shop

SK NAME
1 shop1
2 shop2
3 shop3

Day

SK NAME
1 2019-01-01
2 2019-01-02
3 2019-01-03

第四步:确定事实表

事实表包含的是一些可度量的东西。例子中,药片的销售量就是一个度量,我们可以创建单独的事实表来存储这些度量。

例子中,粒度是每天销售的药片,我将Medicine、Shop和Day这三张表的SK列添加到下面的事实表中。

在这个例子中,我们创建了3个维表和1个事实表,维度表通过外键连接到事实表上,这个模型看起来像个星型,也被称为星型模型

维度建模的优势

  1. 提升了数据查询效率:通过冗余存储减少了关联查询
  2. 简化了业务报表逻辑
  3. 更容易理解:维度模型中的数据不是维度就是事实
  4. 可扩展性:维度模型可以更新新的维度。

维度数据建模工具

建议可以尝试被广泛使用的erwin数据模型工具。

数据仓库——维度数据建模实例相关推荐

  1. 数据仓库——数据仓库架构、维度数据建模、雪花模型和星型模型

    文章目录 一.数据仓库架构 1. 自顶向下 2. 自底向上 二.维度数据建模 三.星型模型和雪花模型 1. 星型模型 2. 雪花模型 本篇文章主要介绍了数据仓库的整体架构.数仓中常用的维度数据建模方法 ...

  2. 数据仓库建设---数据建模

    首先我们先查看三个问题:①什么是数据模型:②为什么需要数据模型:③如何创建数据模型: 一.什么是数据模型 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世 ...

  3. 对数据仓库进行数据建模_确定是否可以对您的数据进行建模

    对数据仓库进行数据建模 Some data sets are just not meant to have the geospatial representation that can be clus ...

  4. 数据仓库2_数据建模_维度建模

    目录 0 参考列表 1 维度建模 1.1 多维体系结构 1.1.1 总线矩阵(业务矩阵) 1.1.2 一致性维度 1.1.3 一致性事实 1.2 建模模式 1.2.1 星型模式 1.2.2 雪花模式 ...

  5. 维度数据建模的概念和术语

    维度建模关注的焦点是为终端用户展现数据,而通常来说,维度数据模型正是关注于让终端用户理解和访问数据更加简单.这种设计技术的特征就是主动地以更多开发人员的工作量来换取易于最终用户理解和使用的结果.根据维 ...

  6. [转]对数据仓库进行数据建模

    OLTP 与数据仓库--有何差异? 在日常生活中,我们要使用大量的应用程序来生成新的数据.变更数据.删除数据,当然在大多数的情况下我们还要查阅和分析数据.就来想象一个 收发 email 的简单应用程序 ...

  7. 浅谈数据仓库建设中的数据建模方法

    http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0803zhousb/ 所谓水无定势,兵无常法.不同的行业,有不同行 ...

  8. 数据仓库建设中的数据建模方法(转)

    简介: 本文的主要内容不是介绍现有的比较流行的主要行业的一些数据模型,而是将笔者在数据仓库建设项目中的一些经验,在这里分享给大家.希望帮助大家在数据仓库项目建设中总结出一套能够合乎目前业界规范的,满足 ...

  9. 数据建模_浅谈数据仓库建设中的数据建模方法

    所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数 ...

最新文章

  1. ecshop transport.js/run() error:undefined
  2. Vue2 学习笔记3
  3. IOS15打包静态库
  4. postgresql是如何求年龄的_Postgresql 通过出生日期获取年龄的操作
  5. 散列冲突与作为特征值的散列
  6. 前端文件表单/ajax上传实例代码
  7. linux c多线程进度条,Ubuntu 13.04,g++4.7,Pthread实现多线程模拟实现下载进度条
  8. visio教程仓库流程图_visio绘制流程图的五个小技巧[组图]
  9. FastStone Capture注册破解码
  10. 男生种草潮流社区edge(嘿市),会是男生的小红书吗?
  11. APP分发是什么意思!为什么需要用到呢
  12. x11-forwarding disabled解决办法
  13. python RF使用笔记
  14. 利用身份证号码算年龄 并排序
  15. navicat的基本使用技巧
  16. mysql登陆策略_教你mysql mssql服务器安全设置策略
  17. PS 父图层与子图层
  18. Python实现识别多个条码/二维码(二)
  19. 手机软件游戏安装方法(详细图文教程)-windows mobile系统PPC也通用
  20. html制作文字效果,使用background-clip属性制作文字特效

热门文章

  1. Xshell7连接VirtualBox虚拟机
  2. 局域网中的限制与突破方法
  3. 数据建模:三大范式和反范式
  4. msxml3.dll 错误 '800c0005'终极解决办法
  5. bzoj2150 部落战争
  6. 遍历列表python_Python-遍历列表中的每两个元素
  7. freeswitch的会议功能
  8. 2016年Q1印度以太网交换机市值达1.126亿美元
  9. iPhone相关产品型号汇总(iphone/ipad)
  10. 《Kafka权威指南》——问题1——onParitionsAssigned