|
|
@@ -2,11 +2,10 @@
|
|
|
-- 日期:2026-05-07
|
|
|
-- 工单:(无)
|
|
|
-- 目的:订单表 ods 初始化一次性灌入:raw_his_o(存量历史)+ raw_inc_d(已跑全部增量)UNION ALL,
|
|
|
--- 按 DATE_FORMAT(update_time, 'yyyyMMdd') 归位到 ods 各 dt 分区,(id, ods_dt) dedupe,动态分区写入
|
|
|
+-- 按 DATE_FORMAT(COALESCE(update_time, create_time), 'yyyyMMdd') 归位到 ods 各 dt 分区,(id, ods_dt) dedupe,动态分区写入
|
|
|
-- 状态:[待执行]
|
|
|
-- 备注:跑一次后由 jobs/ods/trd/ods_trd_card_group_order_info_inc_d.sql 接管日常增量;
|
|
|
--- his_o + inc_d schema 完全一致(91 字段 STRING),SELECT * UNION ALL 安全;
|
|
|
--- update_time 为空的行落入 __HIVE_DEFAULT_PARTITION__(非阻塞,下游自行处理)
|
|
|
+-- his_o + inc_d schema 完全一致(91 字段 STRING),SELECT * UNION ALL 安全
|
|
|
|
|
|
-- 动态分区上限:本表跨 1632 dt(2021-10-28 ~ 2026-04-30)撞 hive 默认 1000/100。
|
|
|
-- pernode 指 Spark task 节点(spark.sql.shuffle.partitions=200)不是物理 worker。
|
|
|
@@ -111,10 +110,10 @@ SELECT
|
|
|
ods_dt AS dt
|
|
|
FROM (
|
|
|
SELECT *,
|
|
|
- DATE_FORMAT(update_time, 'yyyyMMdd') AS ods_dt,
|
|
|
+ DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') AS ods_dt,
|
|
|
ROW_NUMBER() OVER (
|
|
|
- PARTITION BY id, DATE_FORMAT(update_time, 'yyyyMMdd')
|
|
|
- ORDER BY update_time DESC
|
|
|
+ PARTITION BY id, DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd')
|
|
|
+ ORDER BY COALESCE(NULLIF(update_time, ''), create_time) DESC
|
|
|
) AS rn
|
|
|
FROM (
|
|
|
SELECT * FROM raw.raw_trd_card_group_order_info_his_o
|