怎么进行数据仓库分层设计及设计规范

如题所述

Doris github地址欢迎加Star

1.数据仓库分层模型设计

数据平台将数据分为操作数据层(ODS)、公共维度模型层(CDM)(其中公共维度模型层包括明细数据层(DWD)和汇总数据层(DWS))、应用数据层(ADS)

分层设计的好处:

对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:

下面讲解每个分层作用:

1.1 ODS层

把来源于其他系统的数据几乎无处理地存放在数据仓库中。主要功能:

1.2 CDM层

存放明细事实数据、维表数据及公共指标汇总数据。

CDM层又细分为DWD层和DWS层,分别是明细宽表层和公共汇总数据层,采取维度模型方法基础,更多采用一些维度退化手法,减少事实表和维度表的关联,容易维度到事实表强化明细事实表的易用性;同时在汇总数据层,加强指标的维度退化,采取更多宽表化的手段构建公共指标数据层,提升公共指标的复用性,减少重复的加工。

1.3 ADS层

存放数据产品个性化的统计指标数据,根据CDM层和ODS层加工生成。

1.2 数据规范定义设计

规范定义是指以维度建模作为理论基础,构建总线矩阵,划分和定义数据域、业务过程、维度、度量/原子指标、修饰类型、修饰词、时间周期、衍生指标等。一般指标组成体系可以划分为:原子指标、衍生指标、修饰类型、修饰词、时间周期

例如:支付订单金额+最近7天+门店POS销售=最近7天门店的成交

1.2.1 表命名规范

ODS:ods[业务库名]{业务库原始表名}[_delta]

示例:

外表映射命名:

ods[业务库名]{业务库原始表名}[_delta_mapping]

示例:

DWD:dwd{主题缩写}{业务过程缩写}[自定义标签缩写]{单分区增量全量标识}

示例:

DWS:dws{数据域缩写}[自定义标签缩写]_{刷新周期标识}

示例:

DIM:dim_{维度定义}

示例:

通用规范

1.2.2 在Doris数仓中外表映射原则

1.3 数据模型设计

维度建模是专门用于分析型数据库、数据仓库、数据集市建模的方法,维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

1.3.1 维度表

表示对分析主题所属类型的描述。比如"昨天早上张三在淘宝花费200元购买了一个皮包"。那么以购买为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天早上),地点维度(淘宝), 商品维度(皮包)。通常来说维度表信息比较固定,且数据量小。

1.3.2 事实表

表示对分析主题的度量。事实表包含了与各维度表相关联的外码,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。

维度建模常见的由星型模型、雪花模型和星座模型三种,数据平台设计一般采用星型模型

1.4 数据流向

稳定业务按照标准的数据流向进行开发,即ODS-->DWD-->DWS-->ADS。非稳定业务或探索性需求,可以遵循ODS->DWD->ADS或者ODS->DWD->DWT->ADS两个模型数据流。在保障了数据链路的合理性之后,又在此基础上确认了模型分层引用原则:
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜