How to delete multiple topics in Apache Kafka
Yes you can use regex-like expressions when deleting topics with the kafka-topics.sh
tool:
For example, to delete all topics starting with giorgos-
:
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'
Using the Admin APIs, you can also delete several topics at once, see AdminClient.deleteTopics
Please add single quote ('giorgos-.* ') if it complains like no matches found: giorgos-.*
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'
Just to add to the accepted answer, the * wildcard needs to be preceded by '.'
In my experience:
--delete --topic '_confluent-controlcenter-5-3-1-1-.*' works
--delete --topic '_confluent-controlcenter-5-3-1-1-*' DOESNT work
Note: I would've added this as a comment but don't have enough rep.
In cases where regex is not possible we can use a comma seperated list of topic names for the deletion of topics.
kafka-topics.sh --zookeeper 10.0.0.160:2181 --delete --topic giorgos-topic1,giorgos-topic2,giorgos-topic3,...