首页/数据/数据工程与 ETL 速查/删除分区历史消息
Kafka64 条

删除分区历史消息

按分区把低水位推进到指定位移:此位移之前的消息将被删除,用于清理误灌数据或紧急释放磁盘空间,操作不可恢复。

输入offset-json-file:{topic, partition, offset}
语义删除小于指定 offset 的所有记录
影响低水位提升;消费者从更早位移读取会报越界

删除指定分区历史消息

删除指定分区历史消息
cat > delete.json <<'EOF'
{"version": 1, "partitions": [{"topic": "orders", "partition": 0, "offset": 500}]}
EOF
kafka-delete-records.sh --bootstrap-server localhost:9092 \
  --offset-json-file delete.json
删除前确认没有消费者需要重放这段数据;对压实主题效果受清理策略限制,先在测试主题验证。

易错点

  • 对活跃消费组做低水位推进,会让消费者下次拉取直接跳到新低水位,产生数据空缺
  • 误删最常见来源是 offset 理解成“保留到该条”,务必核对语义

数据来源与参考

  • Apache Kafka 官方文档:Delete Records 工具说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌