dws_usr_user_trade_1d.sql 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. -- 作者:tianyu.chu
  2. -- 日期:2026-05-10
  3. -- 工单:(无)
  4. -- 目的:dws_usr_user_trade_1d 日常增量(kb/29 §1.4 + §2):
  5. -- 回算近 2 日(与 dwd N=2 对齐,漂移连锁补偿,kb/93 ADR-09):扫 dwd.dt IN (${dt}, ${pdt}) +
  6. -- 过滤 category IS NOT NULL(脏数据 other 已在 DIM 清洗为 NULL,kb/28 §3.2)+
  7. -- GROUP BY (user_id, category, dt) 聚合 +
  8. -- 动态分区写入 dws.dt IN (${dt}, ${pdt})
  9. -- 状态:[草案]
  10. -- 备注:sched=T,${dt}=T-1,${pdt}=T-2;
  11. -- 回算 N=2 兜底跨零点漂移连锁补偿(dwd 同步,参 kb/93 ADR-09);
  12. -- INSERT OVERWRITE 动态分区(kb/26 §8 项目默认 DYNAMIC mode):只覆盖 SELECT 出现的 dt 分区,不动其他历史分区;
  13. -- 前置 DS DEPENDENT:dwd_trd_order_pay_apd_d.${dt}
  14. INSERT OVERWRITE TABLE dws.dws_usr_user_trade_1d PARTITION (dt)
  15. SELECT
  16. user_id AS user_id,
  17. category AS category,
  18. COUNT(DISTINCT order_id) AS pay_order_cnt,
  19. SUM(purchase_cnt) AS purchase_cnt,
  20. SUM(payable_amt_cny) AS payable_amt_cny,
  21. SUM(pay_amt_cny) AS pay_amt_cny,
  22. SUM(trade_amt_cny) AS trade_amt_cny,
  23. SUM(settle_amt_cny) AS settle_amt_cny,
  24. SUM(merchant_discount_amt_cny) AS merchant_discount_amt_cny,
  25. SUM(platform_discount_amt_cny) AS platform_discount_amt_cny,
  26. SUM(member_discount_amt_cny) AS member_discount_amt_cny,
  27. SUM(act_discount_amt_cny) AS act_discount_amt_cny,
  28. SUM(point_deduct_amt_cny) AS point_deduct_amt_cny,
  29. SUM(shipping_amt_cny) AS shipping_amt_cny,
  30. SUM(point) AS point,
  31. CURRENT_TIMESTAMP() AS etl_time,
  32. dt AS dt
  33. FROM dwd.dwd_trd_order_pay_apd_d
  34. WHERE dt IN ('${dt}', '${pdt}')
  35. AND category IS NOT NULL
  36. GROUP BY user_id, category, dt;