数仓建模

数仓建模

  • 什么是事实表?如何理解事实表?
    • 介绍
      • 事实表,通常记录的是一次事实行为,比如一个鼠标点击动作,一个下单动作。类似于记录行为的流水表,它的数据是实时产生和动态变化的。
    • 作用
      • 保存的是某个主题的行为。比如上网主题、订单主题。  
    • 特点
      • 数据量相对较大,且是实时产生和动态变化的。
  • 什么是维度表?如何理解维度表?
    • 介绍
      • 维度表,是事实表的补充,是一次事实行为的描述信息(某人,某地,某时)。这类信息不会频繁变化,但又会重复出现。我们可以将这些信息拆分出来,形成维度表。
    • 作用
      • 辅助事实表中的数据,加以说明、补充的。
    • 特点
      • 数据量相对较小,且相对静态,不易发生变化。
  • 什么是粒度?什么是度量值?
    • 粒度
      • 某一维度某事实行为下统计数据的粗细程度,比如统计某人一次下单金额中的一次是细粒度,统计某人一天下单金额中的一天是粗力度。
    • 度量值
      • 某一维度某事实行为下统计数据产生的数值,比如统计某人一次下单金额中的金额数值就是度量值。
  • 什么是宽表?如何理解宽表?
    • 安瑞哥是码农【什么是宽表?如何理解宽表?】 介绍
      • 也是事实表,比普通表(事实表)来说字段更多。
    • 作用
      • 因为有很多的字段,意味着包含着很多的数据信息,很多的数据信息能提供更完整的业务价值。
    • 好处
      • 效率比普通表更快
        • 为什么?
          • 普通表考虑维度拆分和数据库范式等。
          • 对于同一个业务需求来说,宽表直接可以提供满足业务需求的所有维度。
          • 而普通表需要和各种维度信息join操作后才能达到目的,而join一定会触发shuffle,而shuffle会影响效率,让整个数据分析流程变的缓慢。
    • 坏处
      • 1)因为宽表把所有跟某个事件相关的维度都揉在了一起,所以会保存很多重复的变化缓慢的维度信息,浪费存储空间。
      • 2)宽表通常是为满足某个业务需求设计,若需求有变更就要重新设计一张宽表,导致宽表使用场景范围很窄,如果类似的需求很多,系统会出现大量的数据复用度很低的宽表。
        • 导致
          • 数仓建设缺少设计感,长此以往系统的开发效率变低,因为没有中间层的概念,就没有模块复用的这一说法。
          • 因为大家都只想着数据为最终的业务目标服务,就不会考虑数据建设和规范,陷入一种比较极端的开发状态中。
          • 数据仓库建模概念就是让数据的功能和属性拆分,目的是用最小的开发成本,来满足多变的业务需求。如果系统都用宽表实现的话,那么建模工作所带来的收益,自然就会被大大的削弱,让系统的数据存储变得十分臃肿。
    • 总结
      • 所以说宽表是一把双刃剑,它在带来数据处理效率提升的同时,也破坏了数据库建模的很多规范。
posted @ 2023-03-24 10:59  娜娜娜娜小姐姐  阅读(27)  评论(0编辑  收藏  举报