首页/数据/数仓建模速查/汇总的物化策略:全量与增量
维度与事实设计149 条

汇总的物化策略:全量与增量

汇总表两种刷新:全量重算简单可靠但成本高;增量滚动省资源但要处理迟到数据与重复提交,适合数据量大且上游稳定的场景。

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

全量与增量怎么选

汇总表有两种刷新方式。全量重算每天把整个汇总重跑一遍,逻辑简单、结果与明细天然一致,代价是资源消耗随历史规模增长;增量滚动只算新增分区再追加,省资源,但必须处理迟到数据、重复提交与历史修正三件事。选择标准通常是上游稳定性与数据量:上游稳定、数据量大的事实表用增量,口径频繁调整、数据量可控的表用全量。

基本信息

全量重算结果稳定,成本随历史规模上升
增量滚动只算新分区,需配套回补机制
风险点迟到数据、重复提交、历史修正
幂等要求同一分区重跑结果一致

典型使用场景

  • 日粒度汇总表数据量大、上游稳定,用增量滚动加分区覆盖写
  • 口径频繁调整阶段用全量重算,省掉回补逻辑的维护成本
  • 迟到数据到达后按受影响分区定向回补,而不是整表重跑
  • 上游批量修正历史(财务调账、组织调整)时评估是否全量重算
  • 为长跑任务加并发保护,避免两次运行同时写同一分区

增量与回补

增量与回补
-- 每日增量:按分区覆盖写,保证重跑幂等
INSERT OVERWRITE TABLE dws_sales_day PARTITION (dt = '2026-10-12')
SELECT '2026-10-12' AS dt,
       region_sk,
       sum(amt) AS amt,
       count(1) AS order_cnt
FROM dwd_sales
WHERE dt = '2026-10-12'
GROUP BY region_sk;

-- 回补:明细分区被修正后,重算并覆盖同分区
-- 触发条件来自明细的更新时间,而不是固定周期

策略对照

策略适用条件主要风险
全量重算数据量可控、口径常变资源消耗随历史增长
增量滚动上游稳定、数据量大迟到数据造成长期偏差
混合热分区增量、冷分区全量两套逻辑需同时维护
增量方案必须配套迟到数据回补任务,触发依据是明细的更新时间或上游数据水位,而不是凭经验定期重跑历史区间。
全量重算要加并发保护与超时控制:上一次还没跑完就启动下一次,两个任务会同时写同一分区,结果不可预期。

易错点

  • 迟到数据不回补,汇总与明细长期偏差且无人解释
  • 全量重算无并发保护,任务重叠写同一分区
  • 增量逻辑依赖当日数据完整性,上游延迟时把半天数据当全天汇总
  • 回补范围靠人工判断,修正遗漏后偏差继续放大

数据来源与参考

  • 数仓工程实践:汇总刷新策略
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌