数据仓库建模(二):建模流程

  • 说明
  • kimball 维度建模
  • 维度建模设计流程

说明

该系列的文章仅为记录以及《数据仓库工具箱(维度建模指南)》的读后心得和思考,如有异议,请留言

将某些事情以具体、有形的方式抽象成数据集展示出来是数仓建设的最终目的,因此数据模型一定要保持简单性的设计,如果从复杂的数据模型起步,最终将会导致模型过于复杂,从而导致查询性能低下。爱因斯坦曾经说过:“凡事应该尽量简单,直到不能再简单为止”。
– 《数据仓库工具箱(维度建模指南)》

kimball 维度建模

Ralph Kimball 是一位数仓建设领域的大师,《数据仓库工具箱(维度建模指南)》 这本书就是这位大师和另外一位大师 Margy Ross 创作的。

Kimball 所提出的这种维度建模理论,被大部分人接受并广泛使用,包括各个公司的一些建模方案都是基于这些理论实现的,虽然不知道 Kimball 这个名词。。。

该篇博客主要是对 Kimball 建模的流程做记录并分享自己的心得

维度建模设计流程

① 选择业务过程

业务过程是组织完成的操作类型活动,例如,获得订单、处理保险索赔、学生课程注册或每个月账单的快照等

获取事实一般是通过业务过程事件的建立或获取事实度量,并转换为事实表中的事实。业务过程的选择非常重要,因为业务过程定义了特定的设计目标以及对粒度、维度、事实的定义。每个业务过程对应企业数据仓库总线矩阵中的一行

② 声明粒度

粒度用于确定某一事实表中的行表示什么

在选择维度或事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致

在所有维度设计中强制实行一致性是保证 BI 应用性能和易用性的关键。在从给定的业务过程获取数据时,原子粒度是最低级别的粒度,一般是从原子级别粒度数据开始设计,因为原子粒度数据能够承受无法预期的用户查询。上卷汇总粒度对性能调整来说非常重要,但这样的粒度往往要猜测业务公共问题。针对不同的事实表粒度,要建立不同的物理表,在同一事实表中不要混用多种不同的粒度。

③ 确认维度

维度是围绕业务过程中的事件,按照不同的维度去描述事实

维度表有时被称为数据仓库的 “灵魂” ,因为维度表包含业务分析的如口和描述性标识

④ 确认事实

一个事实表行对应一个度量事件,并且事实表行必须和声明的粒度保持一致。例如,在零售业务中,一个销售产品的数量与其总销售额的事实中,不允许让员工的工资存在与该事实中,因为这时的粒度不允许

⑤ 拓展维度模型

维度模型对数据关系发生变化要有灵活的适应性。当发生以下情况时,我们只需要更改 SQL 的查询语句就可以完成我们的目标查询

1. 当事实与存在的事实表粒度一致时,我们可以在事实表中创建新的列
2. 可以在事实表中创建新的外键列,然后与维度表进行关联,前提是维度列与事实表的粒度一致
3. 可以在维度表中创建新的列来增加属性
4. 可以使事实表的粒度更原子化,方法是在维度表上增加属性,然后以更细的粒度重置事实表,小心保存事实表及维度表的列名

数据仓库建模(二):建模流程相关推荐

  1. 数据仓库建模方法/范式建模法/维度建模法/事实表/维度表/优缺点/建模流程/概念建模/逻辑建模/物理建模

    常见的有 范式建模法.维度建模法.实体建模法等,每种方法从本质上将是从不同的角度看待业务中的问题,不管是从技术层面还是从业务层面,都代表了哲学上的一种世界观. 1 范式建模法(Third Normal ...

  2. 数据仓库电商建模_真实电商数据仓库全流程开发详解,资源教程下载

    课程名称 Hadoop大数据视频教程-第一季:真实电商数据仓库全流程开发详解(共46讲),资源教程下载 课程目录 第一部分:数据仓库基础理论与技术圈 第一章:互联网电商大数据环境 第二章:商业智能与数 ...

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

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

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

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

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

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

  6. 【概念】数据仓库和数仓建模

    数据仓库 数仓主要特征 面向主题:每个需求和表都属于一个主题,可以用主题来对数仓的表分门别类 集成性:将异构数据源,比如MySQL和服务器埋点日志,统一转换成结构化的hive表数据存储到ODS层 非易 ...

  7. ABAQUS 建模及分析流程(一)

    ABAQUS 建模及分析流程(一)待续 用命令启动 ABAQUS 软件 建模和分析流程 1 创建部件(Part) 1.1 示例 1.1.1 创建地基部件 1.1.2 创建大坝部件 2 创建属性 3 装 ...

  8. 风控建模二:建模方案拟定

    风控建模二:建模方案拟定 引言 一.是否需要分客群建模 二.全时段建模一定更好吗 三.进件vs规则过件vs放款件 四.怎么选训练集 五.还原真实好坏比例 引言 好坏标签定义完成并整理好数据集并不意味着 ...

  9. 次世代游戏建模制作全流程

    首先,如果你想学习游戏建模,那么我建议你从3Dmax开始学起**,**熟悉软件后做做简单的道具,大概一到两个,武器什么的都是可以的. 然后开始场景,这个考虑的就比较多了,所以放在后面.大概自己练习两三 ...

  10. 数据仓库与数据集市建模

    前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列中介绍过的ER建模和关系建模,还包括专门针对数据仓库的维度建模技术. 本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系 ...

最新文章

  1. DispatcherServlet之HandlerAdapter的handle
  2. 皮一皮:论一件艺术品的诞生...
  3. 【信息抽取】介绍一种端到端的关系抽取方法
  4. python观察日志(part19)--关于iPython中的In[]和Out[]
  5. cmd小游戏_使用pygame制作Flappy bird小游戏
  6. html css考试题选择题,html_JavaScript_css试题
  7. Cassandra数据读取机制
  8. android 人机界面设计规范,iPhone 人机界面设计规范(中英对照)
  9. 学术圈炸了!IEEE限制华为相关专家参与审稿:这操作毁尽三观
  10. HTTP Error: 413 Request Entity Too Large的解决
  11. 吴恩达《cs229-机器学习》:1、梯度下降法与一元线性回归
  12. 图文详解YUV420数据格式
  13. CSS背景图片自适应大小
  14. 【工具】解决Windows7影音制作的错误:C946001E
  15. 误删除文件怎么找回呢?
  16. 【DBSDFZOJ 4370】小宁的机器人(模拟)
  17. 往hive表中插入与导出数据方式load ,insert ,sqoop 等方式详解
  18. 爬取知乎神回复 | 上次笑死人,这次继续笑~
  19. [读书笔记] 代码整洁之道(一)
  20. 人工神经网络的算法原理,对人工神经网络的理解

热门文章

  1. 涪陵计算机二级学校,厉害了!涪陵这所原不起眼的民办职业学校成功逆袭,在全国都排得上号...
  2. 使用conda安装包
  3. PHP自定义字段设置,实例演示如何为Z-BlogPHP添加自定义字段
  4. 贝叶斯公式的对数似然函数_贝叶斯估计、最大似然估计、最大后验概率估计
  5. WinEdt 编辑技巧集合
  6. 在JSP页面,用人的18位身份证号显示其生日
  7. Edge正式版可以启用ClearType了,低分屏必开
  8. Android内容提供者ContentProvider总结
  9. 七种不同类型的游戏测试技术
  10. 全网最详细最齐全的序列化技术及深度解析与应用实战