Duncan's Blog

何以解忧,唯有学习

0%

OneData数据治理方法论-阿里数据公共层设计方案

阿里数据公共层设计方案

理论

​ 阿里数据公共层设计理念遵循维度建模思想。数据模型的维度设计主要以维度建模理论为基础,基于维度数据模型总线架构,构建一致性的维度和事实。

模型层次

​ 阿里的数据模型三层架构:操作数据层(ODS)、公共维度模型层(CDM)、应用数据层(ADS)。

其中公共维度模型层包括明细数据层(DWD)和汇总数据层(DWS)。模型层次关系如下:

模型层次

操作数据层(ODS):保存系统内的原始数据。

  • 同步:结构化数据增量或者全量同步到MaxCompute.
  • 结构化:非结构化(日志)结构化处理并存储到MaxCompute。
  • 累计历史、清洗:根据数据业务需求及稽查和审计要求保存历史数据、清洗数据。

公共维度模型层(CDM):存放明细事实数据、维表数据及公共指标汇总层数据,其中明细事实数据、维表数据一般根据ODS数据加工生成;公共指标汇总数据一般根据维表数据和明细事实数据加工而成。

​ CDM又细分为DWD层和DWS层,分别时明细数据曾和汇总数据层,采用维度模型方法作为理论基础,更多地采用一些维度退化手法,将维度退化至事实表中,减少事实表和为表的关联,提高明细数据表的易用性;同时在数据汇总层,加强指标的维度退化,采取更多的宽表化手段构建公共指标数据层,提升公共指标的复用性,减少重复加工。其主要功能如下:

  • 组合相关和相似数据:采用明细宽表,服用关联计算,减少数据扫描。
  • 公共指标统一加工:基于OneData体系构建命名规范、口径一致、算法统一的统计指标,为上层数据产品、应用和服务提供公共指标来建立逻辑汇总宽表。
  • 建立一致性维度:建立一致的数据分析维表,降低数据计算口径、算法不统一的风险。

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

  • 个性化加工指标:复杂性(指数型、比值型、排名型指标)
  • 基于应用的数据组装:大宽表集市、横表转纵表、趋势指标串。

阿里模型架构图

阿里模型架构图

​ 数据调用服务优先使用公共维度模型层(CDM)数据,当公共层没有数据时,需评估是否需要创建公共层数据,当不需要公用的公共层时,才可以直接使用操作数据层(ODS)数据。应用数据层(ADS)作为产品特有的个性化数据一般不对外提供数据服务,但是ADS作为被服务方也需要遵守这个约定。

基本原则

  • 高内聚低耦合

    主要从数据业务特性和访问特性两个角度来考虑:将业务相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型;将高概率同时访问的数据放在一起,将低概率同时访问的数据分开存储。

  • 核心模型与扩展模型分离

    核心模型包括的字段支持常用的核心业务,扩展模型包括的字段支持个性化或少量应用的需要。不能让扩散模型的字段过度入侵核心模型,以免破坏核心模型的架构简洁性和可维护性。

  • 公共处理逻辑下沉及单一

    越是底层公用数据的逻辑处理越应该在数据调度依赖的底层进行封装与实现,不要让公用的逻辑处理暴露给应用层实现,不要让公共逻辑多处同时存在。

  • 成本与性能平衡

    适当的数据冗余可换取查询和刷新性能,不易过度冗余与数据复制。

  • 数据可回滚

    处理逻辑不变,在不同时间多次运行数据结果确定不变。

  • 一致性

    具有相同含义的字段在不同表中的命名必须相同,必须使用规范定义中的名称。

  • 命名清晰、可理解

    表名需清晰、一致,表名需易于使用者理解应用。