目录
一、数据集存功能之数据仓库ODS层
二、数据分析功能之数据仓库DWD、DWS、ADS层
1、DWD层
2、DWS层
3、ADS层
之前在文章《扫盲系列(3):数据仓库架构详解》中,我们详细介绍了数据仓库的架构,接下来介绍数据仓库不同层的数据集成和数据分析功能。
数据仓库架构图
数据仓库ODS层(Operational Data Store)是数据仓库架构中的一个重要层次,主要用于保存从业务应用系统中抽取的数据,保证数据与业务系统保持一致性,并为数据仓库提供历史数据查询和数据更新功能。
数据仓库ODS层是基于业务系统的源数据构建的,与源数据保持一致,可以增加字段用来进行数据管理。由于数据仓库ODS层需要保留历史数据,因此一般采用只读的方式进行存储,同时提供业务系统查询使用。
业务系统对历史数据完成修改后,通常会将修改后的数据追加回数据仓库ODS层中,以保持数据仓库的实时性。为此,可以在数据仓库ODS层中将update_type字段更新为UPDATE,用来标识新插入的数据记录或已更新的记录。
update_type字段更新为UPDATE示例图
在离线数据仓库中,业务数据可以定期通过ETL流程导入到数据仓库ODS层中。为了保证数据的准确性和完整性,可以采用全量导入或增量导入两种方式。
1. 全量导入:用于第一次数据装载,增量导入则用于之后的数据更新。
2. 增量导入:用于数据非第一次导入,只需要导入新增、更改的数据。在增量导入时,一般采用外连接&全覆盖方式,以保持数据与业务系统的一致性,并避免数据冗余。
DWD、DWS和ADS层是数据仓库架构中的三个重要层次,分别用于数据清洗、数据集成和数据分析。
DWD层(Data Warehouse and Design)主要对数据仓库ODS层的数据进行清洗、去重、标准化和维度退化等处理,使之符合分析运算的需要。
1. 清洗主要是对数据进行去重、格式化、拆分、整合、纠错等工作,以消除数据中的异常和冗余。
2. 标准化是将数据转换成统一的数据格式和命名约定,以方便后续的数据分析。
3. 维度建模(例如对时间、分类、地域等进行维度退化)则是对数据中的维度信息进行分解和重组,以方便后续的报表统计和数据分析。
FineDataLink是一个ETL工具,支持ETL和ELT两种方式进行数据处理,可以从多个不同数据源中提取数据,进行清洗、整合和转换。
FineDataLink的ETL数据转换操作示例图
DWD层的数据仍然满足3NF模型(Third Normal Form),也就是第三范式,这意味着数据存储的结构是一个严格的关系模型,具备着较高的数据完整性和准确性。同时,DWD层的数据也能为数据仓库中的分析运算作好充分准备。
数据仓库的数据分析功能图
DWS层(Data Warehouse and Store)主要是对DWD层的数据进行计算、汇总和聚合,生成宽表(也称为事实表),以便于后续的数据分析和决策支持。
DWS层存储的数据模型非3NF模型,而是注重数据聚合和处理性能更优的数仓模型,例如维度模型(Dimensional Model)。
维度模型是一种以满足各种查询需求为目的进行设计的模型,主要包括星型模型、雪花模型、星座模型等多种形式。
DWS层的主要特点是存储数据中的事实数据和维度数据,支持较大的数据集聚和各种复杂的查询和聚合操作。通过DWS层的数据存储和处理,提高了数据仓库的数据分析效率和决策支持功能。
DWD和DWS层工作示例图
FineDataLink具有统一的数据管理、分析和质量控制平台,可以根据用户需求自定义数据质量控制规则和数据管理策略,从而保证数据的准确性、可靠性和完整性。
FineDataLink的监控功能操作示例图
ADS层(Analytic Data Store)主要是存储数据仓库中的分析结果和汇总数据,为不同业务场景提供分析接口,减轻数据仓库的负担。
ADS层存储的数据主要是针对特定的业务问题进行计算、分析和汇总的数据结果,而不是原始数据或宽表。存储的数据结果可以是预测模型的输出结果,或各种业务指标的计算结果。这些数据结果可供业务系统使用,例如线上数据处理系统、报表系统等。
ADS层的主要目的是为不同的应用场景提供分析接口,而不是直接提供原始数据,这可以避免直接查询数据仓库的开销和负担。通过ADS层的建立,数据仓库可以提供更加灵活和高效的分析查询接口,提高数据仓库的使用效率和业务可用性。
ADS层工作示意图