记一次bug修复的旅途
1.问题描述
1.1 做了什么事呢?
- 基础流拼接用户播放稿件的特征。
1.2 拼接后怎么验证的呢?
-
kafka 消费kafka 验证指定的字段有没有值
-> /mnt/storage00/luxiaowei/kafka_2.12-2.8.0/bin/kafka-console-consumer.sh --bootstrap-server jssz-kafka-sycpb-pa-01.host.bilibili.co:9092,jssz-kafka-sycpb-pa-02.host.bilibili.co:9092,jssz-kafka-sycpb-pa-03.host.bilibili.co:9092,jssz-kafka-sycpb-pa-04.host.bilibili.co:9092,jssz-kafka-sycpb-pa-05.host.bilibili.co:9092 --topic r_biz_tech.rtd_sycpb_bce_join_view_real_v2 |awk -F’\1’ ‘{print NR,$2,$73}’ |grep -i “fea_id” -
redis 本地测试udf debug 看看有没有写入 有
1.2 预期情况
- 因为此特征很大 放1/3的量 后 存储会增加 但是第二天观察并没有增加
1.1 CVR 视图添加稿件实时特征
2.排查过程
2.1 假设一 是不是字段没写进redis中
错误的验证逻辑 只在视图离线中查看是否有新添加的字段 查看是有的 但是时间上不能认为redis中有 只能说点击中一定是有的.
正确的验证逻辑 如果添加到redis中 那么这点击特征是用来拼接转化的 如果有那么下游的转化特征中就有这个特征 。那么查看hive 表 并没有这个特征 那么可能没写进redis中或者没读出来。最直接检查redis的数据的方法 就只查看redis是否有 但是没有pb结构 无法查看
其次 可以直接放全量,看redis的量是否增加 如果增加 就有
2.2 是不是字段没写进redis中
python 脚本查看 redis中某个key 是否有添加的字段
先从kafka中捞出有添加字段的key(使用awk编程)
再去查redis 发现是有的
2.3 既然写进去 是不是没读出来?
突然想到,上游写的时候 更新了pb结构 那么读的时候 还是使用旧的pb结构