如何在海量的Kafka数据定位/查询精准到秒级的数据?
解决方案:Kafka命令 + KafkaTool
1. 使用Kafka命令定位Offset
sh ./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list $ip:$port -topic ${topic.name} -time $timestamp
参数说明:
- $ip:Kafka服务IP。
- $port:Kafka服务端口。
- ${topic.name}:要查询的主题。
- $timestamp:要查询的时间点(时间戳进行转换的时候要精确到秒)。
- 其他说明:该命令在Kafka的bin目录下,所以需要跳转到该bin目录下执行该指令(已添加到环境变量除外)。
举例:我们要查询 topic 为 student,目标时间点在 2023-05-26 05:03:30 的数据,我们可以使用下面的命令:
上面例子查询结果,出现student 0 和 student 1 是因为 student 主题存在两个分区,所以查询出来是两个分区的Offset。
2. 使用KafkaTool条件过滤查询
① 选中要查询的分区;
② 在 Message 下框中,选择 “From Specific Offset”;
③ 在 offset 框中输入Kafka命令查询到的偏移量,比如:2566669777;
④ 点击查询按键;
⑤ 查询到目标数据。
版权归原作者 夏之七 所有, 如有侵权,请联系我们删除。