Jelajahi Sumber

refactor(ods/trd): 订单 inc 塌成活动日单口径,去掉 create 日份

业务会改 create_time,create/update 皆活动性时间戳、无"创建日"概念;过滤只留
活动日 GREATEST(create,update)=${dt},每单每活动日一份,拉链/ful 在此之上成立。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tianyu.chu 1 Minggu lalu
induk
melakukan
ee8e6943cc
1 mengubah file dengan 5 tambahan dan 6 penghapusan
  1. 5 6
      jobs/ods/trd/ods_trd_card_group_order_info_inc_d.sql

+ 5 - 6
jobs/ods/trd/ods_trd_card_group_order_info_inc_d.sql

@@ -1,12 +1,12 @@
 -- 作者:tianyu.chu
 -- 日期:2026-05-07
 -- 工单:(无)
--- 目的:raw → ods 增量同步(ADR-03);双源 union (raw dt=${dt} + raw dt=${pdt}) + create 日 OR 活动日 = ${dt} 过滤 + 按运行日 ${dt} 分桶(dt=活动日:创建日∪活动日)+ (id) dedupe + 动态分区写入
+-- 目的:raw → ods 增量同步(ADR-03);双源 union (raw dt=${dt} + raw dt=${pdt}) + 活动日 = ${dt} 过滤 + 按运行日 ${dt} 分桶(dt=活动日 GREATEST(create,update))+ (id) dedupe + 动态分区写入
 -- 状态:[草案]
 -- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2;ods 跨 dt 不去重,同 pk 多 dt 并存(拉链表底层);
---       dt=活动日(创建日∪活动日):活动日 = GREATEST(create, update)(兼容后端 update<create 脏单,取较晚者,永不早于 create)
---         每单在创建日与活动日分区各留一份,「创建于 D」确定性落 D
---         create 份态取 raw 首抽态(正常日调度≈初态;边界/补数可能已含当窗改动,拉链按值去重);
+--       dt=活动日 = GREATEST(create, update):业务会改 create,create/update 皆活动性时间戳、无"创建日"概念,取较晚者为最后活动日
+--         每单每个活动日一份(跨 dt 多版本 = 拉链底座)
+--         态取 raw 当时抓到的态(re-pull 只得当前态,中间态不追);
 --       订单表 his_o 历史灌入由 manual/backfill/ods_trd_card_group_order_info_init.sql 一次性处理,本调度只读 inc_d
 
 INSERT OVERWRITE TABLE ods.ods_trd_card_group_order_info_inc_d PARTITION (dt)
@@ -113,7 +113,6 @@ FROM (
         ) AS rn
     FROM raw.raw_trd_card_group_order_info_inc_d
     WHERE dt IN ('${dt}', '${pdt}')
-      AND ( DATE_FORMAT(create_time, 'yyyyMMdd') = '${dt}'
-            OR DATE_FORMAT(GREATEST(create_time, NULLIF(update_time, '')), 'yyyyMMdd') = '${dt}' )
+      AND DATE_FORMAT(GREATEST(create_time, NULLIF(update_time, '')), 'yyyyMMdd') = '${dt}'
 ) t
 WHERE t.rn = 1;