数据仓库建模(二):建模流程
数据仓库建模(二):建模流程
- 说明
- kimball 维度建模
- 维度建模设计流程
说明
该系列的文章仅为记录以及《数据仓库工具箱(维度建模指南)》的读后心得和思考,如有异议,请留言
将某些事情以具体、有形的方式抽象成数据集展示出来是数仓建设的最终目的,因此数据模型一定要保持简单性的设计,如果从复杂的数据模型起步,最终将会导致模型过于复杂,从而导致查询性能低下。爱因斯坦曾经说过:“凡事应该尽量简单,直到不能再简单为止”。
– 《数据仓库工具箱(维度建模指南)》
kimball 维度建模
Ralph Kimball 是一位数仓建设领域的大师,《数据仓库工具箱(维度建模指南)》
这本书就是这位大师和另外一位大师 Margy Ross
创作的。
Kimball 所提出的这种维度建模理论,被大部分人接受并广泛使用,包括各个公司的一些建模方案都是基于这些理论实现的,虽然不知道 Kimball
这个名词。。。
该篇博客主要是对 Kimball 建模的流程做记录并分享自己的心得
维度建模设计流程
① 选择业务过程
业务过程是组织完成的操作类型活动,例如,获得订单、处理保险索赔、学生课程注册或每个月账单的快照等
获取事实一般是通过业务过程事件的建立或获取事实度量,并转换为事实表中的事实。业务过程的选择非常重要,因为业务过程定义了特定的设计目标以及对粒度、维度、事实的定义。每个业务过程对应企业数据仓库总线矩阵中的一行
② 声明粒度
粒度用于确定某一事实表中的行表示什么
在选择维度或事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致
在所有维度设计中强制实行一致性是保证 BI 应用性能和易用性的关键。在从给定的业务过程获取数据时,原子粒度是最低级别的粒度,一般是从原子级别粒度数据开始设计,因为原子粒度数据能够承受无法预期的用户查询。上卷汇总粒度对性能调整来说非常重要,但这样的粒度往往要猜测业务公共问题。针对不同的事实表粒度,要建立不同的物理表,在同一事实表中不要混用多种不同的粒度。
③ 确认维度
维度是围绕业务过程中的事件,按照不同的维度去描述事实
维度表有时被称为数据仓库的 “灵魂” ,因为维度表包含业务分析的如口和描述性标识
④ 确认事实
一个事实表行对应一个度量事件,并且事实表行必须和声明的粒度保持一致。例如,在零售业务中,一个销售产品的数量与其总销售额的事实中,不允许让员工的工资存在与该事实中,因为这时的粒度不允许
⑤ 拓展维度模型
维度模型对数据关系发生变化要有灵活的适应性。当发生以下情况时,我们只需要更改 SQL
的查询语句就可以完成我们的目标查询
1. 当事实与存在的事实表粒度一致时,我们可以在事实表中创建新的列
2. 可以在事实表中创建新的外键列,然后与维度表进行关联,前提是维度列与事实表的粒度一致
3. 可以在维度表中创建新的列来增加属性
4. 可以使事实表的粒度更原子化,方法是在维度表上增加属性,然后以更细的粒度重置事实表,小心保存事实表及维度表的列名
数据仓库建模(二):建模流程相关推荐
- 数据仓库建模方法/范式建模法/维度建模法/事实表/维度表/优缺点/建模流程/概念建模/逻辑建模/物理建模
常见的有 范式建模法.维度建模法.实体建模法等,每种方法从本质上将是从不同的角度看待业务中的问题,不管是从技术层面还是从业务层面,都代表了哲学上的一种世界观. 1 范式建模法(Third Normal ...
- 数据仓库电商建模_真实电商数据仓库全流程开发详解,资源教程下载
课程名称 Hadoop大数据视频教程-第一季:真实电商数据仓库全流程开发详解(共46讲),资源教程下载 课程目录 第一部分:数据仓库基础理论与技术圈 第一章:互联网电商大数据环境 第二章:商业智能与数 ...
- 数据仓库建设---数据建模
首先我们先查看三个问题:①什么是数据模型:②为什么需要数据模型:③如何创建数据模型: 一.什么是数据模型 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世 ...
- 漫谈数据仓库之维度建模
2019独角兽企业重金招聘Python工程师标准>>> 0x00 前言 下面的内容,是笔者在学习和工作中的一些总结,其中概念性的内容大多来自书中,实践性的内容大多来自自己的工作和个人 ...
- 数据建模_漫谈数据仓库之维度建模
点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...
- 【概念】数据仓库和数仓建模
数据仓库 数仓主要特征 面向主题:每个需求和表都属于一个主题,可以用主题来对数仓的表分门别类 集成性:将异构数据源,比如MySQL和服务器埋点日志,统一转换成结构化的hive表数据存储到ODS层 非易 ...
- ABAQUS 建模及分析流程(一)
ABAQUS 建模及分析流程(一)待续 用命令启动 ABAQUS 软件 建模和分析流程 1 创建部件(Part) 1.1 示例 1.1.1 创建地基部件 1.1.2 创建大坝部件 2 创建属性 3 装 ...
- 风控建模二:建模方案拟定
风控建模二:建模方案拟定 引言 一.是否需要分客群建模 二.全时段建模一定更好吗 三.进件vs规则过件vs放款件 四.怎么选训练集 五.还原真实好坏比例 引言 好坏标签定义完成并整理好数据集并不意味着 ...
- 次世代游戏建模制作全流程
首先,如果你想学习游戏建模,那么我建议你从3Dmax开始学起**,**熟悉软件后做做简单的道具,大概一到两个,武器什么的都是可以的. 然后开始场景,这个考虑的就比较多了,所以放在后面.大概自己练习两三 ...
- 数据仓库与数据集市建模
前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列中介绍过的ER建模和关系建模,还包括专门针对数据仓库的维度建模技术. 本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系 ...
最新文章
- DispatcherServlet之HandlerAdapter的handle
- 皮一皮:论一件艺术品的诞生...
- 【信息抽取】介绍一种端到端的关系抽取方法
- python观察日志(part19)--关于iPython中的In[]和Out[]
- cmd小游戏_使用pygame制作Flappy bird小游戏
- html css考试题选择题,html_JavaScript_css试题
- Cassandra数据读取机制
- android 人机界面设计规范,iPhone 人机界面设计规范(中英对照)
- 学术圈炸了!IEEE限制华为相关专家参与审稿:这操作毁尽三观
- HTTP Error: 413 Request Entity Too Large的解决
- 吴恩达《cs229-机器学习》:1、梯度下降法与一元线性回归
- 图文详解YUV420数据格式
- CSS背景图片自适应大小
- 【工具】解决Windows7影音制作的错误:C946001E
- 误删除文件怎么找回呢?
- 【DBSDFZOJ 4370】小宁的机器人(模拟)
- 往hive表中插入与导出数据方式load ,insert ,sqoop 等方式详解
- 爬取知乎神回复 | 上次笑死人,这次继续笑~
- [读书笔记] 代码整洁之道(一)
- 人工神经网络的算法原理,对人工神经网络的理解
热门文章
- 涪陵计算机二级学校,厉害了!涪陵这所原不起眼的民办职业学校成功逆袭,在全国都排得上号...
- 使用conda安装包
- PHP自定义字段设置,实例演示如何为Z-BlogPHP添加自定义字段
- 贝叶斯公式的对数似然函数_贝叶斯估计、最大似然估计、最大后验概率估计
- WinEdt 编辑技巧集合
- 在JSP页面,用人的18位身份证号显示其生日
- Edge正式版可以启用ClearType了,低分屏必开
- Android内容提供者ContentProvider总结
- 七种不同类型的游戏测试技术
- 全网最详细最齐全的序列化技术及深度解析与应用实战