假设我有许多具有相同前缀的主题,例如:
giorgos-topic1
giorgos-topic2
giorgos-topic3
...
Run Code Online (Sandbox Code Playgroud)
用于删除单个主题的命令(例如giorgos-topic1)如下:
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic giorgos-topic1
Run Code Online (Sandbox Code Playgroud)
是否可以使用单个命令删除多个列,并且可能使用正则表达式/通配符(例如giorgos-*),而不是逐个键入需要删除的所有列?
Mic*_*son 25
是的,您可以在使用该kafka-topics.sh工具删除主题时使用类似正则表达式的表达式:
例如,要删除以giorgos-下列开头的所有主题:
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'
Run Code Online (Sandbox Code Playgroud)
使用Admin API,您也可以一次删除多个主题,请参阅 AdminClient.deleteTopics
如果无法使用正则表达式,我们可以使用逗号分隔的主题名称列表来删除主题。
kafka-topics.sh --zookeeper 10.0.0.160:2181 --delete --topic giorgos-topic1,giorgos-topic2,giorgos-topic3,...
Run Code Online (Sandbox Code Playgroud)
只是为了添加到接受的答案中,* 通配符前面需要加上“.”
在我的经验中:
--delete --topic '_confluence-controlcenter-5-3-1-1-.*'有效
--delete --topic '_confluence-controlcenter-5-3-1-1-*' 不起作用
注意:我会将此添加为评论,但没有足够的代表。
| 归档时间: |
|
| 查看次数: |
9265 次 |
| 最近记录: |