1、背景
因为最近响应监管,做数据全面匿名化的需求。会在写入数据库时,把姓名身份证做MD5处理后,只保留32位的前30位,保证即使拿到处理后的数据,也无法复原,恢复到源数据。
相应的,大数据BDP HIVE这边的数据处理也要做相应的改造,之前处理时会判断身份证位数,如果非15位和18位,则认为数据不正确,置为NULL。姓名身份证匿名化后要去除这个判断逻辑。
直接去除后上线,产品反馈出的报表数据有问题,数据汇总的表,总数=无源+有源,其中有源数据不对。
形如这种:
2、问题分析
去查了下对应代码:
select
,'当日' as time_type
,sum(case when last_created_date='20240104' then day_pv else 0 end) valid_pv
,sum(case when src_last_created_date='20240104'