数据仓库建模实例
发布日期:2021-06-29 01:24:02
浏览次数:2
分类:技术文章
本文共 4394 字,大约阅读时间需要 14 分钟。
问题导读: 1、为什么需要数据建模? 2、OLTP 和 OLAP 系统有什么区别? 3、数仓设计主要分哪几个步骤? 4、星型模型、雪花模型、星座模型如何理解?
一、为什么需要数据建模?
在开始今天的话题之前,我们不妨思考下,到底为什么需要进行数据建模?随着从IT时代到DT时代的跨越,数据开始出现爆发式的增长,这当中产生的价值也是不言而喻。如何将这些数据进行有序、有结构地分类组织存储,是我们所有数据从业者都要面临的一个挑战。如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置,而不是乱糟糟的堆砌在一起。大数据的数仓建模正是通过建模的方法,更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点,一般我们会从以下面四点考虑:- 性能:能够快速查询所需的数据,减少数据I/O的吞吐。
- 成本:减少不必要的数据冗余,实现计算结果的复用,降低大数据系统中的存储成本和计算成本。
- 效率:改善用使用数据的体验,提高使用效率。
- 质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台。
- 高层模型:一个高度抽象的模型,描述主要的主题以及主题间的关系,用于描述企业的业务总体概况。
- 中层模型:在高层模型的基础上,细化主题的数据项。
- 物理模型(底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台特点进行物理属性的设计,也可能做一些表的合并、分区的设计等。
- 选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前账户的余额;还有就是一系列相关业务事件组成的业务流程,具体需要我们分析的是某些事件发生的情况,还是当前状态,或是事件流转效率。
- 选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
- 识别维表。选择好粒度之后,就需要基于这个粒度来设计维表,包括维度属性,用于分析时进行分组和筛选。
- 选择事实。确定分析需要衡量的指标。
- 事务事实表:用于承载事务数据,任何类型的事件都可以被理解为一种事务,比如商家在交易过程中的常见订单、买家付款,物流过程中的揽货、发货、签收,退款中的申请退款。
- 周期快照事实表:快照事实表以预定的间隔采样状态度量,比如自然年至今或者历史至今的下单金额、支付金额、支付买家数、支付商品件数等等状态度量。
- 累计快照事实表:数据不断更新,选取多业务过程日期。用来记录具有时间跨度的业务处理过程的整个过程的信息,每个生命周期一行,通常这类事实表比较少见。
- 缓慢变化维度:例如会员表的手机号、地址、生日等属性。
- 退化维度 :订货单表的订单编号、物流表的物流编号等。
- 雪花维度:满足第三范式的维度关系结构。
- 非规范化扁平维度:商品维表众中产品、品牌、类目、品类等。
- 多层次维度:地区维度的省、市、区县,商品的类目层级。
- 角色维度:日期维度在物流中扮演发货日期、送货日期、收获日期等不同角色。
- 星型模型和雪花模型主要区别就是对维度表的拆分。
- 对于雪花模型,维度表的涉及更加规范,一般符合3NF,有效降低数据冗余,维度表之间不会相互关联。
- 星型模型,一般采用降维的操作,反规范化,不符合3NF,通过利用冗余来避免模型过于复杂,提高易用性和分析效率,效率相对较高。
- Hub - 中心表:是企业的核心业务实体,由实体 Key、数仓序列代理键、装载时间、数据来源组成,不包含非键值以外的业务数据属性本身。
- Link - 链接表:代表 Hub 之间的关系。这里与 ER 模型最大的区别是将关系作为一个独立的单元抽象,可以提升模型的扩展性。它可以直接描述 1:1、1:2和n:n的关系,而不需要做任何变更。它由 Hub的代理键、装载时间、数据来源组成。
- Satellite - 卫星表:数仓中数据的主要载体,包括对链接表、中心表的数据描述、数值度量等信息。
- Anchors :类似于 Data Vault 的 Hub ,代表业务实体,且只有主键。
- Attributes :功能类似于 Data Vault 的 Satellite,但是它更加规范化,将其全部 k-v 结构化, 一个表只有一个 Anchors 的属性描述。
- Ties :就是 Anchors 之间的关系,单独用表来描述,类似于 Data Vault 的 Link ,可以提升整体模型关系的扩展能力。
- Knots :代表那些可能会在 Anchors 中公用的属性的提炼,比如性别、状态等这种枚举类型且被公用的属性。
转载地址:https://blog.csdn.net/ytp552200ytp/article/details/117709406 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月09日 10时39分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
沟通交流碎碎念
2019-04-29
电信集成笔试题
2019-04-29
jmeter-性能测试8-性能测试基本过程及示例
2019-04-29
1.vue起步
2019-04-29
3.vue条件语句
2019-04-29
10.vue实战--form表单属性绑定
2019-04-29
11.vue实战--form表单字段验证提交验证
2019-04-29
12.vue实战--接口请求,组件使用,页面跳转配置
2019-04-29
打破职能之缺陷预防之路
2019-04-29
mac开启mysql,重置mysql密码,允许远程连接
2019-04-29
安装kibana
2019-04-29
linux安装nodejs
2019-04-29
tomcat部署vue,spring项目
2019-04-29
idea2020打包war包
2019-04-29
测试框架
2019-04-29
解决切换分支时,maven不自动下载依赖的问题
2019-04-29
java正则
2019-04-29
Python爬虫实战:批量下载网站图片
2019-04-29
pycharm的十个小技巧,让你写代码效率翻倍
2019-04-29
python数据可视化神器,我就服它
2019-04-29