大数据必知必会系列——数仓分层架构及三层架构流程[新星计划]

本文探讨了数据仓库的3层结构(ODS、DW和DA),介绍了京东的分层模式,强调了数据分层在清晰结构、减少重复开发、统一口径和问题简化等方面的优势。涵盖了数据来源、典型架构和电商日志数据处理案例,以及适用的计算引擎和存储系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

大家好,我是ChinaManor,直译过来就是中国码农的意思,俺希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,一个平凡而不平庸的人。
学习大数据差不多一年了,笔者最近在整理大数据学习的笔记资料,这个系列是整理的一些大数据必知必会的知识。

在这里插入图片描述

数据仓库典型分层结构:3层结构【ODS层、DW层和DA层】

  • 1)、ODS层数据:原始数据,往往来源于业务系统产生的数据,比如RDBMS表数据、日志文件数据或爬虫获取数据及第三方购买的数据等
  • 2)、DW层:数据仓库层,数据来源ODS成数据,整合拉宽和分析数据
  • 3)、DA层:数据应用层,数据来源DW层数据分析处理,按照需要业务分析

在这里插入图片描述

有时,将业务数据中维度数据,单独放到一层:DIM层(维度层),存储都是维度表的数据。

在这里插入图片描述
主题指标开发,按照数据仓库分层结构进行存储数据,分为典型数仓三层架构:ODS 层、DW层和APP层更加有效的数据组织和管理,使得数据体系更加有序

在这里插入图片描述

在这里插入图片描述

数据分层的好处:

1.清晰数据结构,每一个数据分层都有它的作用域和职责,在使用表的时候能更方便的定位和理解
2.减少重复开发,规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
3.统一数据口径,通过数据分层,提供统一的数据出口,统一对外输出的数据口径。
4.复杂问题简单化,将一个复杂的任务分解成多个步骤完成,每一层解决特定的问题。

通用的数据分层设计:

  • ODS:存放原始数据
  • DW:存放数仓中间层数据
  • APP:面向业务定制的应用数据

在这里插入图片描述
电商网站的数据体系设计,只关注用户访问日志这部分数据:

在这里插入图片描述
各层会用到的计算引擎和存储系统:

在这里插入图片描述

京东的数据仓库分层模式,是根据标准的模型演化而来。

数据仓库分层:

BDM:缓冲数据,源数据的直接映像,缓冲:Buffer
FDM:基础数据层,数据拉链处理、分区处理,基础:Foundation
GDM:通用聚合,通用:Generic
ADM:高度聚合,聚合:Aggregation,应用层:Application

总结

在这里插入图片描述

以上便是数据仓库的基础概念,愿你读过之后有自己的收获,如果有收获不妨关注一下~
数仓推荐书目:数据仓库工具箱(第3版) (Kimball著)

在这里插入图片描述
在这里插入图片描述

<think>好的,我现在需要处理用户关于分层架构的问题。首先,用户想了解库的分层架构及各的作用,还提到了据建模和ETL设计。我需要结合提供的引用内容来组织回答。 首先,我需要回忆库的基本分结构。根据引用[1]和[2],常见的有ODS、DWD、DWM、DWS等。引用[3]提到STG作为业务系统和库的隔离。那么,可能的分包括STG、ODS、DWD、DWM、DWS等。 接下来,需要明确每一的作用。例如,STG是临时存储原始据,ODS存储ETL后的原始据,DWD是明细,DWM是中间汇总,DWS是服务。引用[1]详细说明了DWD、DWM、DWS的作用。引用[2]提到Kimball的三层架构:ODS、DW、应用,但用户的问题可能更关注更细的分。 然后,据建模方面,引用[2]提到Kimball的维度模型,可能涉及星型模型或雪花模型。ETL设计方面,引用[3]说明STG据抽取,ODS到DWD的清洗转换,以及后续各的汇总处理。 需要注意用户提到的“据建模”和“ETL设计”需要结合各来解释。例如,在DWD进行维度建模,ETL过程包括据清洗、转换、加载到不同。 还需要检查引用内容是否准确。引用[1]提到了的细分,引用[3]提到STG的作用,这些都是关键点。要确保回答中正确引用这些信息,并在末尾添加引用标识。 最后,生成相关问题,需要围绕库分、各作用、建模方法、ETL优化等。例如,STG的作用,维度建模的优势,ETL设计中的优化方法。 现在需要组织这些信息,确保结构清晰,分点说明各,然后讨论建模和ETL,最后添加相关问题。同时,注意使用中文,学公式用$...$,独立公式用$$...$$,但根据用户问题,可能学公式较少,但如果有的话要正确应用。</think>### 分层架构及各作用 库分设计是据治理的核心环节,旨在提升据一致性、可维护性和查询效率。以下是典型分层架构及每作用: --- #### 1. **STG(暂存)** - **作用**:临时存储从源系统抽取的原始据,作为业务系统与库的隔离,避免直接操作生产环境据[^3]。 - **ETL设计**:仅做简单清洗(如格式校验、去重),保留原始据状态。 - **据建模**:通常与源系统结构一致,无复杂模型。 --- #### 2. **ODS(操作据存储)** - **作用**:存储经过初步处理的业务据,保留历史快照,支持据回溯。例如: $$ \text{ODS据量} = \sum_{t=1}^{n} \text{源系统增量据}(t) $$ - **ETL设计**:完成据合并、编码统一等轻量级转换[^3]。 - **据建模**:采用与业务系统对齐的范式模型,减少冗余。 --- #### 3. **DWD据明细)** - **作用**:存储面向主题的明细据,完成标准化(如统一时间戳、枚举值映射),支持跨业务分析[^1]。 - **ETL设计**:深度清洗(处理空值、异常值)、维度退化(将星型模型简化为宽表)。 - **据建模**:基于Kimball维度模型,构建事实表与维度表关联的星型模型[^2]。 --- #### 4. **DWM据中间)** - **作用**:对DWD据进行轻度汇总(如按天/地区统计销售额),预计算常用指标。 - **ETL设计**:使用聚合函(如`SUM`、`AVG`)生成中间表。 - **据建模**:采用宽表结构,减少后续查询的关联复杂度。 --- #### 5. **DWS据服务)** - **作用**:面向应用场景的高度汇总据,例如用户画像宽表、实时大屏指标。 - **ETL设计**:结合业务需求定制指标(如`GMV`、`DAU`),支持直接查询。 - **据建模**:以主题域划分,采用反范式化设计提升查询性能[^1]。 --- ### 据建模与ETL设计要点 1. **建模方法** - **范式建模**(Inmon):适用于ODS,减少冗余但查询复杂。 - **维度建模**(Kimball):用于DWD/DWS,以事实表为核心提升分析效率。 2. **ETL流程优化** - **增量抽取**:通过时间戳或日志对比减少据量。 - **任务调度**:使用工具(如Airflow)实现依赖管理和失败重试。 - **质量监控**:添加校验规则(如主键唯一性检查$P_k \neq \emptyset$)。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIMaynor

觉得有用,要个免费的三连可有?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值