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