BDCC - 闲聊数据仓库的架构

news/2025/3/20 0:07:24/

文章目录

  • 典型数据仓库架构图
  • 数据仓库ETL vs ELT
    • ETL
    • ELT
    • 区别联系
  • 数据仓库分层
    • (1)数据仓库ODS层
    • (2)数据仓库CDM层
      • DWD数据明细层
      • DWS数据汇总层
    • (3)数据仓库ADS层

在这里插入图片描述


典型数据仓库架构图

在这里插入图片描述

按自下而上的顺序,分别为

  • ETL(Extract-Transform-Load)层
  • ODS(Operational Data Store)层
  • CDM(Common Dimensional Model)层
  • ADS(Application Data Store)层。

其中CDM层主要包括DWD层(Data Warehouse Detail)和DWS层(Data Warehouse Summary)两部分。

ODS(Operational Data Store):操作数据存储,主要用于存放实时的、操作性的数据,通常是来自不同源系统的数据,用于支持企业的业务操作和实时查询。

DWD(Data Warehouse Detail):数据仓库明细,是数据仓库中存储的最细粒度的数据,通常是事实表,用于支持企业的报表分析和数据挖掘。

DWS(Data Warehouse Summary):数据仓库汇总,是基于 DWD 事实表进行汇总、聚合生成的数据,通常以主题为单位组织,用于支持企业的决策分析。

ADS(Application Data Store):应用数据存储,主要用于存放为特定应用或业务场景定制的数据,通常包括模型、指标、维度等,用于支持企业的特定分析需求。

这些术语通常用于描述数据仓库和商业智能系统的不同层次和组成部分。在实际应用中,它们可能根据企业的具体需求和实现方式有所不同。

在这里插入图片描述


数据仓库ETL vs ELT

ETL

数据仓库ETL主要用于完成数据接入的过程,即从业务系统或其他数据源中提取数据,并进行数据清洗、转换和加载到目的地系统(如数据仓库)中的过程。该过程中,数据会经历抽取(Extract)、转换(Transform)和加载(Load)三个阶段,最终达到数据从源头流动到目标端的目的。

  • 提取(Extract):从不同的数据源中提取需要的数据,如数据库连接、文件导入、API 调用等。
  • 转换(Transform):对提取出来的数据进行转换和清洗,以满足数据仓库的需求。这包括数据格式转换、数据清洗、数据合并等。
  • 加载(Load):将经过转换和清洗的数据加载到数据仓库中,用于后续的数据分析和挖掘。

在这里插入图片描述

ELT

数据仓库ELT指的是将数据抽取出来后,直接进行加载,最后再进行数据转换的一种数据集成和处理方式。与传统的 ETL不同,ELT将数据的处理和加工过程转移到了数据仓库中,利用数据仓库的数据计算能力和分布式处理能力来处理和转换数据。

  • 提取(Extract):从不同的数据源中提取需要的数据,如数据库连接、文件导入、API 调用等。
  • 加载(Load):将提取出来的数据直接加载到数据仓库中,用于后续的数据分析和挖掘。
  • 转换(Transform):对加载到数据仓库中的数据进行转换和清洗,以满足数据分析的需求。

区别联系

总结来说,ETL 和 ELT 的主要区别在于数据转换和加载的顺序。ETL 方法在将数据加载到数据仓库之前进行数据清洗和转换,而 ELT 方法则在将数据加载到数据仓库之后进行数据清洗和转换。

在实际应用中,选择 ETL 还是 ELT 需要根据具体的业务需求和数据处理需求来决定。一般来说,如果数据质量要求较高,或者需要对数据进行复杂的转换和清洗,ETL 方法可能更为合适;而如果数据质量相对较好,或者需要更快地将数据加载到数据仓库中,ELT 方法可能更为合适。

在这里插入图片描述


数据仓库分层

(1)数据仓库ODS层

数据仓库ODS层也称为操作数据源层,是数据仓库中的一个核心组成部分。该层主要用于保存原始数据,完成数据积存,通常反映了企业业务系统中的最新操作,同时也是进行数据仓库的基础。

数据仓库ODS层通常采用可靠的数据仓库ETL工具为数据仓库提供数据,以此使源数据和数据仓库之间保持同步。

在这里插入图片描述
同时,数据仓库ODS层的数据被保存在磁盘中,直接体现了数据仓库的一个特性——非易失性(,即在停机或崩溃的情况下,数据不会丢失。


(2)数据仓库CDM层

CDM层是指公共维度模型层,是数据仓库中最核心和最关键的一层。主要用于提供标准化、共享的维度模型,为数据分析提供便利。CDM层通常包括**数据明细层(DWD)和数据汇总层(DWS)**两个部分。

DWD数据明细层

DWD层指数据明细层,通常接收数据仓库ODS层的原始数据,并进行清洗、标准化、维度退化、异常数据剔除等操作,进行统一处理,为数据分析提供支持。DWD层一般按照业务主题建模,包含多个维度和事实表,维度表可以用来描述业务数据的特征,而事实表则包含了关键数据指标(如销量、价格等)。

DWS数据汇总层

DWS层指数据汇总层,其主要作用是通过聚合和汇总,将DWD层中的数据按照主题进行汇总,形成宽表,进而提升数据分析性能。DWS层通常包含多个宽表,每个宽表都是由多个事实表和维度表经过聚合和分组运算生成的。DWS层中的宽表可以满足特定主题和不同维度的分析需求,减少了对其他表的操作,提升数据分析性能。

在这里插入图片描述


(3)数据仓库ADS层

ADS层也称为数据应用层,其主要功能是保存结果数据,为外部系统提供查询接口,基于数据仓库的数据为企业提供增值应用,并将数据仓库的数据应用于企业决策、报表、分析、控制等领域。ADS层通常采用OLAP(Online Analytical Processing)技术,用于快速访问和查询数据。

ADS层一般包括多个宽表,用于支持与企业应用有关的查询、分析、报告、控制、决策等操作。这些宽表一般可以通过BI工具或自定义应用程序查询和访问,以满足企业的各种数据需求。为了提高访问和查询速度,ADS层通常使用数据索引、缓存和预聚合等技术。

有时为了更好地管理和维护数据仓库,可以将ADS层从数据仓库中独立出去,成为一个独立的数据集市层(Data Mart)。数据集市层专门为某一特定业务需求而建立,可以基于某一个特定的主题或者某个业务领域建模,以满足该领域的数据分析和查询需求。

在这里插入图片描述


http://www.ppmy.cn/news/1065936.html

相关文章

第一百二十七回 空安全

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了级联操作符相关的内容,本章回中将介绍 空安全.闲话休提,让我们一起Talk Flutter吧。 概念介绍 在编译语言中都有空指针或者空对象(null),它们会引起程序的异常。在移动开发中如果…

测试.net开源音频库NAudio

微信公众号“dotNET跨平台”看到一篇文章《【.NET】使用NAudio实现录音功能》介绍基于NAudio实现录音功能(参考文献1)。NAudio是开源.net音频库,其支持播放多种格式的音频(WAV、AIFF、MP3、WMA等)、音频格式转换、录音…

ubuntu安装goland

下载并解压goland sudo tar -C /opt/ -xzvf goland-2023.1.3.tar.gz配置应用图标 新建文件: vim /usr/share/applications/goland.desktop文件中写入如下内容: [Desktop Entry] TypeApplication NameGoLand Icon/opt/GoLand/bin/goland.png Exec/op…

springboot之@Async异步定时任务自定义线程池

在应用中经常会遇到定时执行任务的需求,这时采用异步的方式开启一个定时任务,通常引用Async注解,但直接使用会有风险,当我们没有指定线程池时,会默认使用其Spring自带的 SimpleAsyncTaskExecutor 线程池,会…

04_21 slab分配器 分配对象实战

目的 ( slab块分配器分配内存)&#xff0c;编写个内核模块&#xff0c;创建名称为 “mycaches"的slab描述符&#xff0c;小为40字节, align为8字节&#xff0c; flags为0。 从这个slab描述符中分配个空闲对象。 代码大概 内核模块中 #include <linux/version.h>…

Linux 基金会宣布正式进驻中国

在 LinuxCon 2017 &#xff08;北京&#xff09;即将召开前夕&#xff0c;我们Linux 中国会同 51CTO、开源中国对 Linux 基金会执行董事 Jim Zemlin 进行了一场远跨大洋的视频专访。 在这次专访中&#xff0c;Jim 先生回答了几个开源界和互联网领域关注的问题&#xff0c;并披…

Leetcode刷题之1658. 将 x 减到 0 的最小操作数

题目: 算法分析: 可以看出,这道题本意是从计算两侧和为x 的数字, 要求数量最少, 那我们可以反向思考, 假如整个数组的和为sum, 那么我们就可以求中间部分和为sum-x的数字(当然必须连续), 当中间部分的数字同时达到和为sum-x以及长度最长两个要求时, 两侧数字也就达到了和为x以…

Arduino开发Seeed Studio XIAO RP2040

前言 准备一些硬件设备 Seeed Studio XIAO RP2040 一块电脑——window 或 Mac 一台Type-C数据线 某些USB线只支持充电&#xff0c;无传输数据功能。 连接电脑 按住boot按钮&#xff0c;然后将 Seeed Studio XIAO RP2040 连接到 PC。 2. 如果电脑文件管理器上显示了“RPI-RP2…