一、为什么数据仓库需要分层?
- 1 清晰数据结构 :
- 数仓每一层都有对应的作用,方便在使用时更好的定位与了解。
- 2 数据血缘追踪:
- 清晰知道表\任务上下游,方便排查问题,知道下游哪个模块在使用,提升开发效率以及后期管理维护。
- 3 减少重复开发:
- 完善好数据仓库的中间层,减少后期不必要的开发,从而减少资源消耗,保障口径、数据统一。
- 4 复杂问题简单化:
- 将复杂问题拆解成多个步骤来完成,每一层处理单一步骤,当数据问题出现时,只需从问题出现处开始修复。
优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。
二、国内主流的数据仓库分层
在国内主流的数据仓库设计中,通常会采用多层架构来管理和组织数据,常见的层次:ODS(操作数据存储)、DWD(数据仓库明细层)、DWS(数据仓库汇总层)、DIM(维度模型层)和ADS(应用数据服务层)。
-
ODS(Operate Data Store 操作数据存储):
- 定义:ODS 是操作型系统的一个副本,用于存储从生产系统中抽取的原始数据,通常是实时或接近实时更新的。
- 功能:ODS 层存储了数据的初始状态,保留了操作型系统中的数据结构和详细内容,主要用于支持操作型系统的实时查询和处理需求。
- 特点:数据更新频繁,保留了数据的操作历史,适合需要快速响应和高频查询的应用场景。
- DWD(Data Warehouse Detail 数据仓库明细层):
- 定义:DWD 是数据仓库的主要存储层,用于存放经过清洗、整合、加工后的详细数据。
- 功能:DWD 层主要完成了数据的清洗、去重、数据格式转换等工作,确保数据质量和一致性,并且保留了数据的详细信息。
- 特点:支持数据的历史追溯,提供了基础数据的单一版本,适合进行数据挖掘、分析和报表等操作。
- DWS(Data Warehouse Summary 数据仓库汇总层):
- 定义:DWS 是在DWD层的基础上进行聚合、汇总和计算的存储层。
- 功能:DWS 层对数据进行了聚合、汇总和预计算,以提高数据查询的效率和性能,并且支持复杂的分析和查询操作。
- 特点:数据存储结构更优化,通常包括了数据的历史汇总和聚合信息,适合于需要复杂分析和报表的应用场景。
- DIM(维度模型层):
- 定义:DIM 是建立在DWD或DWS层之上的维度建模层。
- 功能:DIM 层主要用于提供与业务相关的维度模型,包括事实表和维度表,用于支持多维分析(OLAP)和数据挖掘操作。
- 特点:数据以维度为核心进行组织,支持复杂的多维分析和数据挖掘,适合决策支持系统和业务智能应用。
- ADS(Application Data Service 应用数据服务层):
- 定义:ADS 是数据仓库的最上层,为业务系统和应用提供服务接口和数据访问服务。
- 功能:ADS 层通过接口和服务提供数据访问和数据服务,将数据仓库的数据集成到业务应用中,为业务决策和应用提供支持。
- 特点:面向业务应用和最终用户,提供了数据的访问接口和服务,支持业务应用的快速开发和部署。
Tips:这些层次的设计可以根据具体的业务需求和数据分析要求进行灵活调整和扩展,构建出适合特定业务场景的数据仓库体系结构。