ods_usr_app_base_user_ful_d.sql 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. -- 作者:tianyu.chu
  2. -- 日期:2026-07-24
  3. -- 工单:(无)
  4. -- 目的:raw → ods 全量快照 —— 读 raw dt=${dt} 全量(一行一 id = 当前态),CAST 落 ods ful_d dt=${dt}
  5. -- 状态:[草案]
  6. -- 备注:sched=T,${dt}=T-1;维度全量快照模型(无 seed / 无 merge / 无 dedup,PG id 唯一)见 kb/24 §1.2.2;
  7. -- 保留近 7 天:INSERT 前 DROP 掉 ${wdt}=T-8 一个分区,raw / ods 一并 drop(raw 的 drop 也收进本 ods
  8. -- 任务,DataX ini 不便 drop);DS 传 wdt=$[yyyyMMdd-8],手动跑 -p wdt=<T-8>;
  9. -- 静态分区写入 PARTITION(dt='${dt}'):源=raw、目标=ods,不同表无读写冲突。
  10. ALTER TABLE raw.raw_usr_app_base_user_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
  11. ALTER TABLE ods.ods_usr_app_base_user_ful_d DROP IF EXISTS PARTITION (dt='${wdt}');
  12. INSERT OVERWRITE TABLE ods.ods_usr_app_base_user_ful_d PARTITION (dt='${dt}')
  13. SELECT
  14. CAST(id AS BIGINT) AS id,
  15. appid AS appid,
  16. CAST(point AS BIGINT) AS point,
  17. CAST(level AS BIGINT) AS level,
  18. register_channel AS register_channel,
  19. CAST(status AS BIGINT) AS status,
  20. CAST(del_flg AS BIGINT) AS del_flg,
  21. remark AS remark,
  22. create_by AS create_by,
  23. CAST(create_time AS TIMESTAMP) AS create_time,
  24. update_by AS update_by,
  25. CAST(update_time AS TIMESTAMP) AS update_time,
  26. username AS username,
  27. CAST(growth_num AS BIGINT) AS growth_num,
  28. code AS code,
  29. CAST(notify_flag AS BIGINT) AS notify_flag,
  30. CAST(user_id AS BIGINT) AS user_id,
  31. notify_type AS notify_type,
  32. CAST(face_verify AS BIGINT) AS face_verify,
  33. CAST(open_psd AS BIGINT) AS open_psd,
  34. CAST(refuse_pick_up AS BIGINT) AS refuse_pick_up,
  35. prop1 AS prop1,
  36. prop2 AS prop2,
  37. prop3 AS prop3,
  38. prop4 AS prop4,
  39. CAST(window_open AS BIGINT) AS window_open,
  40. CAST(open_invoice AS BIGINT) AS open_invoice,
  41. CAST(blacklist AS BIGINT) AS blacklist,
  42. id_card AS id_card,
  43. CAST(member_level AS BIGINT) AS member_level,
  44. member_name AS member_name,
  45. CAST(current_month_growth AS BIGINT) AS current_month_growth,
  46. CAST(member_init_flag AS BIGINT) AS member_init_flag,
  47. CAST(member_keep_growth AS BIGINT) AS member_keep_growth,
  48. register_ip_addr AS register_ip_addr,
  49. register_addr AS register_addr,
  50. login_ip_addr AS login_ip_addr,
  51. login_addr AS login_addr,
  52. CAST(notify_top_show AS BIGINT) AS notify_top_show,
  53. CAST(voice_reminder AS BIGINT) AS voice_reminder,
  54. CAST(vibrate_reminder AS BIGINT) AS vibrate_reminder,
  55. CAST(consume_amount AS DECIMAL(20,4)) AS consume_amount,
  56. CAST(order_total_num AS BIGINT) AS order_total_num,
  57. CAST(open_card_show AS BIGINT) AS open_card_show,
  58. effects_type AS effects_type,
  59. live_config_json AS live_config_json,
  60. CAST(cancel_verify_num AS BIGINT) AS cancel_verify_num,
  61. CAST(version AS BIGINT) AS version,
  62. CAST(daily_limit AS BIGINT) AS daily_limit,
  63. CAST(weekly_limit AS BIGINT) AS weekly_limit,
  64. CAST(monthly_limit AS BIGINT) AS monthly_limit,
  65. CAST(live_anonymous AS BIGINT) AS live_anonymous,
  66. CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted
  67. FROM raw.raw_usr_app_base_user_ful_d
  68. WHERE dt = '${dt}';