记一次线上bug修复的至旅

本文记录了一次线上bug修复的过程,涉及基础流拼接用户播放稿件特征,通过Kafka消费验证字段值,发现字段已写入Redis但未在下游Hive表中出现。排查过程中,确认字段已存在于Redis,怀疑可能是读取时使用的protobuf结构过时导致的问题。
摘要由CSDN通过智能技术生成
记一次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结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值