1

有没有办法从 KSQL 中删除主题?根据github这是可能的,我试过了

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.
4

3 回答 3

8

KSQL 主题与 Kafka 主题是不同的概念。KSQL 主题是 KSQL 的一个内部概念,它表示一个 kafka 主题以及关于该主题的元数据,包括主题格式。由于我们不会在外部公开 KSQL 主题,因此您不应该在 KSQL 语句中使用它。如果你想删除一个 kafka 主题,你应该从 kafka 中删除它。未来我们计划在 KSQL 中添加主题管理功能。

于 2017-12-06T18:53:07.267 回答
1

当您使用以下命令删除流/表时,您可以删除主题: drop stream my_stream delete topicdrop table my_table delete topic;

于 2021-05-08T21:15:37.660 回答
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的答案是正确的。

这就是解释。

于 2018-04-25T12:26:24.123 回答