详解数仓分层设计架构

  |   0 评论   |   0 浏览

这是一张典型的数据仓库架构图。按自下而上的顺序,分别为数据仓库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)两部分。

数仓架构图

01 数据仓库ETL/ELT

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

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

ETL遇到的挑战

具体来说,数据抽取是指从源数据系统中提取数据到目标数据系统,一般可以通过现成的工具来完成,如Sqoop、Kettle等。数据转换是指将抽取的数据进行清洗、标准化、加工等操作。这里需要注意的是,对于 非结构化或半结构化数据 ,由于数据格式多样化、标准化难度较大,因此可能需要花费一些时间进行数据清洗和处理。

FineDataLink是一款ETL工具,支持三十多种格式和结构的异构数据源,可以将这些异构数据源集成到一个统一的数据仓库中,并进行清洗、转换和分析,显着降低开发人员、数据分析师和研究人员的工作量,提高数据处理的效率和准确性,帮助企业更好地管理和分析数据。

FineDataLink的数据转换功能

最后,数据加载是将经过转换处理后的数据加载到目标系统中,一般也会采用现成的工具来完成,如Informatica、ODI等。

ETL流程

02 数据仓库分层

1、数据仓库ODS层

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

数据仓库ODS层通常采用可靠的数据仓库ETL工具为数据仓库提供数据,以此使源数据和数据仓库之间保持同步。同时,数据仓库ODS层的数据被保存在磁盘中,直接体现了数据仓库的一个特性—— 非易失性 (完整参见文章《数仓扫盲系列(1):数据仓库之基本概述》),即在停机或崩溃的情况下,数据不会丢失。

数仓特点:非易失性

FineDataLink有数据同步功能,可以通过定义数据来源和数据去向,实现数据表的跨数据库数据传输。

FineDataLink数据同步

FineDataLink还有数据管道功能,可以通过MySQL binlog、Oracle LogMiner、和SQL Sever的CDC等日志解析,来实现增量数据实时同步。

动图封面

FineDataLink数据管道

2、数据仓库CDM层

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

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

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

数仓CDM层工作示例

3、数据仓库ADS层

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

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

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

数仓ADS层工作示例

03 数据仓库搭建

下面这份PPT介绍了企业数据仓库建设解决方案,内容包括数仓的技术架构、数仓建设关键动作、数仓载体/工具、配置参考、大数据场景支撑案例等内容。

完整内容下载↓↓↓。

数据仓库建设解决方案 - 帆软数字化资料中心www.fanruan.com/resource/204?utm_source=media&utm_medium=zhihu&utm_campaign=mj&utm_term=nryx_26

原文链接https://zhuanlan.zhihu.com/p/671541242


标题:详解数仓分层设计架构
作者:michael
地址:https://blog.junxworks.cn/articles/2024/04/17/1713315344055.html