首页/数据/数仓建模速查/ADS 结果表设计:一表一应用
分层与规范64 条

ADS 结果表设计:一表一应用

ADS 表按消费场景设计:字段与前端展示列一致、时间粒度固定、分区就绪;尽量一表一报表,避免一个结果表被多处各自改口径。

数仓建模速查数据更新于 2026-10-13

ADS 结果表设计:一表一应用

ADS 表按消费场景设计:字段与前端展示列基本一一对应,时间粒度单一固定,分区就绪即被读取。推荐一表一报表、或同一应用的多张表,避免一张结果表被多处引用后各自改口径——字段含义一旦分叉,就再也无法统一维护。

基本信息

设计依据前端展示与消费方式
粒度单一且固定
字段含展示所需的格式与单位
分区按消费时间粒度就绪
变更随报表迭代并通知消费方

典型使用场景

  • 看板结果表:字段直接对齐看板列,前端不再做二次加工
  • 粒度固定:日汇总表只放日粒度,需要月粒度就另建表或另配聚合
  • 导出与对账文件:字段顺序与格式贴合导出口径,减少使用方加工
  • 字段下线:先走下线流程并保留过渡期,再从结果表移除
  • 结果重刷:结果层允许按分区重算,但重刷后要通知消费方刷新时间

看板结果表

看板结果表
CREATE TABLE ads_sale_board_day (
  store_id   STRING        COMMENT '门店ID',
  store_name STRING        COMMENT '门店名称(展示用)',
  pay_amt    DECIMAL(18,2) COMMENT '支付金额(元)',
  order_cnt  BIGINT        COMMENT '支付订单数',
  mom_rate   DECIMAL(10,4) COMMENT '环比(小数,可空)'
) COMMENT '销售看板-门店日粒度'
PARTITIONED BY (dt STRING)
STORED AS ORC;

ADS 设计检查项

检查项要求反例
粒度单一且固定日表里混放月汇总行
字段与展示列对齐前端再做一次聚合
口径归属归属单一应用多报表共用并各自改口径
变更通知消费方直接删字段导致报表空白
ADS 是结果层,允许按分区重刷;但重刷后必须通知消费方刷新时间,否则同一天数据会出现两个版本,对账无法闭合。
结果表里带上口径需要的中间量(如分子分母),使用方可以自行重算和核对,比只放一个比率字段可靠得多。
ADS 表的字段注释要写单位与口径,例如金额写「元」、比率写「小数四位」;结果表直接被展示层读取,注释缺失带来的误解没有下游可以兜底。

易错点

  • ADS 表被多个报表共用且各自改口径:字段含义逐步混乱,变更无法评估影响面
  • 一张结果表混装多种粒度:使用方按错误粒度聚合,数字放大或重复
  • 直接删除字段而不留过渡期:报表出现空白或报错,故障在消费方爆发
  • 重刷结果表不通知消费方:同一天出现两个版本的数据,对账无法闭合

数据来源与参考

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