阿里云 OneData 数据建模实战:从 ODS 到 ADS 四层数仓完整构建指南

前言

绝大多数中小企业搭建数据仓库都会陷入通病:指标口径五花八门、同个指标多套计算逻辑、底层数据杂乱复用混乱、报表迭代效率极低、业务提数反复返工。而阿里内部沉淀十余年、阿里云对外输出的 OneData 统一数据建模与指标治理方法论,正是解决这类痛点的核心方案,现已成为互联网、政企、零售行业搭建企业数据中台的标准范式。

OneData 核心思想一句话概括:统一指标口径、统一数据模型、统一数据血缘、统一数据治理,以维度建模总线架构为底座,划分 ODS、CDM(DWD + DWS)、ADS 三层大架构,细化为四层实操分层:ODS 贴源层、DWD 明细层、DWS 汇总层、ADS 应用层,自上而下逐级加工指标,全程闭环管控指标定义、计算逻辑、数据流向。

本文结合阿里云 DataWorks、MaxCompute 生产环境实战,完整梳理指标从业务需求提出 → 规范定义 → 分层逐层加工 → 前端报表输出全流程,逐层级讲解每层输入来源、加工逻辑、输出内容、设计原则、适用指标类型,附带电商交易场景实操案例,看完可直接落地搭建自有标准化数仓指标体系。

一、先吃透核心:OneData 两大基石(指标体系 + 总线分层架构)

1.1 OneData 标准化指标构成体系(指标构建源头)

所有业务指标都遵循固定公式拆解,彻底消除口径歧义,也是四层数仓分层加工的依据:

派生指标 = 原子指标 + 修饰词 + 统计时间周期

  • 原子指标:不可拆分的基础度量,绑定单一业务过程,例:支付金额、下单数量、退款订单数(存储于 DWD 明细层)
  • 修饰词:限定统计范围,如:移动端、华北区域、新用户、自营商品
  • 时间周期:日 / 周 / 月 / 累计至今等
  • 统计粒度维度:用户、商品、店铺、地域等公共维度(统一存放 DIM 维度层,属于 CDM 公共层)

1.2 OneData 标准四层数仓整体流转链路

业务系统 MySQL / 日志 / 第三方接口 → ODS 贴源层 → DWD 明细事实层(绑定 DIM 维度) → DWS 公共汇总层 → ADS 个性化应用层 → 报表 / BI / 数据大屏 / 数据分析平台

分层遵循三大铁律:

  1. 数据只能自上而下单向引用,禁止下层反向依赖上层、同层互相依赖;
  2. 公共计算逻辑全部下沉至 DWD/DWS 公共层,ADS 层只做简单查询拼接,杜绝重复计算;
  3. 所有指标统一录入指标字典,一处定义、多处复用,口径全局一致。

二、逐层拆解:四层数仓输入、构建逻辑、输出内容(OneData 规范)

第一层:ODS 操作数据贴源层(Operational Data Store)

1)核心定位

数仓最底层原始数据缓冲区,原样留存业务源头数据,不做业务逻辑计算,是整个数仓的数据入口,承担数据备份、审计溯源、源头问题排查作用。

2)数据输入来源

所有外部源头数据统一接入 ODS,阿里云常用接入方式:

  • 结构化数据:业务 MySQL、Oracle 库,通过 DataWorks 数据同步(DataX)全量 / 增量同步;
  • 半结构化日志:Nginx 访问日志、应用埋点日志,通过 Flink 实时采集写入 MaxCompute ODS;
  • 第三方数据:支付接口、物流推送数据、外部爬虫数据;

输入特点:结构、字段类型、数据内容 1:1 复刻源业务库,无业务修改。

3)ODS 层构建加工逻辑(轻度处理,无指标计算)

仅做极简规范化清洗,不聚合、不统计指标:

  • 增量 / 全量分区存储:按 dt = 日期分区留存每日快照,支持历史数据回溯;
  • 脏数据过滤:剔除乱码、空主键、格式异常数据;
  • 格式统一:时间戳、编码统一转换,适配 MaxCompute 存储;
  • 数据生命周期管理:冷热数据分层归档,节省存储成本。

4)ODS 层输出内容

一张张贴源明细表,命名规范:ods_业务域_表名_每日增量/全量

示例:ods_trade_order_di(交易域订单每日增量表)、ods_user_info_df(用户域用户全量表)

✅ 输出价值:为上层 DWD 明细层提供纯净原始数据源,避免频繁直连业务库压垮在线系统。

❌ 禁止行为:不在 ODS 做聚合、指标统计、多表关联逻辑。

第二层:DWD 数据明细事实层(Data Warehouse Detail,归属 CDM 公共层)

1)核心定位

标准化明细事实层,原子指标唯一承载层,OneData 指标体系最核心基础层;基于维度建模构建事实宽表,完成数据清洗、整合、维度关联,保存最细粒度业务行为流水数据,所有统计指标均基于 DWD 明细衍生而来。

2)数据输入来源

唯一上游输入:ODS 层贴源明细表 + DIM 公共维度层

  • 主数据:ODS 业务流水表(订单、支付、退款、浏览日志);
  • 关联数据:DIM 维度表(用户维度、商品维度、店铺维度、地域维度),保证全局维度口径统一。

3)DWD 层构建核心加工流程

  • 业务域拆分:按照 OneData 总线矩阵,划分为交易域、用户域、商品域、物流域等独立板块;
  • 事实拆分:区分事务事实表(下单、支付、退款瞬时行为)、周期快照事实表(用户每日留存)、累积快照事实表(订单完整生命周期);
  • 数据深度清洗:剔除无效订单、测试数据、重复埋点,统一业务编码;
  • 维度退化关联:将常用维度属性冗余进事实表,减少上层反复关联维度表开销;
  • 存储粒度:保留最细粒度逐条流水,不做任何聚合汇总。

4)DWD 层输出内容

明细事实宽表,存储所有原子指标原始度量值

示例:dwd_trade_order_detail_di 交易订单明细宽表

字段包含:订单 ID、用户 ID、商品 ID、下单金额(原子指标:下单总额)、下单数量(原子指标:下单件数)、支付时间、设备类型、城市等维度属性。

适用场景:明细查询、数据溯源、复杂个性化指标计算、数据倾斜排查。

第三层:DWS 数据汇总服务层(Data Warehouse Summary,归属 CDM 公共层)

1)核心定位

公共派生指标汇总层,面向通用分析场景做预聚合,大幅降低查询计算压力;将 DWD 明细数据按照常用维度组合提前聚合,沉淀全业务通用指标,是报表、大屏最常调用的层级,完美平衡查询性能与数据灵活性。

2)数据输入来源

唯一上游输入:DWD 明细事实表 + DIM 公共维度表

禁止直接读取 ODS 层原始数据,保证所有汇总数据基于标准化明细生成。

3)DWS 层构建加工原则(OneData 规范硬性要求)

  • 多粒度预聚合:按照日、周、月、累计等时间粒度,搭配用户、地域、渠道、商品类目等常用维度组合汇总;
  • 公共逻辑下沉:全部门通用指标统一在这里计算一遍,运营、产品、财务共用一套口径;
  • 分层聚合:先轻度汇总(日维度汇总),再向上叠加周期汇总,复用下层结果;
  • 宽表设计:一张汇总表承载多个关联原子指标,减少多表 Join。

4)DWS 层输出内容

按维度聚合的汇总宽表,存放大量通用派生指标

示例:dws_trade_user_day_sum_di 用户每日交易汇总表

包含指标:每日下单用户数、每日支付总额、新用户成交金额、各城市 GMV、移动端成交占比等通用经营指标。

优势:前端 BI 拉取日报、周报、大盘数据无需扫描亿万条明细,秒级返回结果。

第四层:ADS 应用数据层(Application Data Store)

1)核心定位

数仓最上层个性化应用层,面向特定业务场景、特定需求定制化指标结果;不沉淀公共逻辑,只做个性化裁剪、二次拼接、格式转换,直接对接前端应用入口。

2)数据输入来源

  • 优先读取:DWS 公共汇总层;
  • 复杂个性化场景按需读取 DWD 明细层

严禁读取 ODS 原始数据,最大限度复用公共计算结果,减少重复开发。

3)ADS 层构建规则

  • 按需裁剪维度:根据运营报表需求,筛选指定维度、时间范围数据;
  • 个性化指标二次计算:基于公共指标做自定义换算(如毛利率、转化率、爆款商品占比);
  • 格式适配:适配大屏、Excel 导出、业务后台接口返回格式;
  • 按需分区:部分实时报表可按小时分区,离线报表按日分区。

4)ADS 层输出内容

场景化结果表,每一张表对应一套独立业务需求

示例:ads_operation_daily_big_screen_di 运营大盘实时指标表;ads_finance_month_settlement_di 财务月度结算报表数据表;ads_marketing_activity_result_di 营销活动效果统计表。

三、实战案例:电商 GMV 指标基于 OneData 四层完整构建流程

以核心指标每日移动端新用户支付 GMV 为例,完整走一遍四层加工链路:

  1. ODS 层:同步 MySQL 订单主表、用户信息表、支付流水日志,原样落地贴源数据;
  2. DWD 层:关联订单 + 支付 + 用户维度表,清洗有效支付订单,产出订单明细宽表,留存原子指标:支付金额;
  3. DWS 层:按天、设备端、用户类型(新 / 老用户)维度聚合,预算出移动端新用户每日支付总额(通用派生指标);
  4. ADS 层:运营需要电商大盘看板,从 DWS 抽取该指标,拼接访客数、下单转化率,适配大屏展示格式,最终对外输出。

整个流程全程口径统一,修改计算逻辑仅需调整 DWD/DWS 公共层,所有应用同步生效,完美解决指标不一致痛点。

四、OneData 数仓分层核心价值总结

  • 指标口径统一:依托原子指标 + 派生指标规范,全局一套计算逻辑,彻底消灭数据吵架;
  • 计算复用降本:公共逻辑下沉 DWD/DWS,ADS 轻量化开发,开发效率提升 60% 以上;
  • 架构易于维护:单向数据流,血缘清晰,故障快速定位;
  • 扩展性极强:新增业务场景只需复用公共层数据,无需从头梳理源头;
  • 适配阿里云生态:完美对接 Dataphin 指标治理、DataWorks 调度、Quick BI 可视化,一站式落地数据中台。