阿里巴巴大数据之路-大数据领域建模综述
阿里巴巴大数据之道-大数据领域建模综述
为什么要数据建模?
Linux 的创始人 Torvalds 有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据 结构和它们之间的关系。“
数据建模的好处
- 性能 :良好的数据模型能帮助我们快速查询所需要的数据,减少 数据的 110 吞吐。
- 成本 : 良好的数据模型能极大地减少不必要的数据冗余,也能实 现计算结果复用,极大地降低大数据系统中的存储和计算成本。
- 效率 :良好的数据模型能极大地改善用户使用数据的体验,提高 使用数据的效率。
- 质量 : 良好的数据模型能改善数据统计口径的不一致性,减少数 据计算错误的可能性。
OLTP 和 OLAP 建模区别
OLTP
- 主要数据操作是随机读写
- 主要采用满足 3NF 的实体关系模型存储数据
- 在事务处理中解决数据的冗余和一 致性问题
OLAP
- 主要数据操作是批量读写
- 事务处理中 的一致性不是 OLAP 所关注的
- 关注数据的整合,以及在一次性 的复杂大数据查询和处理中的性能
建模方法论
ER模型
简述
- 数据仓库之父 Bill lnmon 提出的建模方法是从全企业的高度设计一 个 3NF 模型,用实体关系( Entity Relationship, ER)模型描述企业业 务,在范式理论上符合 3NF。数据仓库中的 3NF 与 OLTP 系统中的 3NF 的区别在于,它是站在企业角度面向主题的抽象,而不是针对某个具体 业务流程的实体对象关系的抽象。
特点
- 需要全面了解企业业务和数据。
- 实施周期非常长。
- 对建模人员的能力要求非常高。
建模步骤
高层模型
- 一个高度抽象的模型,描述主要的主题以及主题间的 关系,用于描述企业的业务总体概况。
中层模型
- 在高层模型的基础上,细化主题的数据项。
物理模型(也叫底层模型)
- 在中层模型的基础上,考虑物理存 储,同时基于性能和平台特点进行物理属性的设计,也可能做一 些表的合并、分区的设计等。
维度模型
简述
- 维度模型是数据仓库领域的 Ralph Kimball 大师所倡导的,他的 The Data 阳rehouse 岛olkit-The Complete Guide to Dimensional Modeling 是 数据仓库工程领域最流行的数据仓库建模的经典。
特点
- 从分析决策的需求出发构建模型,为分析需求服务
- 具有较好的大规模复 杂查询的响应性能
- 其典型的代表是星形模型,以及在一些特殊场景下 使用的雪花模型
模型分类
- 雪花模型
- 星型模型
- 星座模型
建模步骤
选择需要进行分析决策的业务过程
- 业务过程可以是单个业务事 件,比如交易的支付、退款等;也可以是某个事件的状态,比如 当前的账户余额等;还可以是一系列相关业务事件组成的业务流 程,具体需要看我们分析的是某些事件发生情况,还是当前状态, 或是事件流转效率。
选择粒度
- 在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
识别维表
- 选择好粒度之后,就需要基于此粒度设计维表,包括 维度属性,用于分析时进行分组和筛选。
选择事实
- 确定分析需要衡量的指标。
Data Vault 模型
简述
- Data Vault 是 Dan Linstedt 发起创建的一种模型,它是 ER 模型的衍 生,其设计的出发点也是为了实现数据的整合,但不能直接用于数据分 析决策。
特点
- 可审计的基础数据层
- 数据的历史 性、可追溯性和原子
- 而不要求对数据进行过度的一致性处理和整合
- 基于主题概念将企业数据进行结构化组织
组成部分
Hub
- 是企业的核心业务实体,由实体 key、数据仓库序列代理 键、装载时间、数据来源组成。
Link
- 代表 Hub 之间的关系。这里与 ER 模型最大的区别是将关 系作为一个独立的单元抽象,可以提升模型的扩展性。它可以直 接描述 1 : 1 、 l :n 和 n:n 的关系,而不需要做任何变更。它由 Hub 的代理键、装载时间、数据来源组成。
Satellite
- 是 Hub 的详细描述内容, 一个 Hub 可以有多个 Satellite。 它由 Hub 的代理键、装载时间、来源类型、详细的 Hub 描述信 息组成。
模型实例
Anchor 模型
简介
- Anchor 对 Data Vault 模型做了进一步规范化处理, Lars. Ri:innback 的初衷是设计一个高度可扩展的模型,其核心思想是所有的扩展只是添 加而不是修改,因此将模型规范到 6NF,基本变成了 k-v 结构化模型。
组成部分
Anchors
- 类似于 Data Vault 的 Hub ,代表业务实体,且只有主键。
Attributes
- 功能类似于 Data Vault 的 Satellite ,但是它更加规范 化,将其全部 k-v 结构化, 一个表只有一个 Anchors 的属性描述。
Ties
- 就是 Anchors 之间的关系,单独用表来描述,类似于 Data Vault 的 Link,可以提升整体模型关系的扩展能力。
Knots
- 代表那些可能会在多个 Anchors 中公用的属性的提炼, 比如性别、状态等这种枚举类型且被公用的属性。
模型实例
综合实践
模型设计
ODS:操作数据层
- 存储所有基础数据,做简单的数据清洗
DWD:明细数据层
- 采用维度退化的方法,将维度退化到事实表中,减少事实表和维度表的关联,调高明细表的易用性
DWS:汇总数据层
- 采用更多的宽表化手段,构建公共指标数据层
ADS:应用数据层
- 存放数据产品个性化的统计指标数据,主要面向前端展现
DIM:维度表
- 存储所有维度表数据
读感:
阿里巴巴大数据之道-大数据领域建模综述,本章节主要简述了数仓建模的基本方法论,不设计到理论的实践。解答了为什么要数据建模?以及建模的方法论有哪些?
可以做个初步的数仓建模理论理解,目前大多选择维度建模为主+宽表输出建设。要想更好的理解每个模型的优劣和不同点,还需要多实践。
阿里巴巴大数据之路-大数据领域建模综述相关推荐
- 【大数据之路】数据管理篇 《三》存储和成本管理 【搬运小结】
文章目录 [大数据之路]数据管理篇 <三>存储和成本管理 1.1数据压缩 1.2存储治理项优化 1.3生命周期管理 1.3.1 生命周期管理策略 1.3.2 生命周期管理策略 1.4数据成 ...
- 阿里大数据之路:数据管理篇大总结
来源:大数据技术与架构 全文共 13000个字,建议阅读 20 分钟 第1章 元数据 1.1 元数据概述 1.1.1 元数据定义 元数据打通了源数据.数据仓库.数据应用,记录了数据从产生到消费的全过程 ...
- 大数据之路:数据同步
目录 1.数据同步基础 2.阿里数据仓库的同步方式 3.数据同步遇到的问题和解决方案 1.数据同步基础 大数据的数据同步主要包括从分布式业务系统同步进入数据仓库和数据从数据仓库同步进入数据应用和数据服 ...
- 大数据之路—— 离线数据开发
四.数据技术篇-- 离线数据开发 4.1 数据开发平台 4.1.1 统一计算平台@ 4.1.2 统一开发平台 4.2 任务调度 4.2.1 核心设计模型 4.2.2 任务状态机模型@ 4.2.3 工作 ...
- 《大数据之路:阿里巴巴大数据实践》-第2篇 数据模型篇 -第8章 大数据领域建模综述
<大数据之路:阿里巴巴大数据实践>系列丛书 第1章 总述 第1篇 数据技术篇 第2章 日志釆集 第3章 数据同步 第4章 离线数据开发 第5章 实时技术 第6章 数据服务 第 ...
- 《大数据之路:阿里巴巴大数据实践》-第3篇 数据管理篇 -第15章 数据质量
<大数据之路:阿里巴巴大数据实践>系列丛书 第1章 总述 第1篇 数据技术篇 第2章 日志釆集 第3章 数据同步 第4章 离线数据开发 第5章 实时技术 第6章 数据服务 第 ...
- 大数据之路读书笔记-09阿里巴巴数据整合及管理体系
大数据之路读书笔记-09阿里巴巴数据整合及管理体系 面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性, 直是 ...
- 阿里巴巴大数据之路——数据模型篇
阿里巴巴大数据之路--数据模型篇 一.概述 1.什么是数据模型? 数据模型就是数据的组织和存储方法.主要关注的是从业务.数据存取和使用角度合理存储数据. 2.典型数据仓库建模方法论 ER模型 纬度模型 ...
- 大数据之路:阿里巴巴大数据实践,附339页PPT下载
7份关于大数据的资料都整理好了,需要的自取,获取方式:转发+私信我回复:大数据 1.<大数据之路:阿里巴巴大数据实践> 2014年,马云提出,"人类正从IT时代走向DT时代&qu ...
- 品《阿里巴巴大数据实践-大数据之路》一书(上)
7月有人推荐阿里巴巴刚出的这本书<阿里巴巴大数据实践-大数据之路>,到亚马逊一看才是预售状态,拍下直到8月才拿到. 翻看目录一看,欢喜的很,正好出差两天就带在身边,由于在机场滞留超过12个 ...
最新文章
- php旋转数组找出最小的,LeetCode 153 寻找旋转排序数组中的最小值
- 根据IP地址查询其所属城市
- Leetcode--16. 最接近的三数之和
- (2环境架设)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
- 5分钟k线数据 存储_短线高效炒股——60分钟K线买卖法,抓住买卖时机,看完受益匪浅!...
- 如何将索引碎片数量降至最低
- 数字的眼光看世界(常见常量、数值大下)
- 看看别人后端API接口写得,那叫一个优雅!
- 2013年国赛-红外光通信装置的设计与制作(模拟传输方案)
- 基于python的异方差检验_异方差检验及解决方法
- win7计算机远程桌面连接,Win 7连向Win7系统远程桌面连接设置
- 基于stm32的车辆减速灯项目——MPU6050或ADXL345
- 微信公众号分享网页注意点
- CnOpenData中国行政区划shp数据
- [Python]Django模型(Model)
- golang采集网络流量等系统指标
- 外文翻译之 Removing Camera Shake from a Single Photograph
- Python之复制的cookie参数处理成规整的参数值
- 快速解决java端口占用
- DCMTK+VS2012编译简明教程