概述
上一篇主要阐述了 OneData 建模体系中的规范定义部分,而本篇主要阐述的是分层模型设计部分。当了解到每一个业务过程与维度的关联,就可以基本明确需要设计事实表与维度表;再通过明确统计指标的深入分析,就可以下沉某些相同计算逻辑。这是数仓的基本架构雏形已明确,而接下来则是设计各个表如何设计。例如:什么样的表放在ODS层以或者DWD层、及这样设计的依据是什么;后续内容将展开说明。
分层模型设计
可靠的数仓体系,需要良好的数据分层结构。合理的分层结构可以使数据体系更加清晰,将复杂问题简单化。
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体系之维度表设计(一)
以上示例与内容仅是个人观点,如有误十分感谢提出;内容还在完善中!!!
参考链接:
《大数据之路:阿里巴巴大数据实践》