20260510_dim_trd_card_group_ful_d_init.sql 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. -- 作者:tianyu.chu
  2. -- 日期:2026-05-10
  3. -- 工单:(无)
  4. -- 目的:dim_trd_card_group_ful_d 初始化(kb/28 §1.3 + ADR-08):
  5. -- 扫 ods 历史分区 dt < ${dt} + ROW_NUMBER 取每 pk 最新版本,
  6. -- sport→category 数据脏点清洗(mlb→MLB / Boxing→UFC / other→NULL,kb/28 §3.2),
  7. -- 落 dim dt=${pdt} 单分区
  8. -- 状态:[待执行]
  9. -- 备注:首次上线 init/sche 同日跑(sched=T),${dt}=T-1,${pdt}=T-2;
  10. -- init 灌 dim.dt=${pdt} 作 sche 首次依赖的"昨日 dim";扫 ods 范围 dt < ${dt}(即 dt <= ${pdt});
  11. -- 跑一次后由 jobs/dim/trd/dim_trd_card_group_ful_d.sql 接管日常增量
  12. INSERT OVERWRITE TABLE dim.dim_trd_card_group_ful_d PARTITION (dt='${pdt}')
  13. SELECT
  14. cg.id AS group_info_id,
  15. cg.code AS code,
  16. cg.appid AS appid,
  17. cg.name AS name,
  18. cg.display_name AS display_name,
  19. cg.group_show_name AS group_show_name,
  20. cg.merchant_id AS merchant_id,
  21. cg.mer_name AS mer_name,
  22. cg.list_id AS list_id,
  23. cg.list_code AS list_code,
  24. cg.panini_list_id AS panini_list_id,
  25. CASE
  26. WHEN cg.sport = 'mlb' THEN 'MLB'
  27. WHEN cg.sport = 'Boxing' THEN 'UFC'
  28. WHEN cg.sport = 'other' THEN NULL
  29. ELSE cg.sport
  30. END AS category,
  31. cg.year AS year,
  32. cg.manufacturer AS manufacturer,
  33. cg.sets AS sets,
  34. cg.type AS type,
  35. cg.sub_type AS sub_type,
  36. cg.random_type AS random_type,
  37. cg.specs AS specs,
  38. cg.total_price AS total_price_cny,
  39. cg.unit_price AS unit_price_cny,
  40. cg.act_price AS act_price_cny,
  41. cg.copies AS copies,
  42. cg.total_num AS total_num,
  43. cg.weight AS weight,
  44. cg.order_quota_min AS order_quota_min,
  45. cg.order_quota_max AS order_quota_max,
  46. cg.user_quota_max AS user_quota_max,
  47. cg.min_card_num AS min_card_num,
  48. cg.mix_copies AS mix_copies,
  49. cg.change_type AS change_type,
  50. cg.status AS status,
  51. cg.sold_copies AS sold_copies,
  52. cg.real_sold_num AS real_sold_num,
  53. cg.sold_end_time AS sold_end_time,
  54. cg.finished_time AS finished_time,
  55. cg.release_time AS release_time,
  56. cg.start_time AS start_time,
  57. cg.cycle AS cycle,
  58. cg.group_full_time AS group_full_time,
  59. cg.review_hold_time AS review_hold_time,
  60. cg.review_approval_time AS review_approval_time,
  61. cg.review_num AS review_num,
  62. cg.confirm_send_time AS confirm_send_time,
  63. cg.close_payment_time AS close_payment_time,
  64. cg.close_payment_status AS close_payment_status,
  65. cg.group_sets_no AS group_sets_no,
  66. cg.live_create_time AS live_create_time,
  67. cg.live_start_time AS live_start_time,
  68. cg.live_end_time AS live_end_time,
  69. cg.report_start_time AS report_start_time,
  70. cg.report_end_time AS report_end_time,
  71. cg.report_review_num AS report_review_num,
  72. cg.report_review_first_time AS report_review_first_time,
  73. cg.report_review_end_time AS report_review_end_time,
  74. cg.act_id AS act_id,
  75. cg.act_type AS act_type,
  76. cg.act_point_type AS act_point_type,
  77. cg.free_flag AS free_flag,
  78. cg.exclusive AS exclusive,
  79. cg.has_bg AS has_bg,
  80. cg.team_first AS team_first,
  81. cg.use_member_discount AS use_member_discount,
  82. cg.use_coupon AS use_coupon,
  83. cg.user_level AS user_level,
  84. cg.merchant_open AS merchant_open,
  85. cg.merchant_sort AS merchant_sort,
  86. cg.custom AS custom,
  87. cg.gift_card_id AS gift_card_id,
  88. cg.open_card AS open_card,
  89. cg.goods_type AS goods_type,
  90. cg.point_rate AS point_rate,
  91. cg.point_max AS point_max,
  92. cg.point_min AS point_min,
  93. cg.point_type AS point_type,
  94. cg.payment_method AS payment_method,
  95. cg.payment_total_price AS payment_total_price_cny,
  96. cg.payment_commission AS payment_commission_cny,
  97. cg.payment_finished_price AS payment_finished_price_cny,
  98. cg.payment_remain_price AS payment_remain_price_cny,
  99. cg.payment_online_price AS payment_online_price_cny,
  100. cg.commission_rate AS commission_rate,
  101. cg.hot_type AS hot_type,
  102. cg.report_flag AS report_flag,
  103. cg.banner_end_time AS banner_end_time,
  104. cg.waring_type AS waring_type,
  105. cg.compensation_status AS compensation_status,
  106. cg.reviewmsg AS reviewmsg,
  107. cg.review_account AS review_account,
  108. cg.`lock` AS `lock`,
  109. cg.marketing_info AS marketing_info,
  110. cg.msg AS msg,
  111. cg.title AS title,
  112. cg.remark AS remark,
  113. cg.create_time AS create_time,
  114. cg.update_time AS last_update_time,
  115. cg.del_time AS del_time,
  116. cg.is_deleted AS is_deleted,
  117. CURRENT_TIMESTAMP() AS etl_time
  118. FROM (
  119. SELECT *
  120. FROM (
  121. SELECT *,
  122. ROW_NUMBER() OVER (
  123. PARTITION BY id
  124. ORDER BY COALESCE(update_time, create_time) DESC
  125. ) AS rn
  126. FROM ods.ods_trd_card_group_info_inc_d
  127. WHERE dt < '${dt}'
  128. ) t
  129. WHERE t.rn = 1
  130. ) cg;