数据仓库六层架构及核心功能
·
数据仓库的六层架构是一个经典且经过实践检验的模型,它通过分层设计实现了数据从原始状态到可服务应用的清晰流转、质量控制和职责分离。以下是对这六个层级的详细解析。
数据仓库六层架构详解
| 层级 | 核心功能 | 数据特点与设计要点 |
|---|---|---|
| STAGE层 (贴源层/缓冲层) | 作为数据接入的临时缓冲区,直接从业务系统接入原始数据,屏蔽对业务系统的直接访问和干扰。 | 1. 结构与源一致:表结构和数据定义与业务系统保持完全一致。 2. 存储策略:可全量或增量接入,通常有数据老化机制,不长期保存。 3. 隔离性:数据不对外开放,仅用于后续清洗和转换的过渡。 |
| ODS层 (操作数据存储层) | 是数据仓库的基础数据层,存储经过清洗、格式统一、体现历史变化的长期保存数据,是后续所有加工的基石。 | 1. 数据质量:经过清洗,消除脏数据和不一致问题。 2. 数据粒度:与STAGE层保持一致,通常为最细粒度的事务数据。 3. 历史性:通过拉链表或快照等方式记录数据历史变化。 |
| DIM层 (维度层) | 存储整个数据仓库公共的维度数据,解决维度一致性和复用问题,是构建维度模型的核心。 | 1. 公用性:如日期、地区、产品、客户等维度表,被各层广泛引用。 2. 缓慢变化:需处理维度属性的缓慢变化(如客户地址变更)。 3. 一致性:确保不同主题和分析场景下,同一维度的定义和值一致。 |
| MDS层 (中间数据层/主题层) | 以业务主题域(如销售、客户、供应链)组织数据,通过关联和轻度汇总形成宽表,直接支持上层分析应用。 | 1. 主题驱动:数据按主题域组织,打破源系统界限。 2. 宽表模型:通过关联将多个实体数据整合成便于查询的宽表,但不做深度聚合。 3. 可老化:可根据数据热度实施老化策略,优化存储。 |
| ADS层 (应用数据层) | 直接面向具体业务线或部门的个性化数据需求,存储高度汇总、可直接服务应用的报表和指标数据。 | 1. 需求导向:按部门(如市场部、财务部)或业务线创建独立数据库或Schema。 2. 高度聚合:数据基于MDS层进一步汇总计算,生成指标、报表、标签等。 3. 服务出口:可直接导出到外部系统(如MySQL、Elasticsearch)供应用调用。 |
| ETL/元数据管理层 (支撑体系) | ETL调度系统管理各层间数据流转任务的依赖与定时执行;元数据管理系统管理表结构、血缘、存储位置等“数据的数据”。 | 1. 任务调度:保障数据从STAGE到ADS的管道有序、可靠运行。 2. 血缘与影响分析:追踪数据从来源到应用的完整链路,便于问题排查和变更管理。 3. 数据发现:提供数据地图,方便用户理解和查找数据资产。 |
架构设计中的两个关键问题
在实施上述六层架构时,必须重点关注“粒度”和“分区”这两个核心设计问题。
-
粒度
粒度决定了数据的细节程度。低粒度(细节数据)灵活性强但数据量大;高粒度(汇总数据)查询性能好但信息损失。常见的做法是采用双重粒度设计,即同时保存细节数据和轻度汇总数据,以平衡灵活性与性能。 -
分区
分区是将数据物理分散到不同单元的策略。合理的分区(如按时间分区)能极大提升数据管理的效率,具体好处包括:提升数据装载速度、优化查询性能(分区裁剪)、简化数据归档与删除、便于独立监控和存储管理。
应用场景与实例解析
以一个电商公司的用户行为分析场景为例,说明数据流经各层的过程:
- 数据接入与缓冲:用户在前端的点击、浏览日志(JSON格式)实时同步到STAGE层的原始日志表,不做任何处理。
- 数据标准化:日志数据被清洗(如过滤无效字段、解析JSON)、标准化后,存入ODS层的用户行为事实表,每个行为一条记录。
- 维度关联:在加工过程中,会关联DIM层的维度表,如将商品ID关联到商品维度表(包含类目、品牌等信息),将用户ID关联到用户维度表。
- 主题宽表构建:在MDS层,围绕“用户行为”主题,将ODS层的行为事实表与多个维度表进行关联,生成一张包含用户属性、商品属性、行为时间、行为类型等字段的宽表。
- 应用指标计算:在ADS层,针对“用户增长团队”的需求,基于MDS层的宽表,计算“每日新增用户数”、“用户活跃度分布”等指标,并存入专门的ADS表中,供BI报表直接读取。
- 全程管控:整个流程由ETL调度系统(如Airflow)编排任务依赖并定时执行。所有表的定义、血缘关系均由元数据管理系统管理,分析师可通过它快速找到“用户活跃度分布”指标是由哪张ADS表提供的,并追溯其来源。
这种分层架构确保了数据仓库的稳定性(STAGE层隔离源系统)、规范性(ODS和DIM层统一标准)、易用性(MDS和ADS层面向分析优化)和可管理性(支撑体系保障运维),是构建企业级数据平台的坚实蓝图。
参考来源
- 数据仓库架构设计的一点概念
- C#中的六层架构与三层架构:抽象工厂模式实例解析
- 从零开始搭建AI Agent:新手友好六层架构,避坑指南,收藏必备
- 收藏必备|AI大模型六层架构详解(小白/程序员入门必看)
- 剖析大数据领域数据架构的层次结构
- 基于MCGS与PLC的六层电梯嵌入式模拟仿真系统(含代码与梯形图)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)