|
|
@@ -449,13 +449,18 @@
|
|
|
- **决策**:dwd 补数走独立任务流,与日调度(ADR-09)分离。核心是 **宽扫窄落** —— ods.dt 宽扫(捞回漂移到后续分区的版本)、payment 业务时间窄落(锁定覆盖哪些 dwd 分区):
|
|
|
|
|
|
- 独立 SQL `jobs/dwd/trd/dwd_trd_order_pay_apd_d_backfill.sql`
|
|
|
- - 独立 DS workflow,手动触发**只传 `start`**(end 隐含昨日),不挂 schedule,不加 DEPENDENT
|
|
|
- - payment 业务时间过滤 `[start, today-1]`(补到最后完整业务日;today 当天不落,交日调度)
|
|
|
- - ods.dt 扫描 `[start-1, 不限]`:
|
|
|
- - 下界 `start-1`:往前 1 天对齐 ADR-09 日调度 pdt buffer(cover create_time 早于 payment 落前一天的边缘)
|
|
|
- - 上界不限:扫到 ods 最新分区(today)。payment ∈ [start, today-1] 的订单,其 ods 版本落点必 ≤ today,故全部捞到 —— 不依赖"猜漂移天数"
|
|
|
+ - 独立 DS workflow,手动触发,不挂 schedule,不加 DEPENDENT
|
|
|
+ - 参数(对齐 DataX `start_date`/`stop_date` 左闭右开范围惯例,下划线):
|
|
|
+ - `${start_date}`:workflow 启动参数(补数起始日)
|
|
|
+ - `${stop_date}`:取 `${cdt}`(DS globalParam=today),左闭右开 `< stop_date` 即覆盖到 today-1(当天不落交日调度)
|
|
|
+ - rawScript:`spark-sql-starter.py -f <backfill.sql> -p start_date=${start_date} -p stop_date=${cdt}`(不传 `-dt`,SQL 不用 `${dt}`)
|
|
|
+ - payment 业务时间窄落 `[${start_date}, ${stop_date})` 左闭右开
|
|
|
+ - ods.dt 扫描 `[${start_date}-1, 不限]`:
|
|
|
+ - 下界 `start_date-1`:往前 1 天对齐 ADR-09 日调度 pdt buffer(cover create_time 早于 payment 落前一天的边缘)
|
|
|
+ - 上界不限:扫到 ods 最新分区。payment ∈ 范围内的订单,其 ods 版本落点必 ≤ 最新,故全部捞到 —— 不依赖"猜漂移天数"
|
|
|
+ - dim 退化 join 用 `${stop_date}-1`(=today-1=最新 dim 快照分区)
|
|
|
- 范围内每个 dwd 分区全覆盖(`INSERT OVERWRITE` 冲掉旧 / 缺失版本)
|
|
|
- - 前提:ods 已补到 today-1(raw_ods 补数到位 / 今日 sche 已跑)—— dwd 补数从 ods 重新归位,ods 有多少落多少
|
|
|
+ - 前提:ods 已补到 today-1 + dim_trd 补到 today-1(dwd 补数从 ods 重新归位、退化 join 最新 dim)
|
|
|
|
|
|
- **后果**:
|
|
|
|