1.数仓分层概述
数据仓库分为三层,自下而上为:
数据引入层(ODS,Operation Data Store)
数据公共层(CDM,Common Data Model)
数据应用层(ADS,Application Data Service)
数据引入层(ODS,Operation Data Store):将原始数据几乎无处理的存放在数据仓库系统,结构上与源系统基本保持一致,是数据仓库的数据准备区。
数据公共层(CDM,Common Data Model,又称通用数据模型层),包含DIM维度表、DWD和 DWS,由ODS层数据加工而成。主要完成数据加工与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。这一层里又包括三层:
1.公共维度层(DIM):全拼dimension
,基于维度建模理念思想,建立整个企业的一致性维度。降低数据计算口径和算法不统一风险。公共维度层的表通常也被称为逻辑维度表,维度和维度逻辑表通常一一对应。
2.数仓明细层(DWD):全拼data warehouse detail
大体作用:ods经过清洗,落地这一层,一般是最细粒度。
具体:以业务过程作为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,也即宽表化处理。明细粒度事实层的表通常也被称为逻辑事实表。
3.数据汇总层(DWS):全拼data warehouse service
大体作用:对dwd的轻微聚合,对一些可累加的指标进行聚合,增加复用性
具体:以分析的主题对象作为建模驱动,基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表,以宽表化手段物理化模型。构建命名规范、口径一致的统计指标,为上层提供公共指标,建立汇总宽表、明细事实表。公共汇总粒度事实层的表通常也被称为汇总逻辑表,用于存放派生指标数据。
数据应用层(ADS,Application Data Service):存放数据产品个性化的统计指标数据。根据CDM与ODS层加工生成
2.数仓开发规范
2.1 数据库命名
命名规则:数仓对应分层_{业务线|业务项目}
命名示例:ods_nshop/dwd_nshop/dws_nshop/dim_nshop/ads_nshop/
2.2 数仓各层对应数据库
ods/sda层 -> sda/ods_{业务线|业务项目}(原始数据)
dw层 -> dwd_{业务线|业务项目} (主题) + dws_{业务线|业务项目}(基于主题宽表汇总)
dim层 -> dim_维度 (维表库)
ads层 -> ads_{业务线|业务项目} (应用统计指标等)
middle层 -> mid_{业务线|业务项目}(中间库) 临时数据 -> temp_{业务线|业务项目}(临时库)
2.3 数据库表命名规则
原始数据层
命名规则:
ods_{业务线|业务项目}_{数据来源类型}_{业务}
ods_{业务线|业务项目}_{数据来源类型}_{业务}_{时间粒度}_delta
delta代表增量,主要用于数据同步方向产生的原始数据表
命名示例:
ods_nshop_01_useractlog XX用户日志原始数据表
ods_nshop_02_user XX用户表(全量)
ods_nshop_02_user_delta XX用户表(增量)
ods_nshop_02_user_hh_delta XX用户表(小时级增量 dd天)
主题/事实数据层
命名规则:
dwd_{业务线|业务项目}_{主题域}_{子业务}
命名示例:
dwd_nshop_user_logproview XX用户产品浏览日志事实表
dwd_nshop_user_comment XX用户关注事实表
主题/事实汇总层
命名规则:
dws_{业务线|业务项目}_{主题域}_{汇总相关粒度}_{汇总时间周期}
命名示例:
dws_nshop_user_order_nd XX用户订单汇总N天统计表
dws_nshop_user_cmtpro_nd XX用户产品关注汇总N天统计表
维表层
命名规则:
dim_{业务线|业务项目|pub公共}_{维度}
命名示例:<