Hi all:
目前财务系统和大数据都提供数据统计服务. 偶有一些数据统计错误的问题,往往都是口径丢失或者不一致.
主要原因如下:
1. (沟通问题)前台业务新增业务类型没有通知统计方.
2. (代码变更问题)通知了,统计方没有及时修改或者忘记修改对应统计代码或sql.
之前强调沟通和协作,但是纰漏总是难免,而且一旦遗漏,影响较大,怎么通过技术手段去发现这些问题?
为了解决这个问题,我这边思考了一个通用的解决方案,线下和财务,数据仓库同学沟通后整理如下:
1. 统计方每种统计业务新增”统计口径规则”表:
举例:
业务 | 汇总聚合类型(统计方关心) | 业务类型id( ) |
司机收入 | 奖励 | 积分奖励 |
司机收入 | 奖励 | 任务奖励 |
司机收入 | 奖励 | 红利 |
司机收入 | 订单分润 | 代保养单分润 |
司机收入 | 订单分润 | 普通单分润 |
NOTE :业务,聚合类型,业务类型 三者unique 限制
2. 原有统计sql ( 类型写死 ) :
统计数据时 select sum(amount) as 司机奖励收入 from 帐户流水 where type in ( 代保养单分润,普通单分润)
变更后的统计sql ( 类型动态化 ) :
统计数据时 select sum(amount) as 司机奖励收入 from 帐户流水 where type in ( select 流水子类型 from 字典表 where 主类型 = 奖励 ) 解决 [问题2]
3. 定时任务:
对每个统计口径表都要定时检查: 获取帐户流水里面的类型,看看是否在字典表里. 如果不在,说明前台业务新增了类型. 解决 [问题1]
这个可以依赖正在开发的数据一致性检测系统.