DW001 - 数据仓库理论知识
数据仓库概念
数据仓库(Data Warehouse,DW)是一个面向主题的、集成的、非易失的、反映历史变化的、用来支持企业管理决策的数据集合。
数据仓库特点:
- 面向主题的(Subject Oriented)
- 主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
- 数据仓库中的数据是按照一定的主题域进行组织。
- 不同类型的企业,主题集合往往不同。
- 集成(Integrated)
- 数据仓库中的数据是来源于多个数据源的集成
- 要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。
- 构建形式一致、语义一致的数据集合。
- 非易失(Non-Volatile)
- 数据一旦进入数据仓库,一般情况下会被长期保存。
- 数据仓库中保存的数据是一系列历史快照,一般不做更新、删除。
- 用户只能通过分析工具进行查询和分析。
- 反映历史变化(Time Variant)
- 数据仓库的数据是随时间而变化的,会定期接收新的集成数据,从而反映出最新的数据变化。
- 但稳定的数据是以只读格式保存,且不随时间改变。
数据仓库 VS 数据库
- 数据库是面向事务的设计,设计目的是为了捕获数据,一般存储在线交易数据,并且在设计时尽量避免冗余,常采用符合范式的规则来设计。
- 数据仓库是面向主题设计的,设计目的是为了分析数据,一般存储的是历史数据,但在设计时有意引入冗余,采用反范式的方式来设计。
数据库 | 数据仓库 | |
面向 | 事务 | 分析 |
数据类型 | 细节、业务 | 综合、清洗过的数据 |
数据特点 | 当前的、最新的 | 历史的、跨时间维护 |
目的 | 日常操作 | 长期信息需求、决策支持 |
设计模型 | 基于ER模型、面向应用 | 星型/雪花模型,面向主题 |
操作 | 读/写 | 大多为读 |
数据规模 | GB到TB | >=TB |
数据仓库基本架构
缓冲层 (数据接入层) |
贴源层 (ODS层) |
基础明细层 (DWD层) |
轻度汇总层/数据中间层 (DWM层) |
数据服务层 (DWS层) |
数据集市 (DM) |
- 缓冲层(数据接入层)
- 概念
- 业务系统与贴源层之间的临时缓冲区,用于临时接入业务系统的原始细节数据。
- 是否设立缓冲层,视情况而定。
- 细粒度:与业务系统保持一致的原始细节数据,不做任何处理。
- 作用
- 当贴源层需做简单清晰,且数据导入速度较快时,缓冲层用于临时性快速接收业务数据。
- 概念
- 贴源层(ODS层)
- 概念
- ODS:Operational Data Store,操作数据存储,一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持即时性、操作型、集成性的信息需求
- 业务系统和基础明细层之间的过渡区,用于鵆业务系统的当前原始细节数据
- 作用
- 在业务系统和数据仓库之间形成一个隔离层
- 转移一部分业务系统细节查询的功能
- 完成数据仓库中不能完成的一些功能
- 概念
- 基础明细层(DWD层)
- 概念
- DWD:Data Warehouse Detail
- 数据仓库中的中间层,从ODS层获取数据,按主题进行组织,经过清洗、校验、转换、合并等规范化处理,形成业务数据的完整视图
- 一般采用维度建模,以星型模型为主
- 作用
- 为数据分析(宏观趋势性、在线交互式分析)提供最完整的基础明细数据支撑。
- 概念
- 轻度汇总层/数据中间层(DWM层)
- 概念
- DWM:Data Warehouse Middle
- 面向业务分析需求,对基础明细层的细节数据进行轻度(细粒度)的聚合、汇总和统计。
- 一般由明细层按照一定的业务需求生成轻度汇总表
- 作用
- 对细粒度的基础汇总指标进行预计算,减轻后期数据分析的压力。
- 概念
- 数据服务层(DWS层)
- 概念
- DWS:Data Warehouse Service
- 针对企业级宏观主题,构建相关的多个主题域模型,多从基础明细/轻度汇总层中获取数据,按主题模型进行数据组织。
- 通常为宽表
- 作用
- 为业务分析应用、数据集市构建提供直接的数据支撑
- 概念
- 数据集市(DM)
- 概念
- DM:Data Mart
- 数据集市是面向单一业务主题域(如销售、财务等)、为特定业务部门构建的小规模数据集合。
- 数据集市通常是数据仓库的子集。
- 作用
- 数据源可以是数据仓库(从属型数据集市),也可以是业务系统(独立型数据集市)
- 用于在线交互式分析(秒级响应)
- 概念
数仓分层的目的
- 把复杂问题简单化。可以将一个复杂的任务分解成多个步骤来完成,每层只处理单一的步骤。
- 减少重复开发。规范数据分层,通过使用中间层数据,可以大大减少重复计算量,增加计算结果的复用性。
- 隔离原始数据。使真实数据与最终统计数据解耦。
- 用空间换时间。通过大量的预处理来提升应用系统的用户体验、分析效率。
数据集市概念
数据集市(Data Mart)是一个针对某个主题、某个部门或者某些特殊用户而进行分类的数据集合,也称为“小数据仓库”或“部门级的数据仓库”
特点:
- 满足特定部门或用户需求
- 针对特定主题
- 统一的高质量数据
- 数据仓库的子集
- 交互式分析、秒级返回
数据集市分类
独立型数据集市:自下而上开发
- 从数据集市入手,就某一个特定的主题,先做独立数据集市,当数据集市达到一定规模,再从各个数据集市进行数据的整合建立企业级的数据仓库
- 数据集市包含了能够从数据源获取的全部的明细数据
- 是为了支撑某个业务流程而建立的维表集合
- 数据集市是基于数据来源而非部门的视图
- 优点:搭建快、成本低、风险小
- 缺点:可能会导致信息孤岛的存在,不能以全局的视角去分析数据、可能会存在大量冗余数据
从属型数据集市:自上而下开发
- 从属型数据集市采用自上而下的开发方式。首先建立企业级的数据仓库,然后从企业级的数据仓库中为各个部门抽取必要的数据建立部门级的数据集市
- 数据仓库中保存了企业的颗粒化数据,可作为事实的唯一版本
- 优点
- 体系结构上更稳定
- 可以提高数据分析的质量,保证数据的一致性
- 缺点
- 实施周期长、难度大、风险高
数据集市 VS 数据仓库
对比项 | 数据仓库 | 数据集市 |
范围 | 企业级 | 部门级或业务线 |
主题 | 企业主题 | 部门或特殊的分析主题 |
数据源 | 遗留系统、事务系统、外部数据等多个数据源 | 数据仓库或事务系统的少量数据源 |
数据粒度 | 较细的粒度 | 较粗的粒度 |
数据结构 | 通常是规范化结构(3NF) | 星型模型、雪花模型或两者混合 |
历史数据 | 大量的历史数据 | 适度的历史数据 |
数据湖概念
Pentaho的CTO James Dixon在2010年提出了“Data Lake”的概念。数据“仓库”概念和数据湖的概念的重大区别是:数据仓库中的数据在进入仓库之前需要实现归类,以便于未来的分析。随着大数据技术的融合发展,数据湖的边界不断扩展,内涵也发生了变化。数据湖开始汇集各方面技术,逐步演进称为集多源异构数据统一储存、多范式计算分析及统一管理调用的大数据综合解决方案。它可以更加高效率低成本管理海量多源异构数据,打通数据孤岛,释放数据价值,助力新时代下各行企业的数字化转型。
— TO CONTINUED —
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南