ods_usr_traces_apd_d_create.sql 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. -- 作者:tianyu.chu
  2. -- 日期:2026-06-10
  3. -- 工单:(无)
  4. -- 目的:埋点 raw → ods,解析脱敏后 _source JSON:公共属性 typed 拍平成列 + params 半结构化(params_json);按文件日 dt 分区(≈事件日)
  5. -- 状态:[待执行]
  6. -- 备注:埋点 ods 特例——非业务库类型恢复,是 JSON 解析(kb/20 §0.2 旁);params 不 per-event 拍平(event explosion,见 ADR-13);
  7. -- web 端字段(platform/merchantId/title 等)+ lib_detail 不拍平,回查走 raw raw_json;配套解析 SQL jobs/ods/usr/ods_usr_traces_apd_d.sql;
  8. -- dt = 文件/上传日不归位(N=1):实测 ~99.4% 事件日=文件日,~0.6% 迟到/未来小偏差按当天落,业务允许(分布见 workspace/20260610/埋点迟到漂移分布-窗口决策.md)
  9. DROP TABLE IF EXISTS ods.ods_usr_traces_apd_d;
  10. CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_traces_apd_d (
  11. es_id STRING COMMENT 'ES 文档 _id,去重键',
  12. event_name STRING COMMENT '事件名(_source.event)',
  13. evt_type STRING COMMENT '事件类型(track/track_signup)',
  14. event_time TIMESTAMP COMMENT '事件发生时间(_source.time 毫秒转,东八区)',
  15. flush_time TIMESTAMP COMMENT 'SDK 上报时间(_source.flushTime)',
  16. login_id STRING COMMENT '登录用户 ID(未登录=0)',
  17. distinct_id STRING COMMENT 'SDK 唯一标识',
  18. anonymous_id STRING COMMENT '匿名设备 UUID',
  19. user_id STRING COMMENT '业务用户 ID(properties.userId)',
  20. user_name STRING COMMENT '用户昵称',
  21. user_lvl STRING COMMENT '用户等级',
  22. lib STRING COMMENT 'SDK 平台(iOS/Android/js)',
  23. lib_version STRING COMMENT 'SDK 版本',
  24. lib_method STRING COMMENT '埋点触发方式',
  25. app_id STRING COMMENT 'App 包名',
  26. app_name STRING COMMENT 'App 名称',
  27. app_version STRING COMMENT 'App 版本',
  28. wgt_version STRING COMMENT '热更新版本',
  29. os STRING COMMENT '操作系统',
  30. os_version STRING COMMENT '系统版本',
  31. manufacturer STRING COMMENT '设备制造商',
  32. brand STRING COMMENT '设备品牌(Android)',
  33. model STRING COMMENT '设备型号',
  34. device_id STRING COMMENT '设备 ID',
  35. network_type STRING COMMENT '网络类型',
  36. carrier STRING COMMENT '运营商',
  37. wifi BOOLEAN COMMENT '是否 WIFI',
  38. screen_width BIGINT COMMENT '屏幕宽',
  39. screen_height BIGINT COMMENT '屏幕高',
  40. timezone_offset BIGINT COMMENT '时区偏移分钟(×-1)',
  41. is_first_day BOOLEAN COMMENT '是否首日',
  42. is_first_time BOOLEAN COMMENT '是否首次启动($AppStart)',
  43. resume_from_background BOOLEAN COMMENT '是否后台恢复($AppStart)',
  44. event_duration BIGINT COMMENT '事件时长($AppEnd)',
  45. params_json STRING COMMENT '事件专属 params(脱敏后 JSON,不 per-event 拍平)'
  46. )
  47. COMMENT '埋点 ods 层(解析拍平,params 半结构化)'
  48. PARTITIONED BY (dt STRING COMMENT 'yyyymmdd,文件/上传日(东八区,≈事件日 99.4%,迟到/未来小偏差按当天落)')
  49. STORED AS ORC
  50. LOCATION '/user/hive/warehouse/ods.db/ods_usr_traces_apd_d';