数仓怎么进行分层

数仓分层是怎么分的,学习这个感觉好抽象

1 个赞

数仓分层:用餐厅做饭来理解

把数仓想象成餐厅后厨,每一层都是做菜的一个环节。


一、四层结构

层级 餐厅类比 数仓作用 数据示例
ODS 菜市场买的菜 原始数据,原封不动 业务库同步来的订单表
DWD 洗好的菜 清洗干净、格式统一 订单表去重、日期格式统一
DWS 配好的菜 按主题轻度汇总 用户当日订单汇总
ADS 端上桌的菜 报表直接用的数据 日销售报表

二、为什么非要分层?

问题1:不分层会怎样?

  • 报表需求变了,要从最原始的数据重新算 → 像每次做菜都从买菜开始,累死

问题2:分层的好处

  • 复用:DWD层清洗好的数据,多个报表都能用 → 像洗好的菜,炒什么菜都能直接用
  • 清晰:每层职责明确,出问题好定位 → 菜坏了知道是买的坏还是洗的不干净
  • 效率:汇总层提前算好,报表直接取 → 像配菜提前备好,客人点单直接炒

三、举个具体例子

原始数据(ODS层)

订单表:order_20250101_001, 张三, 2025/1/1 10:30:00, 100元

清洗后(DWD层)

  • 去掉脏数据
  • 统一日期格式:2025-01-01
  • 关联用户ID

汇总后(DWS层)

张三当天订单总额:100元

报表用(ADS层)

日销售报表:1月1日总销售额 10000元

四、一句话总结

ODS = 买菜(原始)
DWD = 洗菜(清洗)
DWS = 配菜(汇总)
ADS = 上菜(报表)

每一层都为上一层服务,底层是原材料,上层是成品,中间层让复用变得可能。

2 个赞

very good