场景下理解维度表,事实表,中间表

今天详细介绍一下数据仓库中的关于表的一些知识点:


什么是数据仓库?

数据仓库是决策支持系统(dss)联机分析应用数据源的结构化数据环境。提数据仓库不得不提一下关系型数据库,关系型数据库主要是用来支撑即时操作,对数据库的性能和质量要求都比较高,通常设计操作型数据库的都要遵循3F范式的约束,具有ACID特性;而数据仓库的数据是来源于即时操作产生的数据,数据仓库的特征在于面向主题、集成性、稳定性和时变性,遵循CAP理论,但是只能满足其中两个,即CA或者CP或者AP。

注释:
ACID:
1. 原子性(Atomicity) :整个事务(就是Transaction)中的所有操作,要么全部完成,要么全部不完成;
2. 一致性(Consistency):事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
3. 隔离性(Isolation): 隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
4. 持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

CAP:

  1. 一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;
  2. 可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。
  3. 分区容忍性(Partition Tolerance): 在出现网络分区(比如断网)的情况下,分离的系统也能正常运行

什么是维度表?

维度表指的是分析角度,类似于业务系统的主数据表,比如“产品”、“用户”、“时间”等。

什么是事实表?

实事表类似于业务系统的交易数据表,比如“用户购买明细”、“用户开票明细”等。

那么什么是中间表呢?

简单来说,中间表是数据库中专门存放中间计算结果的数据表。

鉴于网上关于中间表的信息不算具体,中间表就多说一点。
中间表是如何出现的?

第一种情况,计算sql计算无法一步到位,需要经过复杂的设计,要经过几个过度才能得到想要的结果。
第二种情况,实时计算所需要时间过长。或者因为数据量大或者因为计算太复杂,比如某一时间点前一段时间计算好结果,当到达改时间点使用中间表顶上。
第三种情况,当数据源比较多(通常情况),需要多表混合计算整合,这时导入数据库形成中间表是必要的。

你可能感兴趣的:(大数据/云计算)