Преглед на файлове

feat(usr/shp/prd): 5 维度表切全量快照 ful_d(+ful_m),删 inc

app_base_user / app_user_cert_info / tzy_merchant_info / checklist_base_info /
panini_checklist_version_config:raw where 1=1 全量拉,ods ful_d 直 CAST 落 dt=T-1、
前置 drop raw+ods 的 wdt=T-8 留 7 天;checklist_base_info、version_config 另加 ful_m。
app_base_user id_card=md5、cert cert_birthday=month_trunc 运行时脱敏保留;cert 软删列 del_flag。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tianyu.chu преди 1 седмица
родител
ревизия
fbfb10d1e2
променени са 30 файла, в които са добавени 379 реда и са изтрити 266 реда
  1. 13 18
      jobs/ods/prd/ods_prd_checklist_base_info_ful_d.sql
  2. 18 0
      jobs/ods/prd/ods_prd_checklist_base_info_ful_m.sql
  3. 13 18
      jobs/ods/prd/ods_prd_panini_checklist_version_config_ful_d.sql
  4. 17 0
      jobs/ods/prd/ods_prd_panini_checklist_version_config_ful_m.sql
  5. 13 18
      jobs/ods/shp/ods_shp_tzy_merchant_info_ful_d.sql
  6. 13 18
      jobs/ods/usr/ods_usr_app_base_user_ful_d.sql
  7. 29 0
      jobs/ods/usr/ods_usr_app_user_cert_info_ful_d.sql
  8. 0 34
      jobs/ods/usr/ods_usr_app_user_cert_info_inc_d.sql
  9. 9 9
      jobs/raw/prd/raw_prd_checklist_base_info_ful_d.ini
  10. 4 4
      jobs/raw/prd/raw_prd_checklist_base_info_ful_d.mask.ini
  11. 9 9
      jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.ini
  12. 4 4
      jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.mask.ini
  13. 9 9
      jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.ini
  14. 4 4
      jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.mask.ini
  15. 9 9
      jobs/raw/usr/raw_usr_app_base_user_ful_d.ini
  16. 4 4
      jobs/raw/usr/raw_usr_app_base_user_ful_d.mask.ini
  17. 9 9
      jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.ini
  18. 4 4
      jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.mask.ini
  19. 9 9
      manual/ddl/ods/prd/ods_prd_checklist_base_info_ful_d_create.sql
  20. 53 0
      manual/ddl/ods/prd/ods_prd_checklist_base_info_ful_m_create.sql
  21. 9 9
      manual/ddl/ods/prd/ods_prd_panini_checklist_version_config_ful_d_create.sql
  22. 50 0
      manual/ddl/ods/prd/ods_prd_panini_checklist_version_config_ful_m_create.sql
  23. 9 9
      manual/ddl/ods/shp/ods_shp_tzy_merchant_info_ful_d_create.sql
  24. 9 9
      manual/ddl/ods/usr/ods_usr_app_base_user_ful_d_create.sql
  25. 9 9
      manual/ddl/ods/usr/ods_usr_app_user_cert_info_ful_d_create.sql
  26. 10 10
      manual/ddl/raw/prd/raw_prd_checklist_base_info_ful_d_create.sql
  27. 10 10
      manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_ful_d_create.sql
  28. 10 10
      manual/ddl/raw/shp/raw_shp_tzy_merchant_info_ful_d_create.sql
  29. 10 10
      manual/ddl/raw/usr/raw_usr_app_base_user_ful_d_create.sql
  30. 10 10
      manual/ddl/raw/usr/raw_usr_app_user_cert_info_ful_d_create.sql

+ 13 - 18
jobs/ods/prd/ods_prd_checklist_base_info_inc_d.sql → jobs/ods/prd/ods_prd_checklist_base_info_ful_d.sql

@@ -1,11 +1,17 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-07
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的: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 全量快照 —— 读 raw dt=${dt} 全量(一行一 id = 当前态),CAST 落 ods ful_d dt=${dt}
 -- 状态:[草案]
--- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2
+-- 备注:sched=T,${dt}=T-1;维度全量快照模型(无 seed / 无 merge / 无 dedup,PG id 唯一)见 kb/24 §1.2.2;
+--       保留近 7 天:INSERT 前 DROP 掉 ${wdt}=T-8 一个分区,raw / ods 一并 drop(raw 的 drop 也收进本 ods
+--       任务,DataX ini 不便 drop);DS 传 wdt=$[yyyyMMdd-8],手动跑 -p wdt=<T-8>;
+--       静态分区写入 PARTITION(dt='${dt}'):源=raw、目标=ods,不同表无读写冲突。
 
-INSERT OVERWRITE TABLE ods.ods_prd_checklist_base_info_inc_d PARTITION (dt)
+ALTER TABLE raw.raw_prd_checklist_base_info_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+ALTER TABLE ods.ods_prd_checklist_base_info_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+
+INSERT OVERWRITE TABLE ods.ods_prd_checklist_base_info_ful_d PARTITION (dt='${dt}')
 SELECT
     CAST(id                AS BIGINT)    AS id,
     code                                 AS code,
@@ -43,17 +49,6 @@ SELECT
     data_version                         AS data_version,
     CAST(sport_blend       AS BIGINT)    AS sport_blend,
     display_name_translations            AS display_name_translations,
-    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted,
-    ods_dt                               AS dt
-FROM (
-    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
-    FROM raw.raw_prd_checklist_base_info_inc_d
-    WHERE dt IN ('${dt}', '${pdt}')
-      AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
-) t
-WHERE t.rn = 1;
+    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted
+FROM raw.raw_prd_checklist_base_info_ful_d
+WHERE dt = '${dt}';

+ 18 - 0
jobs/ods/prd/ods_prd_checklist_base_info_ful_m.sql

@@ -0,0 +1,18 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:月快照 —— 每月 1 号读 ods ful_d 的 T-1 分区(恰=上月月底),另存进长留月表 ful_m dt=${dt}
+-- 状态:[草案]
+-- 备注:sched=T=每月 1 号,${dt}=T-1=上月月底(如 8/1 跑 → ${dt}=20260731);模型见 kb/24 §1.2.1;
+--       长期全留,无 retention drop;源=ods ful_d 同 schema,直拷;静态分区 PARTITION(dt='${dt}')。
+
+INSERT OVERWRITE TABLE ods.ods_prd_checklist_base_info_ful_m PARTITION (dt='${dt}')
+SELECT
+    id, code, year, sport, manufacturer, sets, display_name, type,
+    num, use_num, status, remark, create_time, create_by, update_time, update_by,
+    lot, del_flg, act_point_type, parent_id, sets_version, merchant_id, merchant_name,
+    share, share_to_merchant, custom, panini_config_id, import_failure_cause,
+    check_failure_cause, import_status, review_msg, sub_type, title, data_version,
+    sport_blend, display_name_translations, is_deleted
+FROM ods.ods_prd_checklist_base_info_ful_d
+WHERE dt = '${dt}';

+ 13 - 18
jobs/ods/prd/ods_prd_panini_checklist_version_config_inc_d.sql → jobs/ods/prd/ods_prd_panini_checklist_version_config_ful_d.sql

@@ -1,11 +1,17 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-07
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的: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 全量快照 —— 读 raw dt=${dt} 全量(一行一 id = 当前态),CAST 落 ods ful_d dt=${dt}
 -- 状态:[草案]
--- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2
+-- 备注:sched=T,${dt}=T-1;维度全量快照模型(无 seed / 无 merge / 无 dedup,PG id 唯一)见 kb/24 §1.2.2;
+--       保留近 7 天:INSERT 前 DROP 掉 ${wdt}=T-8 一个分区,raw / ods 一并 drop(raw 的 drop 也收进本 ods
+--       任务,DataX ini 不便 drop);DS 传 wdt=$[yyyyMMdd-8],手动跑 -p wdt=<T-8>;
+--       静态分区写入 PARTITION(dt='${dt}'):源=raw、目标=ods,不同表无读写冲突。
 
-INSERT OVERWRITE TABLE ods.ods_prd_panini_checklist_version_config_inc_d PARTITION (dt)
+ALTER TABLE raw.raw_prd_panini_checklist_version_config_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+ALTER TABLE ods.ods_prd_panini_checklist_version_config_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+
+INSERT OVERWRITE TABLE ods.ods_prd_panini_checklist_version_config_ful_d PARTITION (dt='${dt}')
 SELECT
     CAST(id                  AS BIGINT)        AS id,
     CAST(panini_list_id      AS BIGINT)        AS panini_list_id,
@@ -40,17 +46,6 @@ SELECT
     display_name_translations                  AS display_name_translations,
     CAST(sale_time           AS TIMESTAMP)     AS sale_time,
     CAST(open_time           AS BIGINT)        AS open_time,
-    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted,
-    ods_dt                                     AS dt
-FROM (
-    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
-    FROM raw.raw_prd_panini_checklist_version_config_inc_d
-    WHERE dt IN ('${dt}', '${pdt}')
-      AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
-) t
-WHERE t.rn = 1;
+    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted
+FROM raw.raw_prd_panini_checklist_version_config_ful_d
+WHERE dt = '${dt}';

+ 17 - 0
jobs/ods/prd/ods_prd_panini_checklist_version_config_ful_m.sql

@@ -0,0 +1,17 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:月快照 —— 每月 1 号读 ods ful_d 的 T-1 分区(恰=上月月底),另存进长留月表 ful_m dt=${dt}
+-- 状态:[草案]
+-- 备注:sched=T=每月 1 号,${dt}=T-1=上月月底(如 8/1 跑 → ${dt}=20260731);模型见 kb/24 §1.2.1;
+--       长期全留,无 retention drop;源=ods ful_d 同 schema,直拷;静态分区 PARTITION(dt='${dt}')。
+
+INSERT OVERWRITE TABLE ods.ods_prd_panini_checklist_version_config_ful_m PARTITION (dt='${dt}')
+SELECT
+    id, panini_list_id, set_version, carmichael_img_type, import_type, report_flag,
+    base_config, base_price, min_reference_price, max_reference_price, num, use_num,
+    status, remark, del_flg, create_time, create_by, update_time, update_by,
+    prop1, prop2, prop3, prop4, tag, display_name, presale_time, max_box, league,
+    issuing_time, issuing_price, display_name_translations, sale_time, open_time, is_deleted
+FROM ods.ods_prd_panini_checklist_version_config_ful_d
+WHERE dt = '${dt}';

+ 13 - 18
jobs/ods/shp/ods_shp_tzy_merchant_info_inc_d.sql → jobs/ods/shp/ods_shp_tzy_merchant_info_ful_d.sql

@@ -1,11 +1,17 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-07
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的: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 全量快照 —— 读 raw dt=${dt} 全量(一行一 id = 当前态),CAST 落 ods ful_d dt=${dt}
 -- 状态:[草案]
--- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2
+-- 备注:sched=T,${dt}=T-1;维度全量快照模型(无 seed / 无 merge / 无 dedup,PG id 唯一)见 kb/24 §1.2.2;
+--       保留近 7 天:INSERT 前 DROP 掉 ${wdt}=T-8 一个分区,raw / ods 一并 drop(raw 的 drop 也收进本 ods
+--       任务,DataX ini 不便 drop);DS 传 wdt=$[yyyyMMdd-8],手动跑 -p wdt=<T-8>;
+--       静态分区写入 PARTITION(dt='${dt}'):源=raw、目标=ods,不同表无读写冲突。
 
-INSERT OVERWRITE TABLE ods.ods_shp_tzy_merchant_info_inc_d PARTITION (dt)
+ALTER TABLE raw.raw_shp_tzy_merchant_info_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+ALTER TABLE ods.ods_shp_tzy_merchant_info_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+
+INSERT OVERWRITE TABLE ods.ods_shp_tzy_merchant_info_ful_d PARTITION (dt='${dt}')
 SELECT
     CAST(id                  AS BIGINT)    AS id,
     appid                                  AS appid,
@@ -57,17 +63,6 @@ SELECT
     CAST(total_sold_num      AS BIGINT)    AS total_sold_num,
     shipping_cost_config                   AS shipping_cost_config,
     CAST(merchant_group_id   AS BIGINT)    AS merchant_group_id,
-    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted,
-    ods_dt                                 AS dt
-FROM (
-    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
-    FROM raw.raw_shp_tzy_merchant_info_inc_d
-    WHERE dt IN ('${dt}', '${pdt}')
-      AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
-) t
-WHERE t.rn = 1;
+    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted
+FROM raw.raw_shp_tzy_merchant_info_ful_d
+WHERE dt = '${dt}';

+ 13 - 18
jobs/ods/usr/ods_usr_app_base_user_inc_d.sql → jobs/ods/usr/ods_usr_app_base_user_ful_d.sql

@@ -1,11 +1,17 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-07
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的: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 全量快照 —— 读 raw dt=${dt} 全量(一行一 id = 当前态),CAST 落 ods ful_d dt=${dt}
 -- 状态:[草案]
--- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2;ods 跨 dt 不去重,同 pk 多 dt 并存(拉链表底层)
+-- 备注:sched=T,${dt}=T-1;维度全量快照模型(无 seed / 无 merge / 无 dedup,PG id 唯一)见 kb/24 §1.2.2;
+--       保留近 7 天:INSERT 前 DROP 掉 ${wdt}=T-8 一个分区,raw / ods 一并 drop(raw 的 drop 也收进本 ods
+--       任务,DataX ini 不便 drop);DS 传 wdt=$[yyyyMMdd-8],手动跑 -p wdt=<T-8>;
+--       静态分区写入 PARTITION(dt='${dt}'):源=raw、目标=ods,不同表无读写冲突。
 
-INSERT OVERWRITE TABLE ods.ods_usr_app_base_user_inc_d PARTITION (dt)
+ALTER TABLE raw.raw_usr_app_base_user_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+ALTER TABLE ods.ods_usr_app_base_user_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+
+INSERT OVERWRITE TABLE ods.ods_usr_app_base_user_ful_d PARTITION (dt='${dt}')
 SELECT
     CAST(id                       AS BIGINT)        AS id,
     appid                                           AS appid,
@@ -59,17 +65,6 @@ SELECT
     CAST(weekly_limit             AS BIGINT)        AS weekly_limit,
     CAST(monthly_limit            AS BIGINT)        AS monthly_limit,
     CAST(live_anonymous           AS BIGINT)        AS live_anonymous,
-    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted,
-    ods_dt                                          AS dt
-FROM (
-    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
-    FROM raw.raw_usr_app_base_user_inc_d
-    WHERE dt IN ('${dt}', '${pdt}')
-      AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
-) t
-WHERE t.rn = 1;
+    CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted
+FROM raw.raw_usr_app_base_user_ful_d
+WHERE dt = '${dt}';

+ 29 - 0
jobs/ods/usr/ods_usr_app_user_cert_info_ful_d.sql

@@ -0,0 +1,29 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:raw → ods 全量快照 —— 读 raw dt=${dt} 全量(一行一 id = 当前态),CAST 落 ods ful_d dt=${dt}
+-- 状态:[草案]
+-- 备注:sched=T,${dt}=T-1;维度全量快照模型(无 seed / 无 merge / 无 dedup,PG id 唯一)见 kb/24 §1.2.2;
+--       保留近 7 天:INSERT 前 DROP 掉 ${wdt}=T-8 一个分区,raw / ods 一并 drop(raw 的 drop 也收进本 ods
+--       任务,DataX ini 不便 drop);DS 传 wdt=$[yyyyMMdd-8],手动跑 -p wdt=<T-8>;
+--       静态分区写入 PARTITION(dt='${dt}');本表软删字段为 del_flag(其它表多为 del_flg)。
+
+ALTER TABLE raw.raw_usr_app_user_cert_info_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+ALTER TABLE ods.ods_usr_app_user_cert_info_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
+
+INSERT OVERWRITE TABLE ods.ods_usr_app_user_cert_info_ful_d PARTITION (dt='${dt}')
+SELECT
+    CAST(id            AS BIGINT)    AS id,
+    CAST(user_id       AS BIGINT)    AS user_id,
+    CAST(cert_birthday AS TIMESTAMP) AS cert_birthday,
+    CAST(cert_sex      AS BIGINT)    AS cert_sex,
+    cert_province                    AS cert_province,
+    cert_city                        AS cert_city,
+    CAST(version       AS BIGINT)    AS version,
+    CAST(status        AS BIGINT)    AS status,
+    CAST(del_flag      AS BIGINT)    AS del_flag,
+    CAST(create_time   AS TIMESTAMP) AS create_time,
+    CAST(update_time   AS TIMESTAMP) AS update_time,
+    CASE WHEN del_flag = '1' THEN TRUE ELSE FALSE END AS is_deleted
+FROM raw.raw_usr_app_user_cert_info_ful_d
+WHERE dt = '${dt}';

+ 0 - 34
jobs/ods/usr/ods_usr_app_user_cert_info_inc_d.sql

@@ -1,34 +0,0 @@
--- 作者:tianyu.chu
--- 日期: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 + 动态分区写入
--- 状态:[草案]
--- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2;本表软删字段为 del_flag(其它表多为 del_flg)
-
-INSERT OVERWRITE TABLE ods.ods_usr_app_user_cert_info_inc_d PARTITION (dt)
-SELECT
-    CAST(id            AS BIGINT)    AS id,
-    CAST(user_id       AS BIGINT)    AS user_id,
-    CAST(cert_birthday AS TIMESTAMP) AS cert_birthday,
-    CAST(cert_sex      AS BIGINT)    AS cert_sex,
-    cert_province                    AS cert_province,
-    cert_city                        AS cert_city,
-    CAST(version       AS BIGINT)    AS version,
-    CAST(status        AS BIGINT)    AS status,
-    CAST(del_flag      AS BIGINT)    AS del_flag,
-    CAST(create_time   AS TIMESTAMP) AS create_time,
-    CAST(update_time   AS TIMESTAMP) AS update_time,
-    CASE WHEN del_flag = '1' THEN TRUE ELSE FALSE END AS is_deleted,
-    ods_dt                           AS dt
-FROM (
-    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
-    FROM raw.raw_usr_app_user_cert_info_inc_d
-    WHERE dt IN ('${dt}', '${pdt}')
-      AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
-) t
-WHERE t.rn = 1;

+ 9 - 9
jobs/raw/prd/raw_prd_checklist_base_info_inc_d.ini → jobs/raw/prd/raw_prd_checklist_base_info_ful_d.ini

@@ -1,12 +1,12 @@
 ; 作者:tianyu.chu
-; 日期:2026-04-30
+; 日期:2026-07-24
 ; 工单:(无)
-; 目的:PG public.checklist_base_info -> Hive raw.raw_prd_checklist_base_info_inc_d
-;       上线 checklist(checklist_base_info),日常增量同步,时间锚点 = update_time
+; 目的:PG public.checklist_base_info -> Hive raw.raw_prd_checklist_base_info_ful_d
+;       上线 checklist(checklist_base_info),维度全量快照日拉(where 1=1,非增量窗),写 dt=T-1;模型见 kb/24 §1.2.2
 ;
-; 配套 DDL:manual/ddl/raw/prd/raw_prd_checklist_base_info_inc_d_create.sql
-; 配套 mask 配置:jobs/raw/prd/raw_prd_checklist_base_info_inc_d.mask.ini
-; 状态:第一版(未与业务库后端对账)
+; 配套 DDL:manual/ddl/raw/prd/raw_prd_checklist_base_info_ful_d_create.sql
+; 配套 mask 配置:jobs/raw/prd/raw_prd_checklist_base_info_ful_d.mask.ini
+; 状态:第一版
 
 [reader]
 dataSource = postgresql/prd-poyee-aliyun
@@ -14,18 +14,18 @@ database = hobby_stocks
 table = public.checklist_base_info
 column = id,code,year,sport,manufacturer,sets,display_name,type,num,use_num,status,remark,create_time,create_by,update_time,update_by,lot,del_flg,act_point_type,parent_id,sets_version,merchant_id,merchant_name,share,share_to_merchant,custom,panini_config_id,import_failure_cause,check_failure_cause,import_status,review_msg,sub_type,title,data_version,sport_blend,display_name_translations
 columnType =
-where = COALESCE(update_time, create_time) >= '${start_date}' AND COALESCE(update_time, create_time) < '${stop_date}'
+where = 1=1
 querySql =
 splitPk = id
 fetchSize = 1000
 
 [writer]
 dataSource = hdfs/prd-hdfs-ha
-path = /user/hive/warehouse/raw.db/raw_prd_checklist_base_info_inc_d/dt=${dt}/
+path = /user/hive/warehouse/raw.db/raw_prd_checklist_base_info_ful_d/dt=${dt}/
 column = id,code,year,sport,manufacturer,sets,display_name,type,num,use_num,status,remark,create_time,create_by,update_time,update_by,lot,del_flg,act_point_type,parent_id,sets_version,merchant_id,merchant_name,share,share_to_merchant,custom,panini_config_id,import_failure_cause,check_failure_cause,import_status,review_msg,sub_type,title,data_version,sport_blend,display_name_translations
 columnType =
 fileType = orc
-fileName = raw_prd_checklist_base_info_inc_d
+fileName = raw_prd_checklist_base_info_ful_d
 encoding = UTF-8
 writeMode = truncate
 fieldDelimiter = \t

+ 4 - 4
jobs/raw/prd/raw_prd_checklist_base_info_inc_d.mask.ini → jobs/raw/prd/raw_prd_checklist_base_info_ful_d.mask.ini

@@ -1,6 +1,6 @@
-; 表名:raw_prd_checklist_base_info_inc_d
-; 配套 sync ini:jobs/raw/prd/raw_prd_checklist_base_info_inc_d.ini
-; 配套 DDL:manual/ddl/raw/prd/raw_prd_checklist_base_info_inc_d_create.sql
+; 表名:raw_prd_checklist_base_info_ful_d
+; 配套 sync ini:jobs/raw/prd/raw_prd_checklist_base_info_ful_d.ini
+; 配套 DDL:manual/ddl/raw/prd/raw_prd_checklist_base_info_ful_d_create.sql
 ; 配套建模文档:kb/22-业务库raw建模.md §8
 ;
 ; 字段决策来源:inbox 3.2.2.5 商品域建模.md(分析师库 ods 草稿) vs PG 业务库实际 schema 对账。
@@ -8,7 +8,7 @@
 ;     method 映射:y → trim、y(hash) → md5、y(sync -month) → month_trunc。
 ;   - 隐性裁:PG 业务库有 / inbox 草稿无的字段(上游变更未通知下游,待与业务库后端对账)。
 ;
-; 2026-04-30 第一版:本表 PG 字段集与 inbox 完全一致,无隐性裁。
+; 本表 PG 字段集与 inbox 完全一致,无隐性裁。
 
 [mask]
 

+ 9 - 9
jobs/raw/prd/raw_prd_panini_checklist_version_config_inc_d.ini → jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.ini

@@ -1,12 +1,12 @@
 ; 作者:tianyu.chu
-; 日期:2026-04-30
+; 日期:2026-07-24
 ; 工单:(无)
-; 目的:PG public.panini_checklist_version_config -> Hive raw.raw_prd_panini_checklist_version_config_inc_d
-;       checklist 版本配置(panini_checklist_version_config),日常增量同步,时间锚点 = update_time
+; 目的:PG public.panini_checklist_version_config -> Hive raw.raw_prd_panini_checklist_version_config_ful_d
+;       checklist 版本配置(panini_checklist_version_config),维度全量快照日拉(where 1=1,非增量窗),写 dt=T-1;模型见 kb/24 §1.2.2
 ;
-; 配套 DDL:manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_inc_d_create.sql
-; 配套 mask 配置:jobs/raw/prd/raw_prd_panini_checklist_version_config_inc_d.mask.ini
-; 状态:第一版(已与业务库后端对账)
+; 配套 DDL:manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_ful_d_create.sql
+; 配套 mask 配置:jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.mask.ini
+; 状态:第一版
 
 [reader]
 dataSource = postgresql/prd-poyee-aliyun
@@ -14,18 +14,18 @@ database = hobby_stocks
 table = public.panini_checklist_version_config
 column = id,panini_list_id,set_version,carmichael_img_type,import_type,report_flag,base_config,base_price,min_reference_price,max_reference_price,num,use_num,status,remark,del_flg,create_time,create_by,update_time,update_by,prop1,prop2,prop3,prop4,tag,display_name,presale_time,max_box,league,issuing_time,issuing_price,display_name_translations,sale_time,open_time
 columnType =
-where = COALESCE(update_time, create_time) >= '${start_date}' AND COALESCE(update_time, create_time) < '${stop_date}'
+where = 1=1
 querySql =
 splitPk = id
 fetchSize = 1000
 
 [writer]
 dataSource = hdfs/prd-hdfs-ha
-path = /user/hive/warehouse/raw.db/raw_prd_panini_checklist_version_config_inc_d/dt=${dt}/
+path = /user/hive/warehouse/raw.db/raw_prd_panini_checklist_version_config_ful_d/dt=${dt}/
 column = id,panini_list_id,set_version,carmichael_img_type,import_type,report_flag,base_config,base_price,min_reference_price,max_reference_price,num,use_num,status,remark,del_flg,create_time,create_by,update_time,update_by,prop1,prop2,prop3,prop4,tag,display_name,presale_time,max_box,league,issuing_time,issuing_price,display_name_translations,sale_time,open_time
 columnType =
 fileType = orc
-fileName = raw_prd_panini_checklist_version_config_inc_d
+fileName = raw_prd_panini_checklist_version_config_ful_d
 encoding = UTF-8
 writeMode = truncate
 fieldDelimiter = \t

+ 4 - 4
jobs/raw/prd/raw_prd_panini_checklist_version_config_inc_d.mask.ini → jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.mask.ini

@@ -1,6 +1,6 @@
-; 表名:raw_prd_panini_checklist_version_config_inc_d
-; 配套 sync ini:jobs/raw/prd/raw_prd_panini_checklist_version_config_inc_d.ini
-; 配套 DDL:manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_inc_d_create.sql
+; 表名:raw_prd_panini_checklist_version_config_ful_d
+; 配套 sync ini:jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.ini
+; 配套 DDL:manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_ful_d_create.sql
 ; 配套建模文档:kb/22-业务库raw建模.md §7
 ;
 ; 字段决策来源:inbox 3.2.2.5 商品域建模.md(分析师库 ods 草稿) vs PG 业务库实际 schema 对账。
@@ -8,7 +8,7 @@
 ;     method 映射:y → trim、y(hash) → md5、y(sync -month) → month_trunc。
 ;   - 隐性裁:PG 业务库有 / inbox 草稿无的字段(上游变更未通知下游,待与业务库后端对账)。
 ;
-; 2026-04-30 已对账:隐性裁字段(display_name_translations / sale_time / open_time)业务方确认保留入仓。
+; 已对账:隐性裁字段(display_name_translations / sale_time / open_time)业务方确认保留入仓。
 
 [mask]
 

+ 9 - 9
jobs/raw/shp/raw_shp_tzy_merchant_info_inc_d.ini → jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.ini

@@ -1,12 +1,12 @@
 ; 作者:tianyu.chu
-; 日期:2026-04-30
+; 日期:2026-07-24
 ; 工单:(无)
-; 目的:PG public.tzy_merchant_info -> Hive raw.raw_shp_tzy_merchant_info_inc_d
-;       商家信息表(tzy_merchant_info),日常增量同步,时间锚点 = update_time
+; 目的:PG public.tzy_merchant_info -> Hive raw.raw_shp_tzy_merchant_info_ful_d
+;       商家信息表(tzy_merchant_info),维度全量快照日拉(where 1=1,非增量窗),写 dt=T-1;模型见 kb/24 §1.2.2
 ;
-; 配套 DDL:manual/ddl/raw/shp/raw_shp_tzy_merchant_info_inc_d_create.sql
-; 配套 mask 配置:jobs/raw/shp/raw_shp_tzy_merchant_info_inc_d.mask.ini
-; 状态:第一版(未与业务库后端对账)
+; 配套 DDL:manual/ddl/raw/shp/raw_shp_tzy_merchant_info_ful_d_create.sql
+; 配套 mask 配置:jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.mask.ini
+; 状态:第一版
 
 [reader]
 dataSource = postgresql/prd-poyee-aliyun
@@ -14,18 +14,18 @@ database = hobby_stocks
 table = public.tzy_merchant_info
 column = id,appid,user_id,username,name,status,remark,create_by,create_time,update_by,update_time,code,fans,sale_num,applet_auth,applet_lives_auth,applet_lives_role,commission_rate,prop_json,sort_rate,check_status,live_type,living_auth_config,goods_sold_num,hot_config,tag_config,mall_role,living_time,express_level,del_flg,group_show_name,main_business,min_card_num,dy_name,current_month_score,member_level,member_name,member_medal,prefer_valid_time,tag_id,show_status,point_type,refund_limit_day,open_act_discount,reputation_score,hide_stock,version,total_sold_num,shipping_cost_config,merchant_group_id
 columnType =
-where = COALESCE(update_time, create_time) >= '${start_date}' AND COALESCE(update_time, create_time) < '${stop_date}'
+where = 1=1
 querySql =
 splitPk = id
 fetchSize = 1000
 
 [writer]
 dataSource = hdfs/prd-hdfs-ha
-path = /user/hive/warehouse/raw.db/raw_shp_tzy_merchant_info_inc_d/dt=${dt}/
+path = /user/hive/warehouse/raw.db/raw_shp_tzy_merchant_info_ful_d/dt=${dt}/
 column = id,appid,user_id,username,name,status,remark,create_by,create_time,update_by,update_time,code,fans,sale_num,applet_auth,applet_lives_auth,applet_lives_role,commission_rate,prop_json,sort_rate,check_status,live_type,living_auth_config,goods_sold_num,hot_config,tag_config,mall_role,living_time,express_level,del_flg,group_show_name,main_business,min_card_num,dy_name,current_month_score,member_level,member_name,member_medal,prefer_valid_time,tag_id,show_status,point_type,refund_limit_day,open_act_discount,reputation_score,hide_stock,version,total_sold_num,shipping_cost_config,merchant_group_id
 columnType =
 fileType = orc
-fileName = raw_shp_tzy_merchant_info_inc_d
+fileName = raw_shp_tzy_merchant_info_ful_d
 encoding = UTF-8
 writeMode = truncate
 fieldDelimiter = \t

+ 4 - 4
jobs/raw/shp/raw_shp_tzy_merchant_info_inc_d.mask.ini → jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.mask.ini

@@ -1,6 +1,6 @@
-; 表名:raw_shp_tzy_merchant_info_inc_d
-; 配套 sync ini:jobs/raw/shp/raw_shp_tzy_merchant_info_inc_d.ini
-; 配套 DDL:manual/ddl/raw/shp/raw_shp_tzy_merchant_info_inc_d_create.sql
+; 表名:raw_shp_tzy_merchant_info_ful_d
+; 配套 sync ini:jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.ini
+; 配套 DDL:manual/ddl/raw/shp/raw_shp_tzy_merchant_info_ful_d_create.sql
 ; 配套建模文档:kb/22-业务库raw建模.md §5
 ;
 ; 字段决策来源:inbox 3.2.2.3 店铺域建模.md(分析师库 ods 草稿) vs PG 业务库实际 schema 对账。
@@ -8,7 +8,7 @@
 ;     method 映射:y → trim、y(hash) → md5、y(sync -month) → month_trunc。
 ;   - 隐性裁:PG 业务库有 / inbox 草稿无的字段(上游变更未通知下游,待与业务库后端对账)。
 ;
-; 2026-04-30 第一版:本表 PG 字段集与 inbox 完全一致,无隐性裁。
+; 本表 PG 字段集与 inbox 完全一致,无隐性裁。
 
 [mask]
 

+ 9 - 9
jobs/raw/usr/raw_usr_app_base_user_inc_d.ini → jobs/raw/usr/raw_usr_app_base_user_ful_d.ini

@@ -1,12 +1,12 @@
 ; 作者:tianyu.chu
-; 日期:2026-04-30
+; 日期:2026-07-24
 ; 工单:(无)
-; 目的:PG public.app_base_user -> Hive raw.raw_usr_app_base_user_inc_d
-;       用户主表(app_base_user),日常增量同步,时间锚点 = update_time
+; 目的:PG public.app_base_user -> Hive raw.raw_usr_app_base_user_ful_d
+;       用户主表(app_base_user),维度全量快照日拉(where 1=1,非增量窗),写 dt=T-1;模型见 kb/24 §1.2.2
 ;
-; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_base_user_inc_d_create.sql
-; 配套 mask 配置:jobs/raw/usr/raw_usr_app_base_user_inc_d.mask.ini
-; 状态:第一版(未与业务库后端对账)
+; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_base_user_ful_d_create.sql
+; 配套 mask 配置:jobs/raw/usr/raw_usr_app_base_user_ful_d.mask.ini
+; 状态:第一版
 
 [reader]
 dataSource = postgresql/prd-poyee-aliyun
@@ -14,7 +14,7 @@ database = hobby_stocks
 table = public.app_base_user
 column = id,appid,point,level,register_channel,status,del_flg,remark,create_by,create_time,update_by,update_time,username,growth_num,code,notify_flag,user_id,notify_type,face_verify,open_psd,refuse_pick_up,prop1,prop2,prop3,prop4,window_open,open_invoice,blacklist,id_card,member_level,member_name,current_month_growth,member_init_flag,member_keep_growth,register_ip_addr,register_addr,login_ip_addr,login_addr,notify_top_show,voice_reminder,vibrate_reminder,consume_amount,order_total_num,open_card_show,effects_type,live_config_json,cancel_verify_num,version,daily_limit,weekly_limit,monthly_limit,live_anonymous
 columnType =
-where = COALESCE(update_time, create_time) >= '${start_date}' AND COALESCE(update_time, create_time) < '${stop_date}'
+where = 1=1
 querySql =
 splitPk = id
 fetchSize = 1000
@@ -24,11 +24,11 @@ id_card = md5
 
 [writer]
 dataSource = hdfs/prd-hdfs-ha
-path = /user/hive/warehouse/raw.db/raw_usr_app_base_user_inc_d/dt=${dt}/
+path = /user/hive/warehouse/raw.db/raw_usr_app_base_user_ful_d/dt=${dt}/
 column = id,appid,point,level,register_channel,status,del_flg,remark,create_by,create_time,update_by,update_time,username,growth_num,code,notify_flag,user_id,notify_type,face_verify,open_psd,refuse_pick_up,prop1,prop2,prop3,prop4,window_open,open_invoice,blacklist,id_card,member_level,member_name,current_month_growth,member_init_flag,member_keep_growth,register_ip_addr,register_addr,login_ip_addr,login_addr,notify_top_show,voice_reminder,vibrate_reminder,consume_amount,order_total_num,open_card_show,effects_type,live_config_json,cancel_verify_num,version,daily_limit,weekly_limit,monthly_limit,live_anonymous
 columnType =
 fileType = orc
-fileName = raw_usr_app_base_user_inc_d
+fileName = raw_usr_app_base_user_ful_d
 encoding = UTF-8
 writeMode = truncate
 fieldDelimiter = \t

+ 4 - 4
jobs/raw/usr/raw_usr_app_base_user_inc_d.mask.ini → jobs/raw/usr/raw_usr_app_base_user_ful_d.mask.ini

@@ -1,6 +1,6 @@
-; 表名:raw_usr_app_base_user_inc_d
-; 配套 sync ini:jobs/raw/usr/raw_usr_app_base_user_inc_d.ini
-; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_base_user_inc_d_create.sql
+; 表名:raw_usr_app_base_user_ful_d
+; 配套 sync ini:jobs/raw/usr/raw_usr_app_base_user_ful_d.ini
+; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_base_user_ful_d_create.sql
 ; 配套建模文档:kb/22-业务库raw建模.md §3
 ;
 ; 字段决策来源:inbox 3.2.2.2 用户域建模.md(分析师库 ods 草稿) vs PG 业务库实际 schema 对账。
@@ -8,7 +8,7 @@
 ;     method 映射:y → trim、y(hash) → md5、y(sync -month) → month_trunc。
 ;   - 隐性裁:PG 业务库有 / inbox 草稿无的字段(上游变更未通知下游,待与业务库后端对账)。
 ;
-; 2026-04-30 第一版:本表 PG 字段集与 inbox 完全一致,无隐性裁。
+; 本表 PG 字段集与 inbox 完全一致,无隐性裁。
 
 [mask]
 

+ 9 - 9
jobs/raw/usr/raw_usr_app_user_cert_info_inc_d.ini → jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.ini

@@ -1,12 +1,12 @@
 ; 作者:tianyu.chu
-; 日期:2026-04-30
+; 日期:2026-07-24
 ; 工单:(无)
-; 目的:PG public.app_user_cert_info -> Hive raw.raw_usr_app_user_cert_info_inc_d
-;       用户证件信息表(app_user_cert_info),日常增量同步,时间锚点 = update_time
+; 目的:PG public.app_user_cert_info -> Hive raw.raw_usr_app_user_cert_info_ful_d
+;       用户证件信息表(app_user_cert_info),维度全量快照日拉(where 1=1,非增量窗),写 dt=T-1;模型见 kb/24 §1.2.2
 ;
-; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_user_cert_info_inc_d_create.sql
-; 配套 mask 配置:jobs/raw/usr/raw_usr_app_user_cert_info_inc_d.mask.ini
-; 状态:第一版(未与业务库后端对账)
+; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_user_cert_info_ful_d_create.sql
+; 配套 mask 配置:jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.mask.ini
+; 状态:第一版
 
 [reader]
 dataSource = postgresql/prd-poyee-aliyun
@@ -14,7 +14,7 @@ database = hobby_stocks
 table = public.app_user_cert_info
 column = id,user_id,cert_birthday,cert_sex,cert_province,cert_city,version,status,del_flag,create_time,update_time
 columnType =
-where = COALESCE(update_time, create_time) >= '${start_date}' AND COALESCE(update_time, create_time) < '${stop_date}'
+where = 1=1
 querySql =
 splitPk = id
 fetchSize = 1000
@@ -24,11 +24,11 @@ cert_birthday = month_trunc
 
 [writer]
 dataSource = hdfs/prd-hdfs-ha
-path = /user/hive/warehouse/raw.db/raw_usr_app_user_cert_info_inc_d/dt=${dt}/
+path = /user/hive/warehouse/raw.db/raw_usr_app_user_cert_info_ful_d/dt=${dt}/
 column = id,user_id,cert_birthday,cert_sex,cert_province,cert_city,version,status,del_flag,create_time,update_time
 columnType =
 fileType = orc
-fileName = raw_usr_app_user_cert_info_inc_d
+fileName = raw_usr_app_user_cert_info_ful_d
 encoding = UTF-8
 writeMode = truncate
 fieldDelimiter = \t

+ 4 - 4
jobs/raw/usr/raw_usr_app_user_cert_info_inc_d.mask.ini → jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.mask.ini

@@ -1,6 +1,6 @@
-; 表名:raw_usr_app_user_cert_info_inc_d
-; 配套 sync ini:jobs/raw/usr/raw_usr_app_user_cert_info_inc_d.ini
-; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_user_cert_info_inc_d_create.sql
+; 表名:raw_usr_app_user_cert_info_ful_d
+; 配套 sync ini:jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.ini
+; 配套 DDL:manual/ddl/raw/usr/raw_usr_app_user_cert_info_ful_d_create.sql
 ; 配套建模文档:kb/22-业务库raw建模.md §4
 ;
 ; 字段决策来源:inbox 3.2.2.2 用户域建模.md(分析师库 ods 草稿) vs PG 业务库实际 schema 对账。
@@ -8,7 +8,7 @@
 ;     method 映射:y → trim、y(hash) → md5、y(sync -month) → month_trunc。
 ;   - 隐性裁:PG 业务库有 / inbox 草稿无的字段(上游变更未通知下游,待与业务库后端对账)。
 ;
-; 2026-04-30 第一版:本表 PG 字段集与 inbox 完全一致,无隐性裁。
+; 本表 PG 字段集与 inbox 完全一致,无隐性裁。
 
 [mask]
 

+ 9 - 9
manual/ddl/ods/prd/ods_prd_checklist_base_info_inc_d_create.sql → manual/ddl/ods/prd/ods_prd_checklist_base_info_ful_d_create.sql

@@ -1,13 +1,13 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-06
--- 工单:<TODO>
--- 目的:<TODO>
--- 状态:[执行]
--- 备注:<TODO>
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度全量快照表(typed),承接 raw ful_d 每日全量;按 dt 分区 ORC,保留近 7 天
+-- 状态:[执行]
+-- 备注:配套 SQL = jobs/ods/prd/ods_prd_checklist_base_info_ful_d.sql;模型见 kb/24 §1.2.2
 
-DROP TABLE IF EXISTS ods.ods_prd_checklist_base_info_inc_d;
+DROP TABLE IF EXISTS ods.ods_prd_checklist_base_info_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_checklist_base_info_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_checklist_base_info_ful_d (
     id                           BIGINT     COMMENT '主键',
     code                         STRING     COMMENT '编码',
     year                         STRING     COMMENT '年份(赛季)',
@@ -46,7 +46,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_checklist_base_info_inc_d (
     display_name_translations    STRING     COMMENT '别名-国际版',
     is_deleted                   BOOLEAN    COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
 )
-COMMENT '上线 checklist'
+COMMENT '上线 checklist(全量快照,保留近 7 天)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/ods.db/ods_prd_checklist_base_info_inc_d';
+LOCATION '/user/hive/warehouse/ods.db/ods_prd_checklist_base_info_ful_d';

+ 53 - 0
manual/ddl/ods/prd/ods_prd_checklist_base_info_ful_m_create.sql

@@ -0,0 +1,53 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度月快照表(typed),每月 1 号存上月月底全量;按 dt 分区 ORC,长期全留
+-- 状态:[待执行]
+-- 备注:配套 SQL = jobs/ods/prd/ods_prd_checklist_base_info_ful_m.sql;模型见 kb/24 §1.2.1;
+--       schema 与 ods ful_d 完全一致(月快照是 ful_d 月底那版的长留副本)
+
+DROP TABLE IF EXISTS ods.ods_prd_checklist_base_info_ful_m;
+
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_checklist_base_info_ful_m (
+    id                           BIGINT     COMMENT '主键',
+    code                         STRING     COMMENT '编码',
+    year                         STRING     COMMENT '年份(赛季)',
+    sport                        STRING     COMMENT '运动类型',
+    manufacturer                 STRING     COMMENT '厂商(发行商)',
+    sets                         STRING     COMMENT '系列',
+    display_name                 STRING     COMMENT '别名(显示名)',
+    type                         STRING     COMMENT '可组类型',
+    num                          BIGINT     COMMENT 'list数量',
+    use_num                      BIGINT     COMMENT '使用次数',
+    status                       BIGINT     COMMENT '状态',
+    remark                       STRING     COMMENT '描述',
+    create_time                  TIMESTAMP  COMMENT '',
+    create_by                    STRING     COMMENT '',
+    update_time                  TIMESTAMP  COMMENT '',
+    update_by                    STRING     COMMENT '',
+    lot                          BIGINT     COMMENT '是否是lot',
+    del_flg                      BIGINT     COMMENT '是否删除:0=正常,1=删除',
+    act_point_type               STRING     COMMENT '额外积分类型,SP等',
+    parent_id                    BIGINT     COMMENT '父id',
+    sets_version                 STRING     COMMENT '系列版本',
+    merchant_id                  BIGINT     COMMENT '商家id',
+    merchant_name                STRING     COMMENT '商家名',
+    share                        BIGINT     COMMENT '是否分享:0=否,1= 是',
+    share_to_merchant            STRING     COMMENT '指定分享到商家',
+    custom                       BIGINT     COMMENT '是否自定义',
+    panini_config_id             BIGINT     COMMENT '系列版本配置id',
+    import_failure_cause         STRING     COMMENT '导入失败原因',
+    check_failure_cause          STRING     COMMENT '检查失败原因',
+    import_status                BIGINT     COMMENT 'checklist文件状态',
+    review_msg                   STRING     COMMENT '审核理由',
+    sub_type                     STRING     COMMENT '可组类型子类型:选随随机用',
+    title                        STRING     COMMENT '拼团checklist描述:',
+    data_version                 STRING     COMMENT '数据版本',
+    sport_blend                  BIGINT     COMMENT '是否单一运动类型:0否',
+    display_name_translations    STRING     COMMENT '别名-国际版',
+    is_deleted                   BOOLEAN    COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
+)
+COMMENT '上线 checklist(月快照,每月 1 号存上月月底,长期全留)'
+PARTITIONED BY (dt STRING)
+STORED AS ORC
+LOCATION '/user/hive/warehouse/ods.db/ods_prd_checklist_base_info_ful_m';

+ 9 - 9
manual/ddl/ods/prd/ods_prd_panini_checklist_version_config_inc_d_create.sql → manual/ddl/ods/prd/ods_prd_panini_checklist_version_config_ful_d_create.sql

@@ -1,13 +1,13 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-06
--- 工单:<TODO>
--- 目的:<TODO>
--- 状态:[执行]
--- 备注:<TODO>
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度全量快照表(typed),承接 raw ful_d 每日全量;按 dt 分区 ORC,保留近 7 天
+-- 状态:[执行]
+-- 备注:配套 SQL = jobs/ods/prd/ods_prd_panini_checklist_version_config_ful_d.sql;模型见 kb/24 §1.2.2
 
-DROP TABLE IF EXISTS ods.ods_prd_panini_checklist_version_config_inc_d;
+DROP TABLE IF EXISTS ods.ods_prd_panini_checklist_version_config_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_panini_checklist_version_config_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_panini_checklist_version_config_ful_d (
     id                           BIGINT         COMMENT '',
     panini_list_id               BIGINT         COMMENT '基础库beseid',
     set_version                  STRING         COMMENT '版本',
@@ -43,7 +43,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_panini_checklist_version_config_
     open_time                    BIGINT         COMMENT '最晚开拆时间',
     is_deleted                   BOOLEAN        COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
 )
-COMMENT 'checklist 版本配置'
+COMMENT 'checklist 版本配置(全量快照,保留近 7 天)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/ods.db/ods_prd_panini_checklist_version_config_inc_d';
+LOCATION '/user/hive/warehouse/ods.db/ods_prd_panini_checklist_version_config_ful_d';

+ 50 - 0
manual/ddl/ods/prd/ods_prd_panini_checklist_version_config_ful_m_create.sql

@@ -0,0 +1,50 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度月快照表(typed),每月 1 号存上月月底全量;按 dt 分区 ORC,长期全留
+-- 状态:[待执行]
+-- 备注:配套 SQL = jobs/ods/prd/ods_prd_panini_checklist_version_config_ful_m.sql;模型见 kb/24 §1.2.1;
+--       schema 与 ods ful_d 完全一致(月快照是 ful_d 月底那版的长留副本)
+
+DROP TABLE IF EXISTS ods.ods_prd_panini_checklist_version_config_ful_m;
+
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_prd_panini_checklist_version_config_ful_m (
+    id                           BIGINT         COMMENT '',
+    panini_list_id               BIGINT         COMMENT '基础库beseid',
+    set_version                  STRING         COMMENT '版本',
+    carmichael_img_type          STRING         COMMENT '卡密图片适用类型:球员,球队,other,all',
+    import_type                  STRING         COMMENT '导入类型',
+    report_flag                  BIGINT         COMMENT '是否强制使用新版报告形式,默认0:非,1:强制',
+    base_config                  STRING         COMMENT '配置',
+    base_price                   DECIMAL(20,4)  COMMENT '指导价: 元/箱',
+    min_reference_price          DECIMAL(20,4)  COMMENT '参考价范围-最小',
+    max_reference_price          DECIMAL(20,4)  COMMENT '参考价范围-最大',
+    num                          BIGINT         COMMENT 'list数量',
+    use_num                      BIGINT         COMMENT '使用次数',
+    status                       BIGINT         COMMENT '状态',
+    remark                       STRING         COMMENT '描述',
+    del_flg                      BIGINT         COMMENT '是否删除:0=正常,1=删除',
+    create_time                  TIMESTAMP      COMMENT '',
+    create_by                    STRING         COMMENT '',
+    update_time                  TIMESTAMP      COMMENT '',
+    update_by                    STRING         COMMENT '',
+    prop1                        STRING         COMMENT '',
+    prop2                        STRING         COMMENT '',
+    prop3                        STRING         COMMENT '',
+    prop4                        STRING         COMMENT '',
+    tag                          STRING         COMMENT '标签,关键字',
+    display_name                 STRING         COMMENT '别名',
+    presale_time                 TIMESTAMP      COMMENT '预售时间开播时间',
+    max_box                      BIGINT         COMMENT '规格限制:最多 盒',
+    league                       STRING         COMMENT '联赛',
+    issuing_time                 TIMESTAMP      COMMENT '发行日期',
+    issuing_price                DECIMAL(20,4)  COMMENT '发行价格:单价元/箱',
+    display_name_translations    STRING         COMMENT '国际版配置 别名',
+    sale_time                    TIMESTAMP      COMMENT '预售上架时间',
+    open_time                    BIGINT         COMMENT '最晚开拆时间',
+    is_deleted                   BOOLEAN        COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
+)
+COMMENT 'checklist 版本配置(月快照,每月 1 号存上月月底,长期全留)'
+PARTITIONED BY (dt STRING)
+STORED AS ORC
+LOCATION '/user/hive/warehouse/ods.db/ods_prd_panini_checklist_version_config_ful_m';

+ 9 - 9
manual/ddl/ods/shp/ods_shp_tzy_merchant_info_inc_d_create.sql → manual/ddl/ods/shp/ods_shp_tzy_merchant_info_ful_d_create.sql

@@ -1,13 +1,13 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-06
--- 工单:<TODO>
--- 目的:<TODO>
--- 状态:[执行]
--- 备注:<TODO>
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度全量快照表(typed),承接 raw ful_d 每日全量;按 dt 分区 ORC,保留近 7 天
+-- 状态:[执行]
+-- 备注:配套 SQL = jobs/ods/shp/ods_shp_tzy_merchant_info_ful_d.sql;模型见 kb/24 §1.2.2
 
-DROP TABLE IF EXISTS ods.ods_shp_tzy_merchant_info_inc_d;
+DROP TABLE IF EXISTS ods.ods_shp_tzy_merchant_info_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_shp_tzy_merchant_info_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_shp_tzy_merchant_info_ful_d (
     id                      BIGINT     COMMENT 'id',
     appid                   STRING     COMMENT '授权程序',
     user_id                 BIGINT     COMMENT '后台用户账号id',
@@ -60,7 +60,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_shp_tzy_merchant_info_inc_d (
     merchant_group_id       BIGINT     COMMENT '集团id',
     is_deleted              BOOLEAN    COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
 )
-COMMENT '商家信息表'
+COMMENT '商家信息表(全量快照,保留近 7 天)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/ods.db/ods_shp_tzy_merchant_info_inc_d';
+LOCATION '/user/hive/warehouse/ods.db/ods_shp_tzy_merchant_info_ful_d';

+ 9 - 9
manual/ddl/ods/usr/ods_usr_app_base_user_inc_d_create.sql → manual/ddl/ods/usr/ods_usr_app_base_user_ful_d_create.sql

@@ -1,13 +1,13 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-06
--- 工单:<TODO>
--- 目的:<TODO>
--- 状态:[执行]
--- 备注:<TODO>
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度全量快照表(typed),承接 raw ful_d 每日全量;按 dt 分区 ORC,保留近 7 天
+-- 状态:[执行]
+-- 备注:配套 SQL = jobs/ods/usr/ods_usr_app_base_user_ful_d.sql;模型见 kb/24 §1.2.2
 
-DROP TABLE IF EXISTS ods.ods_usr_app_base_user_inc_d;
+DROP TABLE IF EXISTS ods.ods_usr_app_base_user_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_app_base_user_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_app_base_user_ful_d (
     id                      BIGINT         COMMENT 'id',
     appid                   STRING         COMMENT '所属程序',
     point                   BIGINT         COMMENT '积分',
@@ -62,7 +62,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_app_base_user_inc_d (
     live_anonymous          BIGINT         COMMENT '直播间匿名观看',
     is_deleted              BOOLEAN        COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
 )
-COMMENT '用户主表'
+COMMENT '用户主表(全量快照,保留近 7 天)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/ods.db/ods_usr_app_base_user_inc_d';
+LOCATION '/user/hive/warehouse/ods.db/ods_usr_app_base_user_ful_d';

+ 9 - 9
manual/ddl/ods/usr/ods_usr_app_user_cert_info_inc_d_create.sql → manual/ddl/ods/usr/ods_usr_app_user_cert_info_ful_d_create.sql

@@ -1,13 +1,13 @@
 -- 作者:tianyu.chu
--- 日期:2026-05-06
--- 工单:<TODO>
--- 目的:<TODO>
--- 状态:[执行]
--- 备注:<TODO>
+-- 日期:2026-07-24
+-- 工单:(无)
+-- 目的:ods 层维度全量快照表(typed),承接 raw ful_d 每日全量;按 dt 分区 ORC,保留近 7 天
+-- 状态:[执行]
+-- 备注:配套 SQL = jobs/ods/usr/ods_usr_app_user_cert_info_ful_d.sql;模型见 kb/24 §1.2.2
 
-DROP TABLE IF EXISTS ods.ods_usr_app_user_cert_info_inc_d;
+DROP TABLE IF EXISTS ods.ods_usr_app_user_cert_info_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_app_user_cert_info_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_app_user_cert_info_ful_d (
     id               BIGINT     COMMENT '',
     user_id          BIGINT     COMMENT '用户id',
     cert_birthday    TIMESTAMP  COMMENT '证件生日',
@@ -21,7 +21,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_app_user_cert_info_inc_d (
     update_time      TIMESTAMP  COMMENT '更新时间',
     is_deleted       BOOLEAN    COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
 )
-COMMENT '用户证件信息表'
+COMMENT '用户证件信息表(全量快照,保留近 7 天)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/ods.db/ods_usr_app_user_cert_info_inc_d';
+LOCATION '/user/hive/warehouse/ods.db/ods_usr_app_user_cert_info_ful_d';

+ 10 - 10
manual/ddl/raw/prd/raw_prd_checklist_base_info_inc_d_create.sql → manual/ddl/raw/prd/raw_prd_checklist_base_info_ful_d_create.sql

@@ -1,15 +1,15 @@
 -- 作者:tianyu.chu
--- 日期:2026-04-30
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的:raw 层贴源增量表,承接 PG public.checklist_base_info 日常增量;全字段 STRING,按 dt 分区 ORC 存储
--- 状态:[执行]
--- 备注:配套 sync ini = jobs/raw/prd/raw_prd_checklist_base_info_inc_d.ini;
---       配套 mask 配置 = jobs/raw/prd/raw_prd_checklist_base_info_inc_d.mask.ini;
---       字段决策溯源 = kb/22-业务库raw建模.md
+-- 目的:raw 层贴源全量快照表,承接 PG public.checklist_base_info 每日全量;全字段 STRING,按 dt 分区 ORC 存储
+-- 状态:[执行]
+-- 备注:配套 sync ini = jobs/raw/prd/raw_prd_checklist_base_info_ful_d.ini;
+--       配套 mask 配置 = jobs/raw/prd/raw_prd_checklist_base_info_ful_d.mask.ini;
+--       维度全量快照模型见 kb/24 §1.2.2;字段决策溯源 = kb/22-业务库raw建模.md §8
 
-DROP TABLE IF EXISTS raw.raw_prd_checklist_base_info_inc_d;
+DROP TABLE IF EXISTS raw.raw_prd_checklist_base_info_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_prd_checklist_base_info_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_prd_checklist_base_info_ful_d (
     id                           STRING COMMENT '主键',
     code                         STRING COMMENT '编码',
     year                         STRING COMMENT '年份(赛季)',
@@ -47,7 +47,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_prd_checklist_base_info_inc_d (
     sport_blend                  STRING COMMENT '是否单一运动类型:0否',
     display_name_translations    STRING COMMENT '别名-国际版'
 )
-COMMENT '上线 checklist'
+COMMENT '上线 checklist(全量快照)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/raw.db/raw_prd_checklist_base_info_inc_d';
+LOCATION '/user/hive/warehouse/raw.db/raw_prd_checklist_base_info_ful_d';

+ 10 - 10
manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_inc_d_create.sql → manual/ddl/raw/prd/raw_prd_panini_checklist_version_config_ful_d_create.sql

@@ -1,15 +1,15 @@
 -- 作者:tianyu.chu
--- 日期:2026-04-30
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的:raw 层贴源增量表,承接 PG public.panini_checklist_version_config 日常增量;全字段 STRING,按 dt 分区 ORC 存储
--- 状态:[执行]
--- 备注:配套 sync ini = jobs/raw/prd/raw_prd_panini_checklist_version_config_inc_d.ini;
---       配套 mask 配置 = jobs/raw/prd/raw_prd_panini_checklist_version_config_inc_d.mask.ini;
---       字段决策溯源 = kb/22-业务库raw建模.md
+-- 目的:raw 层贴源全量快照表,承接 PG public.panini_checklist_version_config 每日全量;全字段 STRING,按 dt 分区 ORC 存储
+-- 状态:[执行]
+-- 备注:配套 sync ini = jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.ini;
+--       配套 mask 配置 = jobs/raw/prd/raw_prd_panini_checklist_version_config_ful_d.mask.ini;
+--       维度全量快照模型见 kb/24 §1.2.2;字段决策溯源 = kb/22-业务库raw建模.md §7
 
-DROP TABLE IF EXISTS raw.raw_prd_panini_checklist_version_config_inc_d;
+DROP TABLE IF EXISTS raw.raw_prd_panini_checklist_version_config_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_prd_panini_checklist_version_config_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_prd_panini_checklist_version_config_ful_d (
     id                           STRING COMMENT '',
     panini_list_id               STRING COMMENT '基础库beseid',
     set_version                  STRING COMMENT '版本',
@@ -44,7 +44,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_prd_panini_checklist_version_config_
     sale_time                    STRING COMMENT '预售上架时间',
     open_time                    STRING COMMENT '最晚开拆时间'
 )
-COMMENT 'checklist 版本配置'
+COMMENT 'checklist 版本配置(全量快照)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/raw.db/raw_prd_panini_checklist_version_config_inc_d';
+LOCATION '/user/hive/warehouse/raw.db/raw_prd_panini_checklist_version_config_ful_d';

+ 10 - 10
manual/ddl/raw/shp/raw_shp_tzy_merchant_info_inc_d_create.sql → manual/ddl/raw/shp/raw_shp_tzy_merchant_info_ful_d_create.sql

@@ -1,15 +1,15 @@
 -- 作者:tianyu.chu
--- 日期:2026-04-30
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的:raw 层贴源增量表,承接 PG public.tzy_merchant_info 日常增量;全字段 STRING,按 dt 分区 ORC 存储
--- 状态:[执行]
--- 备注:配套 sync ini = jobs/raw/shp/raw_shp_tzy_merchant_info_inc_d.ini;
---       配套 mask 配置 = jobs/raw/shp/raw_shp_tzy_merchant_info_inc_d.mask.ini;
---       字段决策溯源 = kb/22-业务库raw建模.md
+-- 目的:raw 层贴源全量快照表,承接 PG public.tzy_merchant_info 每日全量;全字段 STRING,按 dt 分区 ORC 存储
+-- 状态:[执行]
+-- 备注:配套 sync ini = jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.ini;
+--       配套 mask 配置 = jobs/raw/shp/raw_shp_tzy_merchant_info_ful_d.mask.ini;
+--       维度全量快照模型见 kb/24 §1.2.2;字段决策溯源 = kb/22-业务库raw建模.md §5
 
-DROP TABLE IF EXISTS raw.raw_shp_tzy_merchant_info_inc_d;
+DROP TABLE IF EXISTS raw.raw_shp_tzy_merchant_info_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_shp_tzy_merchant_info_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_shp_tzy_merchant_info_ful_d (
     id                      STRING COMMENT 'id',
     appid                   STRING COMMENT '授权程序',
     user_id                 STRING COMMENT '后台用户账号id',
@@ -61,7 +61,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_shp_tzy_merchant_info_inc_d (
     shipping_cost_config    STRING COMMENT '运费配置',
     merchant_group_id       STRING COMMENT '集团id'
 )
-COMMENT '商家信息表'
+COMMENT '商家信息表(全量快照)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/raw.db/raw_shp_tzy_merchant_info_inc_d';
+LOCATION '/user/hive/warehouse/raw.db/raw_shp_tzy_merchant_info_ful_d';

+ 10 - 10
manual/ddl/raw/usr/raw_usr_app_base_user_inc_d_create.sql → manual/ddl/raw/usr/raw_usr_app_base_user_ful_d_create.sql

@@ -1,15 +1,15 @@
 -- 作者:tianyu.chu
--- 日期:2026-04-30
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的:raw 层贴源增量表,承接 PG public.app_base_user 日常增量;全字段 STRING,按 dt 分区 ORC 存储
--- 状态:[执行]
--- 备注:配套 sync ini = jobs/raw/usr/raw_usr_app_base_user_inc_d.ini;
---       配套 mask 配置 = jobs/raw/usr/raw_usr_app_base_user_inc_d.mask.ini;
---       字段决策溯源 = kb/22-业务库raw建模.md
+-- 目的:raw 层贴源全量快照表,承接 PG public.app_base_user 每日全量;全字段 STRING,按 dt 分区 ORC 存储
+-- 状态:[执行]
+-- 备注:配套 sync ini = jobs/raw/usr/raw_usr_app_base_user_ful_d.ini;
+--       配套 mask 配置 = jobs/raw/usr/raw_usr_app_base_user_ful_d.mask.ini;
+--       维度全量快照模型见 kb/24 §1.2.2;字段决策溯源 = kb/22-业务库raw建模.md §3
 
-DROP TABLE IF EXISTS raw.raw_usr_app_base_user_inc_d;
+DROP TABLE IF EXISTS raw.raw_usr_app_base_user_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_usr_app_base_user_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_usr_app_base_user_ful_d (
     id                      STRING COMMENT 'id',
     appid                   STRING COMMENT '所属程序',
     point                   STRING COMMENT '积分',
@@ -63,7 +63,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_usr_app_base_user_inc_d (
     monthly_limit           STRING COMMENT '每月限额',
     live_anonymous          STRING COMMENT '直播间匿名观看'
 )
-COMMENT '用户主表'
+COMMENT '用户主表(全量快照)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/raw.db/raw_usr_app_base_user_inc_d';
+LOCATION '/user/hive/warehouse/raw.db/raw_usr_app_base_user_ful_d';

+ 10 - 10
manual/ddl/raw/usr/raw_usr_app_user_cert_info_inc_d_create.sql → manual/ddl/raw/usr/raw_usr_app_user_cert_info_ful_d_create.sql

@@ -1,15 +1,15 @@
 -- 作者:tianyu.chu
--- 日期:2026-04-30
+-- 日期:2026-07-24
 -- 工单:(无)
--- 目的:raw 层贴源增量表,承接 PG public.app_user_cert_info 日常增量;全字段 STRING,按 dt 分区 ORC 存储
--- 状态:[执行]
--- 备注:配套 sync ini = jobs/raw/usr/raw_usr_app_user_cert_info_inc_d.ini;
---       配套 mask 配置 = jobs/raw/usr/raw_usr_app_user_cert_info_inc_d.mask.ini;
---       字段决策溯源 = kb/22-业务库raw建模.md
+-- 目的:raw 层贴源全量快照表,承接 PG public.app_user_cert_info 每日全量;全字段 STRING,按 dt 分区 ORC 存储
+-- 状态:[执行]
+-- 备注:配套 sync ini = jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.ini;
+--       配套 mask 配置 = jobs/raw/usr/raw_usr_app_user_cert_info_ful_d.mask.ini;
+--       维度全量快照模型见 kb/24 §1.2.2;字段决策溯源 = kb/22-业务库raw建模.md §4
 
-DROP TABLE IF EXISTS raw.raw_usr_app_user_cert_info_inc_d;
+DROP TABLE IF EXISTS raw.raw_usr_app_user_cert_info_ful_d;
 
-CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_usr_app_user_cert_info_inc_d (
+CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_usr_app_user_cert_info_ful_d (
     id               STRING COMMENT '',
     user_id          STRING COMMENT '用户id',
     cert_birthday    STRING COMMENT '证件生日',
@@ -22,7 +22,7 @@ CREATE EXTERNAL TABLE IF NOT EXISTS raw.raw_usr_app_user_cert_info_inc_d (
     create_time      STRING COMMENT '创建时间',
     update_time      STRING COMMENT '更新时间'
 )
-COMMENT '用户证件信息表'
+COMMENT '用户证件信息表(全量快照)'
 PARTITIONED BY (dt STRING)
 STORED AS ORC
-LOCATION '/user/hive/warehouse/raw.db/raw_usr_app_user_cert_info_inc_d';
+LOCATION '/user/hive/warehouse/raw.db/raw_usr_app_user_cert_info_ful_d';