【大数据技术】大数据技术之数仓宽表和窄表的区别

【大数据数仓】宽表和窄表的区别

一、宽表
(1)宽表:从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合数据仓库三范式的模型设计规范,将大量不同范畴的字段放到一张表里,故随之带来的主要坏处就是数据的大量冗余,但也带来了好处,与之相对应的好处就是查询性能的提高与便捷,查询时不需要跨表只需在这张宽表里进行即可,不需要与许多维度表进行join操作,故节省并减轻了系统资源开销(网络+内存+算力等等),这在数据体量较大时尤为明显 。这种宽表的设计广泛应用于机器学习/数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。(总之,利用空间换时间,在大数据环境下便于训练迭代、减少表关联数量,修改少量数据时不需要管多张表)

(2)“宽表”特点:一个表就是一个class,每个字段就是一个filed,操作简单。但不便扩展(扩展时要考虑较多因素,如主键)。

二、窄表
(1)窄表:严格按照数据库设计三范式。尽量减少数据冗余,但是缺点是修改一个数据可能需要修改多张表。

(2)“窄表”特点:方便扩展,能适应各种复杂的数据结构(树形、继承等),无论有多少配置,都不用修改表结构。但代码逻辑可能需要包装一下,某张表需要变更时,只需改动它自己就行,无需考虑主键及与其他数据的融合等问题,可进行快速迭代更新 。

宽表 宽表:从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合数据仓库三范式的模型设计规范,将大量不同范畴的字段放到一张表里,故随之带来的主要坏处就是数据的大量冗余,但也带来了好处,与之相对应的好处就是查询性能的提高与便捷,查询时不需要跨表只需在这张宽表里进行即可,不需要与许多维度表进行join操作,故节省并减轻了系统资源开销(网络+内存+算力等等),这在数据体量较大时尤为明显 。这种宽表的设计广泛应用于机器学习/数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。(总之,利用空间换时间,在大数据环境下便于训练迭代、减少表关联数量,修改少量数据时不需要管多张表) 一个表就是一个class,每个字段就是一个filed,操作简单。但不便扩展(扩展时要考虑较多因素,如主键)
窄表 严格按照数据库设计三范式。尽量减少数据冗余,但是缺点是修改一个数据可能需要修改多张表 方便扩展,能适应各种复杂的数据结构(树形、继承等),无论有多少配置,都不用修改表结构。但代码逻辑可能需要包装一下,某张表需要变更时,只需改动它自己就行,无需考虑主键及与其他数据的融合等问题,可进行快速迭代更新

你可能感兴趣的:(大数据技术,数据挖掘,人工智能,数据仓库,大数据)