大宽表数据逻辑核对方法
1.背景
上层应用表目前基本采用的是大宽表的方式进行呈现,查看数据的运营人员总怀疑数据有误,所以会抽查一些数据进行手工计算核查,以便验证数据开发人员是否按照要求开发完成,这其实是很有必要的过程,很多时候测试也测了,但是在运营人员验收阶段总会发现一些问题或者说一些新的体会,进而可能对指标计算做一些调整。但是这种反复跟运营人员核对数据的过程完全是属于机械性的工作,并且会导致你的其他工作被中断去一步一步提取数据进行比对,效率较低,所以就在想是否可以通过技术手段来进行解决,让运营人员针对计算过程可以自行核对。为了实现这种功能,我梳理了一下应用表需要按照一定规范进行开发,并且搭配一个问题定位系统。
1.比如定义一个表脚本的功能最小化、单一化,每一个中间表必须包含数据处理逻辑的核心字段,中间表的字段字段会随着逻辑段越多,字段越多,这样才能实现逐层下钻。
2.主键字段或者其他可能会作为查询条件的字段解释需要加特殊备注,比如p1,p2,维度字段后缀加w1,w2
3.问题定位系统可解析代码自动生成中间表流向血缘图。
4.问题定位系统可根据表的元数据自动读取出相关维度作为查询条件
2.例子
统计当年客户的见面次数,跟进人如果是负责人的领导或者跟负责人是同一人可以作为见面次数进行统计。
customer_face_year_statis_1(
customer_code string COMMENT '客户编码p1',
fellow_user string comment ‘跟进人’,
responsibility_user string comment ‘负责人’,
face_date string comment '见面日期w1');
customer_face_year_statis_2(
customer_code string COMMENT '客户编码p1',
year_id string comment ‘年ID’,
responsibility_user_org string comment ‘负责人所有组织层级负责人,层级之间通过|隔开,比如张三|李四|王五’,
fellow_user string comment ‘跟进人’,
responsibility_user string comment ‘负责人’,
face_date string comment '见面日期w1');
customer_face_year_statis_3(
customer_code string COMMENT '客户编码p1',
year_id string comment ‘年ID,w1’,
responsibility_user_org string comment ‘负责人所有组织层级负责人,层级之间通过|隔开,比如张三|李四|王五’,
leader_flag string comment ‘跟进人是否跟负责人是同一人或者跟进人是负责人的任一级领导’,
fellow_user string comment ‘跟进人’,
responsibility_user string comment ‘负责人’,
face_date string comment '见面日期');
customer_face_year_statis(
customer_code string COMMENT '客户编码',
year_id string comment '年ID w1',
first_kp_year_face_num string comment '一层kp年见面次数');