使用KSQL(融合版本:5.0.1),当链接的主题存在并且已注册(已注册)时,我能够正常地(使用DROP [TABLE|STREAM]
删除表/流<NAME>
= true)。
但是,如果首先删除主题(Registered = false),则不能删除关联的流或表,并且KSQL指出“未注册名称为Foo的主题”。
问题在于流/表仍显示在列表中,并且无法使用相同名称添加新的流/表。
删除主题后,是否可以删除它们?
答案 0 :(得分:1)
在官方文档中,我会这样:
SHOW QUERIES;
写下查询ID;
TERMINATES <QueryID>;
DROP TABLE <tablename>;
答案 1 :(得分:0)
一段时间以来,我一直在努力解决这些类型问题。我的笔记就在这里:
在删除流/表/主题时遇到麻烦吗?在zookeeper中删除它们:
像这样在zookeeper中删除:
zookeeper-shell localhost:2181
ls /经纪人/主题
_confluent-controlcenter-5-0-0-1-TriggerEventsStore-changelog,_confluent-controlcenter-5-0-0-1-error-topic,...
rmr / brokers / topics / yourTopicName
现在做一个“ kafka-topics --list --zookeeper localhost:2181”,它们应该永远消失。
或者,对于绝对核选项:
开始备份所有内容,所有内容都应消失。但是要小心,你会迷路的 一切,所有数据。
答案 2 :(得分:0)
我认为我找到了答案,或者至少在正确的方向上找到了答案。
您需要在流中重新注册主题。经过一番摸索之后,我设法将主题重新附加到流中,然后将流放下。
REGISTER TOPIC <ksql_topic_name> WITH (KAFKA_TOPIC='<kafka_topic_name>', VALUE_FORMAT='<format>');
然后
DROP STREAM <stream_name>;
我不知道这在所有情况下是否都有效,但这使我回到了自己想要的位置。如果其他人可以对此进行迭代并找到更强大的解决方案,那么我想听听。
答案 3 :(得分:0)
您必须先终止所有正在运行的查询。
SHOW QUERIES; --> that will show you the active queries (COPY QUERY ID)
然后:
TERMINATE [QUERY ID];
然后: 删除[表或流];