数仓建模

发布时间 2023-03-24 11:05:31作者: 娜娜娜娜小姐姐

数仓建模

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