
导读:在数据仓库的建设过程中,如何对数据的管理进行分层设计是一个核心问题。本文将详细解析企业数据仓库的分层设计,帮助读者理解其重要性及实践方法。
一、引言
数据仓库的分层设计是数据模型设计中的重要环节,对于提高数据易用性、理解性和复用性具有重要意义。优秀的分层设计是数据仓库项目成功的关键。
二、数仓分层设计的意义
数据仓库的分层管理可以简化数据清洗过程,通过将复杂任务分解为多个简单步骤,提高每一步的正确性,便于问题排查和定位。分层的核心思想是解耦,将复杂问题简单化,影响数据架构的分层数量。
分层设计的好处包括:清晰数据结构、减少重复开发、统一数据口径、复杂问题简单化处理等。
三、通用分层架构
一种常见的四层分层架构包括:数据公共层(CDM/EDW)、明细层、汇总层和应用层。其中,数据公共层主要用于存放明细事实数据、维表数据及公共指标汇总数据。
四、不同分层的思路及案例
1. 爱奇艺数仓分层架构:主要包括原始数据层、明细层、汇总层、应用层以及统一的维度层。其中,明细层负责对接原始数据,还原业务域和业务过程的数据,同时底层数据变动对上层的影响。
2. SaaS收银运营数仓分层架构:包括DWT主题宽表层、DWA汇总层等。DWT层对业务过程相关的数据进行整合,方便上层使用。
3. 美团数仓分层架构:包括ODS数据源层、IDL数据集成层、CDL数据组件层、MDL数据集市层和ADL应用层。其中IDL注重宽表和聚合表的概念。
4. 网易严选和网易云音乐数仓分层架构:主要划分为ODS、DW和DM层。其中DW包含DWD和DWS层,共同组成中间层。
五、作者的数据仓库分层架构思考
作者提出了一种包含stg缓冲层的数仓分层架构,用于存储每天的增量数据和变更数据,配合ODS进行数据处理和沉淀。对于不同的业务场景,作者也给出了不同的分层建议。例如,对于业务简单且固定的情况,直接使用通用数仓架构;对于业务复杂且变化较快的情况,增加DWT层做汇总,以多一层解耦。
六、一个好的数仓模型分层的要素
一个好的数仓模型分层应该具备数据模型可复用、完善且规范的要素。从完善度来讲,主要衡量DWD层和汇总层的完善度;从复用度来讲,希望大部分需求都能由少数表来支持;从规范度来讲,表名和字段名等应符合规范。
七、总结及建议
数据仓库分层没有绝对规范,适合的就是最好的。分层的核心逻辑是解耦,在满足业务需求的兼顾业务的快速变化。作为数据架构师,需要平衡业务的复杂变化和开发的复杂度和可维护性,选择合适的分层架构。分层架构需要不断优化调整,按照超越当前实际情况的设计是比较合适的。
