数据仓库实战(一):数仓分层分域规范

数据仓库实战(一):数仓分层分域规范_第1张图片
笔者多年身处一线互联网独角兽企业,主导过数据仓库从0到1的建设,同时作为数据中台核心成员,在巨头合并,大数据融合及迁移过程中起到至关重要的作用。对数据中台及数据中泰产品有一定研究,抱着分享与自我成长的心态着手整理发表文章。内容核心会分为两大板块:数据仓库实战与数据产品实战。

接下来的文章中逐步介绍以下内容:

数据仓库实战(一):数仓分层分域规范
数据仓库实战(二):数仓表命名规范
数据仓库实战(三):数仓字段命名规范
数据仓库实战(四):数仓编码规范
数据仓库实战(五):埋点流程及规范
数据仓库实战(六):数仓建模设计概述

数据仓库实战(一):数仓分层分域规范_第2张图片
数仓模型分层
业界的数仓的表数据模型通常会分为以下几层,只是或多或少的将以下层次进一步细分或抽象。

ODS层(Operation Data Store,可操作数据集,生产数据沉淀)

DWD层(Data Warehouse Detail Data 数据仓库明细数据)

DWS层 (Data Warehouse Summary Data 宽表或汇总数据)

DIM层 (Dimension 维度层)

DM层 (Data Market 数据集市,支撑需求和应用)

ADM层 (Application Data Model 应用数据模型)

TMP层 (临时文件层)

由于不同公司的规模不同,业务重心不同,会有些许不同,如有的公司的模型层次重点分成了ODS、CDM(通用模型层 Common Data Model)、ADS(Application Data Service)。将DWD和DWS公共模型层划分到CDM层。而笔者公司将画像层作为重要业务划分,所以单独建设了一个画像UPF层

会有较多的集市团队支持各个业务线,故建设了数个的XXX_DM层,更加的贴合业务,提升数据流转效率。然万变不离其宗,各公司根据自己的组织架构及业务形态在此基础上做适当调整便可。

核心分层概述
ODS(Operational Data Store)是数据仓库的细节数据层,是对各业务系统数据进行沉淀,因此ODS层的数据模型延用各业务生产系统保持一致。

该层针对部分特殊场景进行特殊处理:

业务系统分表,在该层进行数据合并(部分公司在dwd层进行合并)。
Kafka,flink等实时数据入库在该层进行解析拆分(部分公司才有stage层缓冲处理)。
DWD(Data Warehouse Detail Data)数据明细层为数据加工层,该层的主要功能是对生产数据进行各种经营分析口径的加工转换,实现编码转换、标签加工等,该层基本是用户、订单等粒度的明细数据,同时该层对企业核心数据进行业务域划分,在互联网行业由于业务变化快,需要快速迭代,推荐遵循维度建模设计。

DWS (Data Warehouse Summary Data)层是汇总与衍生层,主要是为了日常运营中快速反映各业务部门的数据需求,建立各种数据模型,对明细类数据进行分主题、分维度的聚合汇总,数据来源包含多个业务线,同时要考虑专题性的统一宽表,大幅度缩小数据量。该层是对上层集市及应用的主要支撑层,既要尽量减少数据量,提高查询速度,又要包含上层应用的必须得各种信息,维度。

DM(Data Market)作为数据仓库的组成部分,从企业数据仓库中ODS层、DWD层、DWS、UPF层抽取相关数据并进行转换和装载,并根据应用需求形成的数据集合,支撑各个专业化的业务部门进行建设面向应用的数据模型。

数仓模型分域
所谓分域,是基于分层的基础上,将数据进一步的管理,便于数据的集中存放,保障数据的一致性,将高概率同时访问的数据放一起 ,将低概率同时访问的数据分开存储,易于维护及使用。

以下分域是笔者基于电商、物流、新闻、键盘工具等产品数仓提供的参考,由于不同公司的主营业务不同对业务的划分亦可或多或少的调整。

如果说分层的建设可以所有行业通用,那么分域的建设则需要对公司所属行业的业务进行高度抽象,

将日常的业务进行划分,这是考验数仓建设者的业务模型抽象的重要环节,也是作为数仓架构师的必备技能。

你可能感兴趣的:(数据仓库实战(一):数仓分层分域规范)