Post

什么是数仓

什么是数仓

数仓和数据库

数据仓库简称数仓

Data Warehouse,DW或DWH

数仓的目的是构建面向分析的集成化数据环境,用于存储、整合和分析 大量历史数据 的系统,支持复杂的查询和数据分析,通常用于决策支持。

  • 进行OLAP分析
  • 整合多源数据
  • 高性能复杂查询、数据聚合
  • 反规范化

而数据库用于存储和管理操作数据,支持日常事务处理,如增删改查。

  • 处理OLTP事务
  • 单一数据来源
  • 高并发、低延迟、实时
  • 规范化(3NF)
概念分析
OLAP 联机分析处理一种面向 数据分析 的系统,主要用于支持复杂的查询和决策分析。
OLTP 联机事务处理一种面向 实时事务处理 的系统,主要用于支持日常业务操作,如增删改查(CRUD)

典型协作流程:

  1. 数据库存储原始业务数据
  2. 通过ETL(抽取、转换、加载)导入数仓
  3. 数仓提供分析能力

案例:电商平台

数据库:

  • 处理用户下单、支付、库存扣减等事务
  • 存储当前订单状态、用户账户余额等实时数据

数仓:

  • 整合订单数据、用户行为日志、广告投放数据
  • 分析用户购买偏好、商品销售趋势、广告ROI,生成报表供管理层决策

分层模型

ODS

Operaional Data Store,操作数据存储层

ODS是数仓的原始数据接入层,直接对接业务系统的数据源,存储未经处理的原始数据或轻度清洗的数据

示例:从 MySQL 业务库同步用户订单表到 ODS 层,表结构与源库一致。

DWD

Data Warehouse Detail,数据仓库明细层

DWD是数仓的核心明细数据层,对ODS层的数据进行清洗、整合和规范化,形成高质量、可复用的明细数据

示例: 将ODS 层的订单表与用户表关联,清洗后生成包含用户ID、订单金额、商品类目的规范化事实表。

ADS

Application Data Service,应用数据服务层

ADS是直接面向业务应用的数据服务层,基于DWD或DWS(数据汇总层)的数据,按业务需求进行聚合、统计或建模,输出可直接使用的数据集

示例:基于 DWD 层的订单明细数据,按商品类别和地区统计每日销售额,生成聚合宽表供BI展示。

数据粒度

数据粒度指的是数据的细化程度或详细级别,它决定了数据中包含的信息量和可分析的维度,决定了数据的最小单元是什么。

  • 粒度越细,数据越详细
  • 粒度越粗,数据越抽象

比如说表级、行级、指标级的粒度

  • 表级:以整张表为最小单元,关注表结构和元数据,而非具体数据内容
  • 行级:以单行记录为最小单元,保存每条业务数据的详细内容
  • 指标级:以预计算的统计指标为最小单元
分层数据粒度说明
ODS表级、行级表级:保留源系统的表结构
行级:直接同步源系统的原始行数据
DWD行级清洗后的明细数据,每条记录代表一个业务事件
ADS指标级按业务需求聚合的指标(如日常售额)或宽表(如用户行为+订单数据合并)
This post is licensed under CC BY 4.0 by the author.