构建饿了么销售端与商家端的数据分析服务
前介
今年8月,销售侧需要开始进行数据作战,我在支援销售侧业务的时候发现数据分析服务现状比较低效&不准,便和leader谈了我的想法与设计,自动请缨干这个事情,最后和总监过下方案,做一个通用的数据服务出来。这个项目我组了个小团队做到11月份,因为组织架构变更问题与领域拆分,业务移交到其他组。年底总结,写下此文,记下当时做事的思路与历程。
现状
每一个数据分析页面的需求过来,都需要经历开发在数据仓库中聚合各种数据推到mysql,在写接口读mysql数据。然后前后端联调,测试验收。
存在两个问题:1.重复开发;2.数据口径不一致;3.每次都新写代码,代码越多bug越多,数据测试也不过关。
需求收集
销售侧各个层级的经理与销售人员需要看其销售数据,基本需求如下:
查看维度:组织架构、BD、店铺、网格
时间维度:昨天、前天、最近一周、上周、本月、上月、最近30天、前30天
业务筛选聚合维度:店铺的各种标签
面临问题
需求多——数据作战是重点
数据量大,算60天订单,sum类聚合运算需提前算好
标签组合太多
解决办法
分析产品重点
与产品确认好聚合维度,固定住可以不变的
各种标签筛选、排序、算商户数都可以支持
技术方案
与ER建模方法不同,数据建模不以实体为要,以维度为核心,进行维度建模。
1.根据业务定好维度,设计星形模型(即维度模型),做到算的快可复用
2.针对服务层做语义化接口,类似于ES client API。
如何去做
先搭框架
以订单管理的需求,在一个迭代先将以下部分搭起来并上线。
- 大数据部分计算的框架
- 语义化查询服务
小步迭代
- 数据迭代增加聚合维度与标签
- 迁移旧的数据表
- ES搜索
- 优化计算时间(BigTable思想,空间换时间)
- 优化推送时间(拆任务、SLA)
未完成部分
数据看板配置化
解释:通过配置即可看到各种数据面板
实现:语义化接口之上增加:配置服务、图表渲染引擎(基于可视化编码的图形语法)
G2:蚂蚁开源,上手简单
ECharts:百度开源已久,bug修的差不多了
Data-Driven Documents:D3是图形化top级项目,更强大但是学习曲线陡。
数据产品配置化
解释:对于数据的各种产品花样,可以通过配置完成,包括从取数逻辑到渲染。数据看板配置化是其真子集。
实现:上述基础上,与arena.layout结合,每种图表都是Module,服务端控制。做到数据面板千人千面。(此处当申请专利)
总结
业务压力大,技术难度不算大,做好需要好的视野。
This work is licensed under a CC A-S 4.0 International License.