• 概述
  • 分层模型设计
  • ODS层设计
  • DWD层设计
  • DIM层设计
  • DWS层设计
  • ADS层设计


概述

    上一篇主要阐述了 OneData 建模体系中的规范定义部分,而本篇主要阐述的是分层模型设计部分。当了解到每一个业务过程与维度的关联,就可以基本明确需要设计事实表与维度表;再通过明确统计指标的深入分析,就可以下沉某些相同计算逻辑。这是数仓的基本架构雏形已明确,而接下来则是设计各个表如何设计。例如:什么样的表放在ODS层以或者DWD层、及这样设计的依据是什么;后续内容将展开说明。

分层模型设计

数仓mysql 数仓模型 数仓的模型设计_命名规范

    可靠的数仓体系,需要良好的数据分层结构。合理的分层结构可以使数据体系更加清晰,将复杂问题简单化。

ODS层设计

设计目的:

  • 数据同步:将结构化数据增量或全量同步过来,且表结构不发生改变;
  • 结构化:将非结构化数据(埋点日志)结构化处理,并存储到数仓系统中;
  • 保存历史数据、清洗:根据数据业务需求保存历史数据以及数据清洗;

表命名规范:

ods_表名_增量或全量标识(inc:增量/full:全量)

注:ODS 层数据保存的是历史数据,因此要选择压缩比较高的格式(gzip)。

DWD层设计

设计目的:基于维度建模设计明细宽表,复用关联计算,减少数据扫描。

表命名规范:

dwd_数据域_表名_增量或全量标识(inc:增量/full:全量)

注:为了保证 DWD 层查询数据的速度,存储格式为 orc 列式存储 + snappy 压缩。

DIM层设计

设计目的:根据维度建模理论,建立一致数据分析维表,降低数据计算口径的风险。

表命名规范:

dim_表名_全量或拉链表标识(full:全量/zip:拉链表)

注:为了保证 DIM 层查询数据的速度,存储格式为 orc 列式存储 + snappy 压缩。

DWS层设计

设计目的:基于规范定义构建命名规范、口径一致的统计指标,建立汇总宽表,为后续数据产品、应用和服务提供公共指标。

表命名规范:

dws_数据域_统计粒度_业务过程_统计周期(1d:最近1日/nd:最近n日/td:历史至今)

注:为了保证 DWS 层查询数据的速度,存储格式为 orc 列式存储 + snappy 压缩。

ADS层设计

设计目的:

  • 个性化加工指标:根据需求定制化指标,建立复杂性指标;
  • 基于应用的数据组装:建立宽表集市,以及趋势指标;

表命名规范:

ads_数据域_业务需求

注:为了保证 ADS 层查询数据的速度,存储格式为 orc 列式存储 + snappy 压缩。

维度表需要咋设计呢?

=》 第三部分数仓建模-OneData体系之维度表设计(一)


以上示例与内容仅是个人观点,如有误十分感谢提出;内容还在完善中!!!

参考链接:

尚硅谷数仓5.0

数仓笔记UP

《大数据之路:阿里巴巴大数据实践》