网约车数据产品实战一:设计数据体系
一、如何着手
初接到任务的时候,没有0-1数据产品经验的我还是很无从下手的。但静下心来仔细思考数据产品的本质,无外乎两件事情:提取指标、辅助决策。
高效、精准地提取出业务指标是数据产品的根基,因为巧妇难为无米之炊。而辅助决策则需要依赖一些可视化工具,市面上有很多:Tableau、PowerBi、FineBi等等,我们最终选择微软提供的PowerBi为我们提供指标可视化能力,接下来的难点便在于提取数据指标了。
二、从目标开始
数据体系作为指标体系的前置条件,其架构的稳定性和延展性决定了输出的指标数据能否满足业务方的各类应用场景,能否适应业务的横向拓展。以下罗列几点数据体系的设计目标:
- 「时效性」需获取高时效性的今日数据,用于生成实时指标,应用于看板、仪表盘等;
- 「不可变」历史数据(指今日之前的)产生的指标一经生成,不可更改。(由于实际业务场景中可能存在系统脏数据、接口超时等,造成业务原始数据变动。如在不同时间生成同一项指标,可能出现指标数据不吻合,带来财务核算的错误风险)
- 「灵活性」高速发展的业务形态会带来各种各样的统计指标,为此数据体系必须拥有较强的灵活性,将指标提取和指标数据读取进行解耦,避免牵一发而动全身。
三、确定整体架构
整体架构如下图所示(重点关注指标提取层):
指标分为两大板块:
1. 实时指标
定义:今日实时产生的指标数据,如今日发单量、今日完单量、今日出车司机数等等。指标要求最少5秒一次刷新。
用途:制作实时数据仪表盘、战术大盘等。
方法:SQL语句提取指标,各个指标数据组装为json格式,每隔2-3秒post到PowerBi的流式数据集api。
2. 汇总指标
定义:包含今日和历史的业务指标,如昨日注册司机数、昨日活跃司机数、今日出车司机数等等。「汇总指标」包含了「今日指标」。
用途:制作多维度指标图表,如折线图、饼状图、组合图、核心指标表等。
方法:
- 今日的业务指标通过python中的pymysql模块进行读库和组装指标数据。一些简易指标可以直接通过SQL语句获取(同步上文中的实时指标)
- 历史的业务指标为每日凌晨2点,通过python脚本抓取前一日指标数据,存储到「周期性汇总指标表」,每条指标一行数据(如颗粒度为半小时的完单数指标,最终落在指标表中为48条数据)。后续通过SQL语句即可通过指标表读取到指标数据。
汇总指标中的历史业务指标是整个数据体系中最关键的部分,所有业务数据最终都会形成指标落到「周期性汇总指标表」
四、总结与探讨
几点经验
1、合理利用异步思想:本次历史业务指标的设计思路即为异步思想,将“指标提取”和“指标数据读取”进行解耦并异步处理;
2、领域间保持一致性维度:各领域的业务数据(如财务、资产、运营、客服等),虽数据源不同,但大多数可以通过相同的维度进行打通关联。如时间、城市等。
探讨几个问题
1、每天凌晨2点生产昨日的数据指标,意味着0~2点存在两个小时的空档期,此期间无法获取前一日的指标数据(因为获取实时指标和今日指标的脚本亦不会获取昨日数据)
2、文中的数据体系通过怎样的低成本优化,可以支撑更复杂的应用场景,如用户标签系统、运营策略实验系统等。(后续将更新专题文章探讨这一课题)
作者:Sean,公众号:SeanZ的自我修养
本文作者 @Sean
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!