所谓的事实表和维度表技术,指的就是如何和构造一张事实表和维度表,是的事实表和维度表,可以涵盖现在目前的需要和方便后续下游数据应用的开发。
事实表,就是一个事实的集合。事实来自业务过程的度量,基本上以数量值表示。事实表行对应一个事实,一个事实对应一个物理可以观察的事件,例如,再零售事件中,销售数量与总额是数据事实,与销售事件不相关的度量不可以放在同一个事实表里面,如员工的工资。
事实表是实际发生的度量,对应的,这些度量我们可以分为三中类型:可加、半可加、不可加。可加性度量可以按照与事实表关联的任意维度汇总。半可加度量可以对某些维度汇总,但不能对所有维度汇总。差额是常见的半可加事实,除了时间维度之外,它们可以跨越所有维度进行加法操作。不可加度量,比如比率,任何维度都不能直接相加。因此对于不可加度量,我们要尽可能的把不可加度量拆分为可加度量,例如比率,我们可以分别存储他们的分子和分母,使其转为可加度量。
对于事实表,还有一类值NULL,需要我们去校验和保证,对于事实表的度量,我们可以允许存在NULL,不过对于一些外键,则不能存在空值,否在会导致违反参照完整性的情况发生,我们可以赋予默认的代理键来表示未知或者NULL的情况。
参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。参照完整性又称引用完整性。
如果一个度量出现在多个事实表里面,我们还需要保证,多个事实表汇总到同一个维度的时候,度量的值相等,并且命名尽量相同,这就是一致性事实。一致性事实可以保证数据口径的一致和取数方便。如何保证数据事实的一致性呢?如何保证多张事实表相同字段相同?这里建议有两个,一是字段名称相同,二是开发完成的时候,可以对表数据的值比对,并且可以起一个数据校验的任务,定时校验比对,如果有问题就告警。
简单的,我们可以大概分为事务事实表,周期快照事实表,累计快照事实表,无事实的事实表。
接下来说说维度表的一些要点,维度表包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境与事实表行完全对应。
维度表开发过程中有下面几个点。
我们整理了维度表和事实表之后,我们需要形成一个总线矩阵。总线矩阵用于设计数据仓库架构的基本工具,矩阵的行表示业务过程,列代表维度。矩阵中的点表示维度与给定的业务过程是否存在关系,如下图。
形成这样的一个架构之后,我们的数据仓库的结构分层,和里面的数据表设计完成了,就可以进行同步和开发了。
需要数据仓库资料可以点击这个领取数据仓库(13)大数据数仓经典最值得阅读书籍推荐
参考资料:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。