背景
kafkaにリアルタイムデータを入れてるけど、offsetの最初からデータを取得したくなった。
その方法がドキュメントに書かれてないので、備忘録として書いておく
ライブラリ
いくつかkafkaのライブラリがあるようだけど
kafka-python 1.3.2を使うことにする
コード
from kafka import KafkaConsumer, TopicPartition
consumer = KafkaConsumer(bootstrap_servers='hoge')
tp = TopicPartition('topic_name', 0)
consumer.assign([tp])
consumer.seek(tp, 0)
for msg in consumer:
// do something
説明
KafkaConsumerのコンストラクタでトピックを指定せずにTopicPartitionをつかってトピック名を指定する。
あとはseekでTopicPartitionとoffsetを指定してあげるとできる