作者:杨考 微信 : devin_cn_hd_09_16 欢迎讨论问题
在每次收到阅读者添加微信并开始交流讨论,心理是无比的激动。
一. 背景介绍:
入职新公司第一周接手日志入库的需求,python工程,边学边开发。终于完成了。第二周腾出人力,开始接手用户筛选系统。
用户筛选系统耗时2周+3天完成
这短短的18天中,也是入职后的第2周的项目经历。时间紧张到让人怀疑人生,但是最终在指定时间交付项目。感谢老基友秦峰的支持。
二. 准备工作:
1、熟悉需求,产品需求还没有完全定下来
2、用户维度数据、订单维度数据提取,校验数据准确性
3、熟悉ODPS的操作手册
4、秦峰帮搭建了maven环境、使用bootstrap写了前端页面的框架
5、一边学习java,一边开发
6、瞬间体验多种语言(PHP、JavaScript、java 和 python)
7、感受无比大的压力,谁让咱是架构师,一边沟通需求,一边开始准备数据和项目
三. 系统框架:
四. 前端操作页面:
1. 用户筛选系统【用户维度属性】
2. 用户筛选系统【订单维度属性】
3. 用户仓库
4. 用户推荐反馈跟踪
五. 甩锅环节
本人是9年通信业人士,中途转入互联网,非全栈工程师,面对这样的作品,也是感谢运营同学和产品同学的谅解,内部系统。很粗糙,非常粗糙。开发时间紧是一方面,前端功底是另一方面 ( :
六. 项目重点介绍:
系统1中: 准确性 [就地取材,使用PHP处理数据]
数据准确性很重要,不丢数据,数据准确
系统2中:实时 [为了对接ODPS,使用java实时向ODPS同步数据]
实时长传数据,要有任务监控,单台单任务运行
系统3中:烧脑 [操作界面,后端PHP + 前端js]
有关前端的逻辑组合,伤了不少脑细胞,同时关于RFM的计算,也是最后采用了分段折中,即定时更新分段数值的方法来完成的。
系统4中: 实时和费用权衡 [ODPS查询使用java]
ODPS只插入,不能修改数据,一堆冗余数据,每次操作前,都是先过滤出每条记录的最新数据,然后生成中间表,再基于中间表进行查询。这样满足了实时查询的需求。
之后由于每次生成中间表影响查询速度,且每次查询数量比较大,会产生一定的数据费用,这里就采取了每日查询时,先生成一个当日的临时表,后面的查询,不需要实时数据,则可以基于今日的临时表进行查询,如果需要实时数据,先删除当日的临时表,再进行查询。
七. 总结:
多余的总结不说了,曾经难忘的经历,留下来的都是满满怀念。
撰写此文,打卡留念。