Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据仓库(08)数仓事实表和维度表技术

数据仓库(08)数仓事实表和维度表技术

原创
作者头像
张飞的猪
发布于 2022-11-06 13:08:12
发布于 2022-11-06 13:08:12
1.1K0
举报
文章被收录于专栏:数据仓库数据仓库

所谓的事实表和维度表技术,指的就是如何和构造一张事实表和维度表,是的事实表和维度表,可以涵盖现在目前的需要和方便后续下游数据应用的开发。

事实表,就是一个事实的集合。事实来自业务过程的度量,基本上以数量值表示。事实表行对应一个事实,一个事实对应一个物理可以观察的事件,例如,再零售事件中,销售数量与总额是数据事实,与销售事件不相关的度量不可以放在同一个事实表里面,如员工的工资。

事实表是实际发生的度量,对应的,这些度量我们可以分为三中类型:可加、半可加、不可加。可加性度量可以按照与事实表关联的任意维度汇总。半可加度量可以对某些维度汇总,但不能对所有维度汇总。差额是常见的半可加事实,除了时间维度之外,它们可以跨越所有维度进行加法操作。不可加度量,比如比率,任何维度都不能直接相加。因此对于不可加度量,我们要尽可能的把不可加度量拆分为可加度量,例如比率,我们可以分别存储他们的分子和分母,使其转为可加度量。

对于事实表,还有一类值NULL,需要我们去校验和保证,对于事实表的度量,我们可以允许存在NULL,不过对于一些外键,则不能存在空值,否在会导致违反参照完整性的情况发生,我们可以赋予默认的代理键来表示未知或者NULL的情况。

参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。参照完整性又称引用完整性。

如果一个度量出现在多个事实表里面,我们还需要保证,多个事实表汇总到同一个维度的时候,度量的值相等,并且命名尽量相同,这就是一致性事实。一致性事实可以保证数据口径的一致和取数方便。如何保证数据事实的一致性呢?如何保证多张事实表相同字段相同?这里建议有两个,一是字段名称相同,二是开发完成的时候,可以对表数据的值比对,并且可以起一个数据校验的任务,定时校验比对,如果有问题就告警。

简单的,我们可以大概分为事务事实表,周期快照事实表,累计快照事实表,无事实的事实表。

  • 事务事实表:事务事实表的一行对应空间或者时间上某点的度量事件。即流水行数据。
  • 周期快照事实表:周期快照事实表中的每一行汇总了发生在某一标准周期,例如某一天的多个事实。即按某个维度轻度汇总的数据。
  • 累计快照事实表:累积快照事实表的行汇总了发生在过程开始和结束之间可预测步骤内的度量事件。也就是记录整一个业务过程,如下单,包含下单时间,支付时间,赔付时间等。
  • 无事实的事实表:有一些事件是没有事实的,事实包含多个度量,也就是部分事件没有度量,只有维度,例如某天学生参加的课程。
三种事实表的比较
三种事实表的比较

接下来说说维度表的一些要点,维度表包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境与事实表行完全对应。

维度表开发过程中有下面几个点。

  • 维度代理键,维度表中会包含一个列,表示唯一主键,该主键不是操作型系统的自然键,如果采用自然键,需要多个维度行表示,另外,维度的自然键可能由多个源系统建立,这些自然键可能会出现兼容性问题。所以这里可以对代理键做一些处理,具体可以看业务形态,如果源系统已经保证了唯一,直接应用也是没有问题的。
  • 退化维度,有时,维度除了主键外没有其他内容,例如订单表里面的发票维度只有发票号,没有其他的信息,那么我们可以将这个维度放入事实表里面,这个就是退化维度。
  • 一致性维度,当不同的维度表的属性具有相同列名和领域内容时,称维度具有一致性。利用一致性维度属性与每一个事实表关联,可将来自不同事实表的信息合并到同一个报表里面。

我们整理了维度表和事实表之后,我们需要形成一个总线矩阵。总线矩阵用于设计数据仓库架构的基本工具,矩阵的行表示业务过程,列代表维度。矩阵中的点表示维度与给定的业务过程是否存在关系,如下图。

数据仓库总线矩阵
数据仓库总线矩阵

形成这样的一个架构之后,我们的数据仓库的结构分层,和里面的数据表设计完成了,就可以进行同步和开发了。

需要数据仓库资料可以点击这个领取数据仓库(13)大数据数仓经典最值得阅读书籍推荐

参考资料:

  1. 数据仓库(01)什么是数据仓库,数仓有什么特点
  2. 数据仓库(02)数仓、大数据与传统数据库的区别
  3. 数据仓库(03)数仓建模之星型模型与维度建模
  4. 数据仓库(04)基于维度建模的数仓KimBall架构
  5. 数据仓库(05)数仓Kimball与Inmon架构的对比
  6. 数据仓库(06)数仓分层设计
  7. 数据仓库(07)数仓规范设计
  8. 数据仓库(08)数仓事实表和维度表技术
  9. 数据仓库(09)数仓缓慢变化维度数据的处理
  10. 数据仓库(10)数仓拉链表开发实例
  11. 数据仓库(11)什么是大数据治理,数据治理的范围是哪些
  12. 数据仓库(12)数据治理之数仓数据管理实践心得
  13. 数据仓库(13)大数据数仓经典最值得阅读书籍推荐

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据仓库:详解维度建模之事实表
一、事实表基础 二、事实表设计规则 三、事实表设计方法 四、有事实的事实表 五、无事实的事实表 六、聚集型事实表
五分钟学大数据
2022/12/29
3.1K0
数据仓库:详解维度建模之事实表
【万字长文】数仓最全知识点整理(建议收藏)
数据仓库 Data Warehouse,是为企业所决策制定过程,提供所有支持类型的数据集合。用于分析性报告和决策支持。数仓是一个面向主题、集成的、相对稳定、反映历史变化的数据集合,随着大数据技术的发展,其作用不再局限于决策分析、还可以为业务应用、审计、追踪溯源等多方面提供数据支撑,帮助企业完成数字化转型。
857技术社区
2022/05/17
15.5K0
【万字长文】数仓最全知识点整理(建议收藏)
数仓基础(一):数据仓库中常见的名词解释
作为一个大数据开发技术人,是不是经常被各种名词围绕,对其中很多概念认知模糊。有些词虽然只有一字之差,但是它们意思完全不同,这些名词对于理解和构建数据仓库至关重要。以下是一些常见的数据仓库名词及其解释,按照清晰的结构进行归纳
Lansonli
2024/10/05
3990
数仓基础(一):数据仓库中常见的名词解释
基于OneData的数据仓库建设
一、指导思想 二、数据调研 三、架构设计 四、指标体系搭建 五、模型设计 六、维度设计 七、事实表设计 八、其他规范
五分钟学大数据
2021/11/23
1.3K0
基于OneData的数据仓库建设
50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 上
我们在谈数仓之前,为了让大家有直观的认识,先来谈数仓架构,“架构”是什么?这个问题从来就没有一个准确的答案。这里我们引用一段话:在软件行业,一种被普遍接受的架构定义是指系统的一个或多个结构。结构中包括软件的构建(构建是指软件的设计与实现),构建的外部可以看到属性以及它们之间的相互关系。
五分钟学大数据
2021/12/09
12.2K0
50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 上
数据仓库&数据指标&数据治理体系搭建方法论
英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持目的而创建。
王知无-import_bigdata
2021/06/01
5.7K0
数据仓库&数据指标&数据治理体系搭建方法论
数据仓库的核心概念
数据仓库晨曦
2024/03/25
2380
数据仓库的核心概念
阿里数据仓库-数据模型建设方法总结(全)
来源:大数据与机器学习文摘  五分钟学大数据 本文约20000字,建议阅读25分钟 本文介绍了大数据领域建模的方法。 一、大数据领域建模综述 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面临的一个挑战。 数据模型强调从业务、数据存取和使用角度合理存储数据。 数据模型方法,以便在性能、成本、效率之间取得最佳平衡。 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本。 效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率。
数据派THU
2023/03/29
1.4K0
阿里数据仓库-数据模型建设方法总结(全)
数据仓库(07)数仓规范设计
规范设计在这里取《大数据之路:阿里巴巴大数据实践》中的定义,这里记录一下本人对这一块自己的理解。
张飞的猪
2022/10/12
5870
数仓建设中最常用模型--Kimball维度建模详解
先来介绍下此书,此书是基于作者 60 多年的实际业务环境而总结的经验及教训,为读者提供正式的维度设计和开发技术。面向数仓和BI设计人员,书中涉及到的内容非常广泛,围绕一系列的商业场景或案例研究进行组织。强烈建议买一本实体书研究,反复通读全书至少三遍以上,你的技术将会有质的飞跃。
五分钟学大数据
2021/01/12
4.4K0
数仓建设中最常用模型--Kimball维度建模详解
数据仓库架构
数据仓库的核心是展现层和提供优质的服务。ETL 及其规范、分层等所做的一切都是为了一个更清晰易用的展现层。
伊泽瑞尔
2022/06/01
2.1K0
数据仓库架构
数据仓库(基础篇)——基于维度建模思想
本文来源于A94大佬的关于数据仓库分享,如果感兴趣兴趣可以登录B站自行查看,在此给出链接地址:857数据交流技术峰会之数仓篇
不温卜火
2021/09/23
8440
数据仓库(基础篇)——基于维度建模思想
Greenplum 实时数据仓库实践(8)——事实表技术
上一篇里介绍了几种基本的维度表技术,并用示例演示了每种技术的实现过程。本篇说明多维数据仓库中常见的事实表技术。我们将讲述五种基本事实表扩展技术,分别是周期快照、累积快照、无事实的事实表、迟到的事实和累积度量。和讨论维度表一样,也会从概念开始认识这些技术,继而给出常见的使用场景,最后以销售订单数据仓库为例,给出实现代码和测试过程。
用户1148526
2022/04/13
1.7K0
Greenplum 实时数据仓库实践(8)——事实表技术
数据仓库(09)数仓缓慢变化维度数据的处理
数据仓库的重要特点之一是反映历史变化,所以如何处理维度的变化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化,与数据增长较为快速的事实表相比,维度变化相对缓慢。阴齿这个就叫做缓慢变化维。
张飞的猪
2022/11/10
6600
数据仓库(1)什么是数据仓库,数仓有什么特点
数据仓库,简称数仓,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。这里会介绍涉及的数仓数据开发技术,数仓的作用,数仓的特点等。
张飞的猪
2022/08/04
1.5K0
关于数仓建设及数据治理的超全概括
数据仓库之父 Bill Inmon对数据仓库做了定义——面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。从定义上来看,数据仓库的关键词为面向主题、集成、稳定、反映历史变化、支持管理决策,而这些关键词的实现就体现在分层架构内。
五分钟学大数据
2021/07/29
1.2K0
【Techo Day腾讯技术开放日】数据仓库总结
数据库(Database)是按照一定格式和数据结构在计算机保存数据的软件,属于物理层。
蓦然
2022/11/01
9660
数仓中指标-标签,维度-度量,自然键-代理键等常见的概念术语解析
作为一个数据人,是不是经常被各种名词围绕,是不是对其中很多概念认知模糊。有些词虽然只有一字之差,但是它们意思完全不同,今天我们就来了解下数仓建设及数据分析时常见的一些概念含义及它们之间的关系。
五分钟学大数据
2021/09/22
2.2K0
数据仓库系列之维度建模
上一篇文章我已经简单介绍了数据分析中为啥要建立数据仓库,从本周开始我们开始一起学习数据仓库。学习数据仓库,你一定会了解到两个人:数据仓库之父比尔·恩门(Bill Inmon)和数据仓库权威专家Ralph Kimball。Inmon和Kimball两种DW架构支撑了数据仓库以及商业智能近二十年的发展,其中Inmon主张自上而下的架构,不同的OLTP数据集中到面向主题、集成的、不易失的和时间变化的结构中,用于以后的分析;且数据可以通过下钻到最细层,或者上卷到汇总层;数据集市应该是数据仓库的子集;每个数据集市是针对独立部门特殊设计的。而Kimball正好与Inmon相反,Kimball架构是一种自下而上的架构,它认为数据仓库是一系列数据集市的集合。企业可以通过一系列维数相同的数据集市递增地构建数据仓库,通过使用一致的维度,能够共同看到不同数据集市中的信息,这表示它们拥有公共定义的元素。
黄昏前黎明后
2019/08/26
1.4K0
数据仓库(03)数仓建模之星型模型与维度建模
维度建模是一种将数据结构化的逻辑设计方法,也是一种广泛应用的数仓建模方式,它将客观世界划分为度量和上下文。度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称之为维度。它与实体-关系建模有很大的区别,实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
张飞的猪
2022/09/03
8140
推荐阅读
相关推荐
数据仓库:详解维度建模之事实表
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档