Difference between FactTable and DimensionalTable

Basics

事实表(Fact Table)又称主题表,其本质是记录交易的表,往往维度很大。

维度表(Dimension Table)又称维表,其本质是基础表,类似于事实表的外键,往往维度较少,冗余较大。

例如商品价格表(包含商品名、价格等)是维度表;售货表(包含商品名、顾客名、交易数量等)是事实表。 例如顾客信息表(用户昵称、用户ip等)是维度表;顾客交易表(包含商品名、交易数量等)是事实表。

为什么我们需要维度表?

事实表一般非常大(往往是宽表),不适合使用常规方法查询,因此需要将一些维度剥离出来作为维度表。维度表出现的目的就是为了使事实表能够减少冗余,提高存储效率。

维度表用于关联事实表(其本身可能有冗余信息,可以帮助事实表节省空间),用于数据检索。一个事实表都需要和一个或多个维度表相关联。维度表内的内容往往用于描述事实表中的数据,因此多为静态数据。

维度表和事实表的信息可以聚合在一起形成一个信息全面的表,称之为指标表,又称宽表。在数据中台(middle-end)中使用宽表,可以减轻业务系统压力,同时为前端的服务提供快速的数据查询(相当于把数据压力剥离出来放到独立的系统中)。

大数据中常提到的星形结构、雪花结构等本质就是针对不同的场景需求对表采取了不同程度的拆分用于提升存储或是查询效率。

Reference

https://blog.csdn.net/weixin_45366499/article/details/120706308 https://blog.csdn.net/qq_28666081/article/details/104686822