ods_usr_traces_apd_d_create.sql 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. DROP TABLE IF EXISTS ods.ods_usr_traces_apd_d;
  9. CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_usr_traces_apd_d (
  10. es_id STRING COMMENT 'ES 文档 _id,去重键',
  11. event_name STRING COMMENT '事件名(_source.event)',
  12. evt_type STRING COMMENT '事件类型(track/track_signup)',
  13. event_time TIMESTAMP COMMENT '事件发生时间(_source.time 毫秒转,东八区)',
  14. flush_time TIMESTAMP COMMENT 'SDK 上报时间(_source.flushTime)',
  15. login_id STRING COMMENT '登录用户 ID(未登录=0)',
  16. distinct_id STRING COMMENT 'SDK 唯一标识',
  17. anonymous_id STRING COMMENT '匿名设备 UUID',
  18. user_id STRING COMMENT '业务用户 ID(properties.userId)',
  19. user_name STRING COMMENT '用户昵称',
  20. user_lvl STRING COMMENT '用户等级',
  21. lib STRING COMMENT 'SDK 平台(iOS/Android/js)',
  22. lib_version STRING COMMENT 'SDK 版本',
  23. lib_method STRING COMMENT '埋点触发方式',
  24. app_id STRING COMMENT 'App 包名',
  25. app_name STRING COMMENT 'App 名称',
  26. app_version STRING COMMENT 'App 版本',
  27. wgt_version STRING COMMENT '热更新版本',
  28. os STRING COMMENT '操作系统',
  29. os_version STRING COMMENT '系统版本',
  30. manufacturer STRING COMMENT '设备制造商',
  31. brand STRING COMMENT '设备品牌(Android)',
  32. model STRING COMMENT '设备型号',
  33. device_id STRING COMMENT '设备 ID',
  34. network_type STRING COMMENT '网络类型',
  35. carrier STRING COMMENT '运营商',
  36. wifi BOOLEAN COMMENT '是否 WIFI',
  37. screen_width BIGINT COMMENT '屏幕宽',
  38. screen_height BIGINT COMMENT '屏幕高',
  39. timezone_offset BIGINT COMMENT '时区偏移分钟(×-1)',
  40. is_first_day BOOLEAN COMMENT '是否首日',
  41. is_first_time BOOLEAN COMMENT '是否首次启动($AppStart)',
  42. resume_from_background BOOLEAN COMMENT '是否后台恢复($AppStart)',
  43. event_duration BIGINT COMMENT '事件时长($AppEnd)',
  44. params_json STRING COMMENT '事件专属 params(脱敏后 JSON,不 per-event 拍平)'
  45. )
  46. COMMENT '埋点 ods 层(解析拍平,params 半结构化)'
  47. PARTITIONED BY (dt STRING COMMENT 'yyyymmdd,事件日')
  48. STORED AS ORC
  49. LOCATION '/user/hive/warehouse/ods.db/ods_usr_traces_apd_d';