一、参与并主导完成TB级实时出行服务框架的搭建
导致反压的原因:频繁访问多种外部组件
解决方式:使用广播流的方式降低,redis和mysql的压力
数据接入、解析、赋值
多种维度数据生成的广播流
维度属性赋值使用全量redis/mysql+增量kafka的方式,保证数据即时更新
双流join
射线法,判断点是否在不规则多边形内
唯一标识判断、赋值,对一段时间内的连续行为,添加相同的标识,类似session id
事件时间的超时判断及系统时间的超时判断
指标计算
使用类AggregatingState的实现,优化代码
解决shuffle中乱序导致的状态数据持续累计变大,最终导致的任务失败
#一、主导重构离线数据仓库体系建设
此处并未使用调度系统,单纯依赖linux的crontab功能
数据采集:定时采集,入库配置化。
数据分层:利用 ONE-DATA 理念对数仓分层设计ODS,DWD,DWS,ADS,并基于 json 映射机制创建外部表,提高了了数据源结构的灵活性。
监控告警:python开发监控脚本工具,引入到日常sql任务中。