数仓建模的核心概念
-
事实表(Fact Table):
-
存储业务过程的度量值(如销售额、订单数量等)。
-
通常包含外键,用于关联维度表。
-
-
维度表(Dimension Table):
-
存储描述性信息(如时间、地点、产品等)。
-
用于对事实表中的数据进行分类和分析。
-
-
粒度(Granularity):
-
定义事实表中每一行数据的详细程度(如按天、按订单、按交易等)。
-
粒度越细,数据量越大,分析能力越强。
-
-
指标(Metrics):
-
业务分析中需要计算的数值(如销售额、利润率等)。
-
通常存储在事实表中。
-
数仓
即数据仓库, 做Data WareHouse,简称DW。
数据仓库是面向分析的集成化数据平台,分析的结果给企业提供决策支持
-
面向主题(Subject-Oriented):
围绕特定的主题或业务领域(如销售、客户、产品等)组织数据 -
集成性(Integrated):
从多个不同的数据源集成数据。 -
非易失性(Non-Volatile):
数据仓库中的数据通常是只读的,一旦数据被加载到数据仓库中,就不会被频繁修改或删除。 -
时变性(Time-Variant):
按时间顺序存储数据,能够反映历史变化。数仓是一个持续维护建设的东西。 站在时间的角度,数仓的数据成批次变化更新。一天一分析(T+1) 一周一分析(T+7)
数据库:面向业务划分数据 以业务流程为导向组织数据
数据仓库:面向主题划分数据 以分析需要为导向组织数据
数据仓库系统:数据从获取、存储到数据仓库、数据分析的所有部分
数据仓库系统
核心1: ETL
即数据的抽取, 转换, 装载
CRM: 客户关系管理系统
ERP:企业资源计划系统
Billing:计费系统
Supply Chain:供应链管理系统
Reporting:报告系统
Visualization:数据可视化工具
BI: 商业智能
核心2:数仓分层
将各种数据的处理流程进行规范化。
分3层是: 数据源层, 数据仓库层, 数据集市层
分为5层时,把数据仓库层细分为: 明细数据层, 基础数据层, 服务数据层
即: 数据源层, 明细数据层, 基础数据层, 服务数据层, 数据集市层

-
功能:ODS层是数据源层(也叫贴源层),主要用于存储从各个业务系统(如CRM、ERP等)抽取的原始数据。
-
特点:数据通常是近实时的,保留较短的周期,结构上与源系统基本一致。
-
用途:用于支持日常操作和简单的查询。
DW层(Data Warehouse Layer)
数据仓库层: 是核心的数据存储层,负责存储经过清洗、转换和集成的数据
DW层分为
1. DWD明细数据层(Detail Data Layer):
原始数据或经过初步清洗的详细数据
-
数据粒度最细,通常是事务级别的数据。
-
数据保留较完整的历史记录,支持细粒度的分析和回溯。
-
用途:
-
为上一层提供详细的原始数据。
-
支持对历史数据的深度分析和挖掘
-
2. DWB基础数据层(Base Data Layer):
存储经过进一步清洗、整合和建模的数据。
-
经过ETL处理,去除了冗余和不一致。
-
数据结构更加规范,通常按照主题或业务需求进行建模
-
数据粒度较明细层稍粗,但仍保留较高的细节。
-
用途:
-
为上一层提供一致、准确的基础数据。
-
支持跨业务线的数据整合和共享。
-
3. DWS服务数据层(Service Data Layer):
存储为特定业务场景或应用服务的数据。
-
特点:
-
数据经过进一步的汇总、聚合和优化,适合快速查询和分析。
-
数据粒度较粗,通常是按业务需求定制的汇总数据。
-
数据结构针对特定应用场景进行优化,支持高性能访问。
-
-
用途:
-
为前端应用(如报表、BI工具、数据服务)提供直接可用的数据。
-
支持实时查询、报表生成和业务决策。
-
DM(Data Mart)层:
-
功能:数据集市层,存储面向特定部门或业务线的数据。
-
特点:数据通常是DWD或DWS层数据的子集,针对特定需求进行优化。
-
用途:用于支持部门级的分析和决策。
核心3: 数仓建模
是设计数据仓库结构的过程
数仓建模的方法
星型模型
雪花模型
星座模型
数仓建模的步骤
-
需求分析:
-
了解业务需求,明确分析目标和数据范围。
-
确定需要分析的业务过程(如销售、库存、客户等)。
-
-
数据源分析:
-
确定数据来源(如业务系统、日志、外部数据等)。
-
分析数据的结构、质量和更新频率。
-
-
概念模型设计:
-
设计高层次的数据模型,确定事实表和维度表。
-
确定业务过程的度量值和维度属性。
-
-
逻辑模型设计:
-
细化概念模型,定义表结构、字段类型和关系。
-
选择适合的建模方法(如星型模型、雪花模型)。
-
-
物理模型设计:
-
根据逻辑模型设计具体的数据库表结构。
-
考虑性能优化(如分区、索引、存储格式等)。
-
-
ETL 设计:
-
设计数据抽取、转换和加载(ETL)流程。
-
确保数据从源系统到数据仓库的准确性和一致性。
-
-
测试与优化:
-
测试数据仓库的性能和数据质量。
-
根据测试结果优化模型和 ETL 流程。
-