从ODS-DWD-DWS-ADS详解数仓分层设计架构

文 | 商业智能BI相关文章 阅读次数:1,521 次浏览
2024-02-02 17:07:37

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

数据仓库架构图
数据仓库架构图

一、数据仓库ETL/ELT

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

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

ETL遇到的挑战

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

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

FineDataLink的数据转换功能
FineDataLink的数据转换功能

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

ETL流程
ETL流程

二、数据仓库分层

1、数据仓库ODS层

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

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

数仓特点:非易失性
数仓特点:非易失性

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

FineDataLink数据同步
FineDataLink数据同步

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

FineDataLink数据管道
FineDataLink数据管道

2、数据仓库CDM层

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

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

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

数仓CDM层工作示例
数仓CDM层工作示例

2、数据仓库ADS层

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

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

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

数仓ADS层工作示例
数仓ADS层工作示例

三、数据仓库搭建

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

数据仓库搭建
数据仓库搭建
数据仓库搭建
数据仓库搭建
数据仓库搭建

四、结语

帆软软件深耕数字行业,能够基于强大的底层数据技术,为企业打破数据孤岛,搭建数据仓库,梳理指标体系。为并企业提供数据仓库的上层应用生产力,结合强大的数据产品,建立全面、便捷、直观的经营、财务、绩效、风险和监管一体化的报表系统数据分析平台,并为各业务部门人员及领导提供PC端、移动端等可视化大屏查看方式,有效提高工作效率与需求响应速度。

若想了解更多数据仓库建设解决方案,请点击:《帆软数据仓库和商业智能解决方案》,或点击下方图片👇,还可以点击下方按钮,咨询数仓建设方案,免费试用ETL产品!

FineDataLink更多介绍: https://www.finedatalink.com/

产品体验

相关内容

目录
立即体验 立即体验

在线客服

电话咨询

技术问题

投诉入口

返回顶部