|
@@ -1,9 +1,11 @@
|
|
|
-- 作者:tianyu.chu
|
|
-- 作者:tianyu.chu
|
|
|
-- 日期:2026-05-07
|
|
-- 日期:2026-05-07
|
|
|
-- 工单:(无)
|
|
-- 工单:(无)
|
|
|
--- 目的:raw → ods 增量同步(ADR-03);双源 union (raw dt=${dt} + raw dt=${pdt}) + DATE_FORMAT(COALESCE(update_time, create_time))=${dt} 过滤 + (id, ods_dt) dedupe + 动态分区写入
|
|
|
|
|
|
|
+-- 目的:raw → ods 增量同步(ADR-03);双源 union (raw dt=${dt} + raw dt=${pdt}) + create 日 OR 变更日 = ${dt} 过滤 + 按运行日 ${dt} 分桶(dt=活动日:创建日∪变更日)+ (id) dedupe + 动态分区写入
|
|
|
-- 状态:[草案]
|
|
-- 状态:[草案]
|
|
|
-- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2;ods 跨 dt 不去重,同 pk 多 dt 并存(拉链表底层);
|
|
-- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2;ods 跨 dt 不去重,同 pk 多 dt 并存(拉链表底层);
|
|
|
|
|
+-- dt=活动日(创建日∪变更日):每单在创建日与各变更日分区各留一份,「创建于 D」确定性落 D 分区;
|
|
|
|
|
+-- create 份态取 raw 首抽态(正常日调度≈初态;边界/补数可能已含当窗改动,拉链按值去重);
|
|
|
-- 订单表 his_o 历史灌入由 manual/backfill/ods_trd_card_group_order_info_init.sql 一次性处理,本调度只读 inc_d
|
|
-- 订单表 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)
|
|
INSERT OVERWRITE TABLE ods.ods_trd_card_group_order_info_inc_d PARTITION (dt)
|
|
@@ -103,13 +105,14 @@ SELECT
|
|
|
ods_dt AS dt
|
|
ods_dt AS dt
|
|
|
FROM (
|
|
FROM (
|
|
|
SELECT *,
|
|
SELECT *,
|
|
|
- DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') AS ods_dt,
|
|
|
|
|
|
|
+ '${dt}' AS ods_dt,
|
|
|
ROW_NUMBER() OVER (
|
|
ROW_NUMBER() OVER (
|
|
|
- PARTITION BY id, DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd')
|
|
|
|
|
|
|
+ PARTITION BY id
|
|
|
ORDER BY COALESCE(NULLIF(update_time, ''), create_time) DESC
|
|
ORDER BY COALESCE(NULLIF(update_time, ''), create_time) DESC
|
|
|
) AS rn
|
|
) AS rn
|
|
|
FROM raw.raw_trd_card_group_order_info_inc_d
|
|
FROM raw.raw_trd_card_group_order_info_inc_d
|
|
|
WHERE dt IN ('${dt}', '${pdt}')
|
|
WHERE dt IN ('${dt}', '${pdt}')
|
|
|
- AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
|
|
|
|
|
|
|
+ AND ( DATE_FORMAT(create_time, 'yyyyMMdd') = '${dt}'
|
|
|
|
|
+ OR DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}' )
|
|
|
) t
|
|
) t
|
|
|
WHERE t.rn = 1;
|
|
WHERE t.rn = 1;
|