|
@@ -2,14 +2,15 @@
|
|
|
-- 日期:2026-06-02
|
|
-- 日期:2026-06-02
|
|
|
-- 工单:(无)
|
|
-- 工单:(无)
|
|
|
-- 目的:dwd_trd_order_pay_apd_d 补数(backfill,kb/93 ADR-11 宽扫窄落):
|
|
-- 目的:dwd_trd_order_pay_apd_d 补数(backfill,kb/93 ADR-11 宽扫窄落):
|
|
|
--- 调度中断后回刷历史区间。ods.dt 宽扫 [${start}-1, 不限](捞回 update_time 漂移到后续 ods 分区的版本);
|
|
|
|
|
--- payment 业务时间窄落 [${start}, ${dt}](${dt}=today-1,决定覆盖哪些 dwd 分区,today 当天不落交日调度);
|
|
|
|
|
|
|
+-- 调度中断后回刷历史区间。ods.dt 宽扫 [${start_date}-1, 不限](捞回 update_time 漂移到后续 ods 分区的版本);
|
|
|
|
|
+-- payment 业务时间窄落 [${start_date}, ${stop_date}) 左闭右开(对齐 DataX 范围惯例);
|
|
|
-- status 口径 / 字段派生 / dim 退化 join 与日调度 dwd_trd_order_pay_apd_d.sql 完全一致
|
|
-- status 口径 / 字段派生 / dim 退化 join 与日调度 dwd_trd_order_pay_apd_d.sql 完全一致
|
|
|
-- 状态:[草案]
|
|
-- 状态:[草案]
|
|
|
--- 备注:只传 ${start}(如 20260518),${dt}=today-1(spark-sql-starter -dt 注入);
|
|
|
|
|
--- 前置:ods 已补到 ${dt} + dim_trd 补到 ${dt}(LEFT JOIN cg.dt=${dt} 否则 category 全 NULL);
|
|
|
|
|
--- 跨多 dt 动态分区,SET 上限 2000;与日调度分离(ADR-11),不挂 schedule,手动传 start;
|
|
|
|
|
--- 上界不限 = 扫到 ods 最新分区,payment ∈ [${start}, ${dt}] 的订单 ods 版本落点必 ≤ 最新,全部捞到
|
|
|
|
|
|
|
+-- 备注:传 ${start_date}(如 20260518) + ${stop_date}=${cdt}(DS globalParam=today,左闭右开覆盖到 today-1);
|
|
|
|
|
+-- 前置:ods 已补到 today-1 + dim_trd 补到 today-1(LEFT JOIN cg.dt=${stop_date}-1 否则 category 全 NULL);
|
|
|
|
|
+-- 跨多 dt 动态分区,SET 上限 2000;与日调度分离(ADR-11),不挂 schedule,手动传 start_date;
|
|
|
|
|
+-- 上界不限 = 扫到 ods 最新分区,payment ∈ [${start_date}, ${stop_date}) 的订单 ods 版本落点必 ≤ 最新,全部捞到;
|
|
|
|
|
+-- rawScript: spark-sql-starter.py -f <本文件> -p start_date=${start_date} -p stop_date=${cdt}
|
|
|
|
|
|
|
|
set hive.exec.max.dynamic.partitions=2000;
|
|
set hive.exec.max.dynamic.partitions=2000;
|
|
|
set hive.exec.max.dynamic.partitions.pernode=200;
|
|
set hive.exec.max.dynamic.partitions.pernode=200;
|
|
@@ -80,13 +81,14 @@ FROM (
|
|
|
ORDER BY COALESCE(update_time, create_time) DESC
|
|
ORDER BY COALESCE(update_time, create_time) DESC
|
|
|
) AS rn
|
|
) AS rn
|
|
|
FROM ods.ods_trd_card_group_order_info_inc_d
|
|
FROM ods.ods_trd_card_group_order_info_inc_d
|
|
|
- WHERE dt >= DATE_FORMAT(DATE_SUB(FROM_UNIXTIME(UNIX_TIMESTAMP('${start}', 'yyyyMMdd')), 1), 'yyyyMMdd')
|
|
|
|
|
|
|
+ WHERE dt >= DATE_FORMAT(DATE_SUB(FROM_UNIXTIME(UNIX_TIMESTAMP('${start_date}', 'yyyyMMdd')), 1), 'yyyyMMdd')
|
|
|
AND status IN (101, 103, 104, 105, 106, 301, 302)
|
|
AND status IN (101, 103, 104, 105, 106, 301, 302)
|
|
|
AND payment_success_time IS NOT NULL
|
|
AND payment_success_time IS NOT NULL
|
|
|
- AND DATE_FORMAT(payment_success_time, 'yyyyMMdd') BETWEEN '${start}' AND '${dt}'
|
|
|
|
|
|
|
+ AND DATE_FORMAT(payment_success_time, 'yyyyMMdd') >= '${start_date}'
|
|
|
|
|
+ AND DATE_FORMAT(payment_success_time, 'yyyyMMdd') < '${stop_date}'
|
|
|
) t
|
|
) t
|
|
|
WHERE t.rn = 1
|
|
WHERE t.rn = 1
|
|
|
) o
|
|
) o
|
|
|
LEFT JOIN dim.dim_trd_card_group_ful_d cg
|
|
LEFT JOIN dim.dim_trd_card_group_ful_d cg
|
|
|
ON o.group_info_id = cg.group_info_id
|
|
ON o.group_info_id = cg.group_info_id
|
|
|
- AND cg.dt = '${dt}';
|
|
|
|
|
|
|
+ AND cg.dt = DATE_FORMAT(DATE_SUB(FROM_UNIXTIME(UNIX_TIMESTAMP('${stop_date}', 'yyyyMMdd')), 1), 'yyyyMMdd');
|