有没有办法从KSQL中删除主题?根据{{3}},这是可能的,我尝试了
DROP TOPIC my-topic
DROP TOPIC "my-topic"
DROP TOPIC 'my-topic'
DROP TOPIC `my-topic`
但这两个命令都不起作用。我收到消息
Message
-------------------------------------------------------------------------------
io.confluent.ksql.util.KsqlException: No topic with name true was registered.
答案 0 :(得分:3)
KSQL主题与Kafka主题不同。 KSQL主题是KSQL的内部概念,它代表kafka主题以及有关该主题的元数据,包括主题格式。 由于我们不在外部公开KSQL主题,因此不应在KSQL语句中使用它。 如果你想删除一个kafka主题,你应该从kafka中删除它。将来我们计划为KSQL添加主题管理功能。
答案 1 :(得分:1)
使用TOPIC创建流或表时,主题将在KSQL中注册 如下所示。
ksql> SHOW TOPICS;
Kafka Topic| Registered| Partitions | Partition Replicas | Consumers | Consumer Groups`
---------------------------------------------------------------------------------------
__confluent.support.metric| false | 1 | 1 | 0 | 0
_confluent-ksql-default__command_topic | true | 1 | 1 | 0 | 0
_schemas | false | 1 | 1 | 0 | 0
connect-configs | false | 1 | 1 | 0 | 0
connect-offsets | false | 25 | 1 | 0 | 0
connect-statuses | false | 5 | 1 | 0 | 0
email-filters | false | 4 | 1 | 0 | 0
请注意email-filters
主题是Registered
是假的,因为没有相应的流和表。
所以当你试图放弃它时。像这样:
ksql> DROP TOPIC "email-filters";
Message
-----------------------------------------
No topic with name true was registered.
-----------------------------------------
ksql>
所以答案是正确的@Hojjat是正确的。
这是解释。
答案 2 :(得分:1)
可以在删除流/表时删除主题,命令如下:
drop stream my_stream delete topic
或 drop table my_table delete topic
;