Как удалить несколько тем в Apache Kafka
Предполагая, что у меня есть несколько тем с одинаковым префиксом, например:
giorgos-topic1
giorgos-topic2
giorgos-topic3
...
Команда, используемая для удаления одной темы (скажем, giorgos-topic1
), следующая:
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic giorgos-topic1
Можно ли удалить несколько столбцов, используя одну команду и, возможно, регулярное выражение/подстановочный знак (например, giorgos-*
) вместо того, чтобы вводить все имена тем, которые нужно удалить по одному?
Ответы
Ответ 1
Да, вы можете использовать регулярные выражения при удалении тем с kafka-topics.sh
инструмента kafka-topics.sh
:
Например, чтобы удалить все темы, начинающиеся с giorgos-
:
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'
Используя API администратора, вы также можете удалить несколько тем одновременно, см. AdminClient.deleteTopics
Ответ 2
В тех случаях, когда регулярное выражение невозможно, мы можем использовать разделенный запятыми список названий тем для удаления тем.
kafka-topics.sh --zookeeper 10.0.0.160:2181 --delete --topic giorgos-topic1,giorgos-topic2,giorgos-topic3,...
Ответ 3
Пожалуйста, добавьте одиночную кавычку ('giorgos-. *'), Если она жалуется, что no matches found: giorgos-.*
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'