数据仓库是专为分析而设计的集成化数据环境,它集成了来自不同源系统的数据,为企业提供决策支持。数据仓库具有面向主题、集成性、非易失性和时变性等基本特征。
在信息化社会,数据已经成为企业最重要的资产之一。数据仓库作为企业数据管理和分析的核心平台,其架构分层设计对于在构建数据仓库的过程中,各层架构的实现是确保数据仓库高效运作的关键。
数仓架构分层
数据仓库的架构通常分为数据源层(ODS)、数据明细层(DWD)、数据汇总层(DWS)、数据应用层(ADS)等。每一层都有其独特的功能和数据处理策略,共同构成了完整的数据仓库体系。

1. 数据源层(ODS)
负责存储来自各个源系统的原始数据。保持数据原始格式,不进行任何转换或聚合。
2. 数据明细层(DWD)
对原始数据进行清洗、转换和标准化。利用MPP架构进行并行处理,加速数据转换过程。
3. 数据汇总层(DWS)
对明细层数据进行轻度聚合,生成汇总数据。使用物化视图技术,预先计算并存储常见聚合查询结果。
4. 数据应用层(ADS)
为最终用户提供报表、仪表盘和其他数据分析应用。通过查询接口直接从汇总层或物化视图中获取数据。
SQL实现分层案例

1.数据源层(ODS)
假设有一个名为source_table的源系统表,我们可以使用以下SQL将其数据插入到ODS层表中:
INSERT INTO ods_table (column1, column2, ...) SELECT column1, column2, ... FROM source_table;
2.数据明细层(DWD)
假设有一个名为ods_table的ODS层表和一个名为dim_table的维度表,我们可以使用以下SQL进行数据清洗和维度关联:
SELECT
o.column1, o.column2, d.dimension_value, ...
FROM ods_table o
JOIN dim_table d ON o.dimension_id = d.dimension_id
WHERE
3.数据汇总层(DWS)
假设有一个名为dwd_table的DWD层表,我们可以使用以下SQL进行数据聚合:
SELECT dimension1, dimension2, SUM(measure1), COUNT(measure2), ... FROM dwd_table GROUP BY dimension1, dimension2;
4.数据应用层(ADS)
假设有一个名为dws_table的DWS层表,我们可以使用以下SQL创建一个视图供应用层使用:
CREATE VIEW ads_view AS SELECT dimension1, dimension2, measure1, measure2, ... FROM dws_table;




