【问题标题】:KSQL - drop topicKSQL - 删除主题
【发布时间】:2018-05-19 11:50:27
【问题描述】:

有没有办法从 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.

【问题讨论】:

  • 请在此处提交错误报告:github.com/confluentinc/ksql/issues
  • 我投票决定将此问题作为离题结束,因为 SO 不是错误报告工具。
  • @MatthiasJ.Sax,我不确定这是否是一个错误,虽然问了一个问题,如果你确定这是一个错误,我会关闭问题
  • 谢谢。让我们等待 KSQL 人回复:)

标签: apache-kafka ksqldb


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    当您使用 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 的答案是正确的。

    这就是解释。

    【讨论】:

    • @Mikhail 你能分享更多细节吗
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 2020-03-30
      • 2020-06-29
      相关资源
      最近更新 更多