ods_shp_tzy_merchant_info_inc_d.sql 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. -- 作者:tianyu.chu
  2. -- 日期:2026-05-07
  3. -- 工单:(无)
  4. -- 目的:raw → ods 增量同步(ADR-03);双源 union (raw dt=${dt} + raw dt=${pdt}) + DATE_FORMAT(COALESCE(update_time, create_time))=${dt} 过滤 + (id, ods_dt) dedupe + 动态分区写入
  5. -- 状态:[草案]
  6. -- 备注:sched=T,${dt}=业务日 T-1(yyyyMMdd),${pdt}=T-2
  7. INSERT OVERWRITE TABLE ods.ods_shp_tzy_merchant_info_inc_d PARTITION (dt)
  8. SELECT
  9. CAST(id AS BIGINT) AS id,
  10. appid AS appid,
  11. CAST(user_id AS BIGINT) AS user_id,
  12. username AS username,
  13. name AS name,
  14. CAST(status AS BIGINT) AS status,
  15. remark AS remark,
  16. create_by AS create_by,
  17. CAST(create_time AS TIMESTAMP) AS create_time,
  18. update_by AS update_by,
  19. CAST(update_time AS TIMESTAMP) AS update_time,
  20. code AS code,
  21. CAST(fans AS BIGINT) AS fans,
  22. CAST(sale_num AS BIGINT) AS sale_num,
  23. CAST(applet_auth AS BOOLEAN) AS applet_auth,
  24. CAST(applet_lives_auth AS BOOLEAN) AS applet_lives_auth,
  25. applet_lives_role AS applet_lives_role,
  26. commission_rate AS commission_rate,
  27. prop_json AS prop_json,
  28. CAST(sort_rate AS BIGINT) AS sort_rate,
  29. CAST(check_status AS BIGINT) AS check_status,
  30. live_type AS live_type,
  31. living_auth_config AS living_auth_config,
  32. CAST(goods_sold_num AS BIGINT) AS goods_sold_num,
  33. hot_config AS hot_config,
  34. tag_config AS tag_config,
  35. CAST(mall_role AS BIGINT) AS mall_role,
  36. living_time AS living_time,
  37. express_level AS express_level,
  38. CAST(del_flg AS BIGINT) AS del_flg,
  39. group_show_name AS group_show_name,
  40. main_business AS main_business,
  41. CAST(min_card_num AS BIGINT) AS min_card_num,
  42. dy_name AS dy_name,
  43. CAST(current_month_score AS DOUBLE) AS current_month_score,
  44. CAST(member_level AS BIGINT) AS member_level,
  45. member_name AS member_name,
  46. member_medal AS member_medal,
  47. CAST(prefer_valid_time AS TIMESTAMP) AS prefer_valid_time,
  48. tag_id AS tag_id,
  49. CAST(show_status AS BIGINT) AS show_status,
  50. point_type AS point_type,
  51. CAST(refund_limit_day AS BIGINT) AS refund_limit_day,
  52. CAST(open_act_discount AS BIGINT) AS open_act_discount,
  53. CAST(reputation_score AS BIGINT) AS reputation_score,
  54. CAST(hide_stock AS BIGINT) AS hide_stock,
  55. CAST(version AS BIGINT) AS version,
  56. CAST(total_sold_num AS BIGINT) AS total_sold_num,
  57. shipping_cost_config AS shipping_cost_config,
  58. CAST(merchant_group_id AS BIGINT) AS merchant_group_id,
  59. CASE WHEN del_flg = '1' THEN TRUE ELSE FALSE END AS is_deleted,
  60. ods_dt AS dt
  61. FROM (
  62. SELECT *,
  63. DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') AS ods_dt,
  64. ROW_NUMBER() OVER (
  65. PARTITION BY id, DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd')
  66. ORDER BY COALESCE(NULLIF(update_time, ''), create_time) DESC
  67. ) AS rn
  68. FROM raw.raw_shp_tzy_merchant_info_inc_d
  69. WHERE dt IN ('${dt}', '${pdt}')
  70. AND DATE_FORMAT(COALESCE(NULLIF(update_time, ''), create_time), 'yyyyMMdd') = '${dt}'
  71. ) t
  72. WHERE t.rn = 1;