典型数据仓库架构图
按自下而上的顺序,分别为
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)。数据集市层专门为某一特定业务需求而建立,可以基于某一个特定的主题或者某个业务领域建模,以满足该领域的数据分析和查询需求。