|
@@ -5,8 +5,10 @@
|
|
|
-- 按 ods_dt = COALESCE(update_time,create_time) 的日动态分区写入 ods(等价按天 backfill 的批量版)
|
|
-- 按 ods_dt = COALESCE(update_time,create_time) 的日动态分区写入 ods(等价按天 backfill 的批量版)
|
|
|
-- 状态:[待执行]
|
|
-- 状态:[待执行]
|
|
|
-- 备注:动态分区 INSERT OVERWRITE 只覆盖 SELECT 出现的 ods_dt(2026 各日),不动 2026 前历史分区;
|
|
-- 备注:动态分区 INSERT OVERWRITE 只覆盖 SELECT 出现的 ods_dt(2026 各日),不动 2026 前历史分区;
|
|
|
--- DISTRIBUTE BY ods_dt 防每分区小文件(ADR-15);dump 一单一行,dedupe 实为直通、留作与日常 ODS 同构。
|
|
|
|
|
--- 中间态按决策丢弃:每单只落"当前最终态"到其最后变更日分区。
|
|
|
|
|
|
|
+-- DISTRIBUTE BY ods_dt 防每分区小文件(ADR-15);
|
|
|
|
|
+-- 不做日常 ODS 的 (id,ods_dt) 去重——那是为 raw 48h 双源 union 的同日重叠去重,
|
|
|
|
|
+-- dump 是 PG 单次快照、一单一行、无同日重复,去重是空操作,故省。
|
|
|
|
|
+-- 中间态按决策丢弃:每单只落当前最终态到其最后变更日分区(一单一行,多版本不进 ods)。
|
|
|
-- 跑完确认无误后 DROP TABLE raw.tmp_trd_card_group_order_info(内部表连数据一起清)。
|
|
-- 跑完确认无误后 DROP TABLE raw.tmp_trd_card_group_order_info(内部表连数据一起清)。
|
|
|
|
|
|
|
|
SET hive.exec.dynamic.partition=true;
|
|
SET hive.exec.dynamic.partition=true;
|
|
@@ -111,13 +113,8 @@ 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,
|
|
|
|
|
- ROW_NUMBER() OVER (
|
|
|
|
|
- PARTITION BY id, DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd')
|
|
|
|
|
- ORDER BY COALESCE(NULLIF(update_time, ''), create_time) DESC
|
|
|
|
|
- ) AS rn
|
|
|
|
|
|
|
+ DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') AS ods_dt
|
|
|
FROM raw.tmp_trd_card_group_order_info
|
|
FROM raw.tmp_trd_card_group_order_info
|
|
|
WHERE dt = '20260716'
|
|
WHERE dt = '20260716'
|
|
|
) t
|
|
) t
|
|
|
-WHERE t.rn = 1
|
|
|
|
|
DISTRIBUTE BY ods_dt;
|
|
DISTRIBUTE BY ods_dt;
|