事实表和维度表是怎么造数据_数仓:维度表和事实表入门

一、数据仓库是干嘛的?

就是出报表数据给决策者做决策的。

任何一个报表都由二部分组成:维度和事实。

aae52b0e536583094f2f8282b054b2ae.png

通常关系型数据库是为了记录、修改和查询数据本身(增删改差),对数据本身所含有的业务含义并不关心。简单说是为了记录。
而数据仓库则是重点关注数据与数据之间的业务含义,如不同统计口径与分析方式下数值差的意义。简单说是为了分析。
那么为了保证分析结果的准确和有效,必须分解和细化分析口径,精确定位影响因素,维表和度量值就是定义分析角度和影响因素的一种方式。


二、维度表

维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的 “按..分析“ 就构成一个维度。

对于物体属性描述的表,例如商品信息表,城市信息表,时间维度表等。相关概念了解:

  1. 维度下钻:例子:如果我知道上海市的数据,但是我想查看各区的数据,维度级别变细,称为下钻,相反称为上卷。
  2. 退化维度:维度除了主键外无其他内容,例如订单号,发票号。
  3. 非规范化扁平维度:将多张范式表 合并成统一的扁平的非规范化的维度,能够实现维度建模的双重目标:简化与速度,比如将一张商品表,和一张商品分类信息表合并成一张表。
  4. 维度层次:比如 年月日, 国家 省份 城市 县区等。
  5. 维度表空值属性,当给定维度行没有被全部填充时,或者当存在属性没有被应用到所有维度行时,将产生空值维度属性。可以用描述性的字符串替代空值,例如Unknown等,应避免维度属性使用空值,因为不同的数据库系统在处理分组和约束时,针对空值的处理方法不一致,与事实表关联时也可能关联不上。
  6. 文档属性的标识与指示器, Magic 的缩写或数字的维度字段,应有对应的中文解释字段,比如city_id,city_name。
  7. 日期维度,能够对事实表,按照日期,节日等进行数据导航。

下面是两个常见的维度表结构:

产品维度表:Prod_id, Product_Name, Category, Color, Size, Price

时间维度表:TimeKey, Season, Year, Month, Date

三、事实表

而事实表是数据聚合后依据某个维度生成的结果表。它的结构示例如下:

销售事实表:Prod_id(引用产品维度表), TimeKey(引用时间维度表), SalesAmount(销售总量,以货币计), Unit(销售量)

四、特点

上面的这些表就是存在于数据仓库中的。从这里可以看出它有几个特点:

  1. 维度表的冗余很大,主要是因为维度一般不大(相对于事实表来说的),而维度表的冗余可以使事实表节省很多空间。
  2. 事实表一般都很大,如果以普通方式查询的话,得到结果一般发的时间都不是我们可以接受的。所以它一般要进行一些特殊处理。如SQL Server 2005就会对事实表进行如预生成处理等。
  3. 维度表的主键一般都取整型值的标志列类型,这样也是为了节省事实表的存储空间。

五、事实表和维度表的分界线

事实表是用来存储主题的主干内容的。

以日常的工作量为例,工作量可能具有如下属性:工作日期,人员,上班时长,加班时长,工作性质,是否外勤,工作内容,审核人。那么很容易看出上班时长,加班时长是主干,也就是工作量主题的基本内容。

工作日期,人员,工作性质,是否外勤,工作内容是否为主干信息呢?认真分析特征会发现,日期,人员,性质,是否外勤都是可以被分类的,例如日期有年-月-日的层次,人员也有上下级关系,外勤和正常上班也是两类上班考勤记录,而上班时长和加班时长则不具有此类意义。所以一般把能够分类的属性单独列出来,成为维度表,在事实表中维护事实与维度的引用关系。

在上述例子中,事实表可以设计成如下:WorkDate EmployeeID,WorkTypeID,Islegwork,Content;而时间,员工,工作类型,是否外勤则归为维度表。

总的说来,事实表的设计是以能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题内容为准则。事实表就是你要关注的内容; 维表就是你观察该事务的角度,是从哪个角度去观察这个内容的。例如,某地区商品的销量,是从地区这个角度观察商品销量的。事实表就是销量表,维表就是地区表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值