数仓建模
- 什么是宽表?如何理解宽表?
- 安瑞哥是码农【什么是宽表?如何理解宽表?】 介绍
- 也是事实表,比普通表(事实表)来说字段更多。
- 作用
- 因为有很多的字段,意味着包含着很多的数据信息,很多的数据信息能提供更完整的业务价值。
- 好处
- 效率比普通表更快
- 为什么?
- 普通表考虑维度拆分和数据库范式等。
- 对于同一个业务需求来说,宽表直接可以提供满足业务需求的所有维度。
- 而普通表需要和各种维度信息join操作后才能达到目的,而join一定会触发shuffle,而shuffle会影响效率,让整个数据分析流程变的缓慢。
- 为什么?
- 效率比普通表更快
- 坏处
- 1)因为宽表把所有跟某个事件相关的维度都揉在了一起,所以会保存很多重复的变化缓慢的维度信息,浪费存储空间。
- 2)宽表通常是为满足某个业务需求设计,若需求有变更就要重新设计一张宽表,导致宽表使用场景范围很窄,如果类似的需求很多,系统会出现大量的数据复用度很低的宽表。
- 导致
- 数仓建设缺少设计感,长此以往系统的开发效率变低,因为没有中间层的概念,就没有模块复用的这一说法。
- 因为大家都只想着数据为最终的业务目标服务,就不会考虑数据建设和规范,陷入一种比较极端的开发状态中。
- 数据仓库建模概念就是让数据的功能和属性拆分,目的是用最小的开发成本,来满足多变的业务需求。如果系统都用宽表实现的话,那么建模工作所带来的收益,自然就会被大大的削弱,让系统的数据存储变得十分臃肿。
- 导致
- 总结
- 所以说宽表是一把双刃剑,它在带来数据处理效率提升的同时,也破坏了数据库建模的很多规范。
- 安瑞哥是码农【什么是宽表?如何理解宽表?】 介绍