整理业务库的库表字段和字段含义的时候,遇到了码表的概念,码表是什么,和维度表又是什么关系呢?
首先,码表没有明确的定义。
百度搜索码表,可以看到和数据处理相关的解释是:码表是 编码表(或代码表)的简称。
- 编码表:
是一种代码说明表格。 用来帮助用户明确无解释数据和字符 代码的含义。
例如:性别码表的值为男和女。类似于数据字典。
以性别代码表为例:
sex | value |
1 | 男 |
2 | 女 |
我想获得一个性别为男的值只需要设置sex.id=‘1‘就可以了。
以上就是关于码表的介绍。
我们不禁想到这和数据仓库的维度表定义类似。
- 维度表
简单的把维度表理解为对某类事务粒度的抽离及细化。
维度表中的取值,可以通过group by取出。
- 从另一个角度去区分事实表和维度表,
存放业务数据的是事实表。 从事实表中抽象提取出的和业务无关的表就是维度表。
数据仓库最常见的维度表是时间维度表
- 维度表的特点:
是抽象提取出的、和业务无关、很少变化的表。
- 那么维度表的作用,也不难总结:
可以非常有效的减少事实表的占用空间。 占用空间减小,在分析数据时,做表的扫描,效率也会大大提升。 对事实表中数据的取值做了规范。方便统计和查询。
- 维度表的管理
一般,某个字段可以抽象出有限个数的取值,都可以建立维度表。常见的维度有时间,地点,职业等等。
维度表在数据仓库中应该有单独的一层:dim 层(dimension)。
这里是我总结的一些概念,便于大家理解,如果想要深入研究,
可以参考下面的链接:
维度表的建设:
https://blog.net/selfsojourner/article/details/80478389
https://www.jianshu.com/p/292de1ae3e02?from=timeline&isappinstalled=0
时间维度表:
https://www.cnblogs.com/wuhuacong/archive/2010/05/19/1738199.html
https://wenku.baidu.com/view/0ef540155acfa1c7ab00cc20.html
援引一段总结:
每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务
所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,
以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,
而维度表包含事实记录的特性。
事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。
原文地址:https://www.cnblogs.com/drjava/p/10465814.html