Используя KSQL (Confluent: Версия: 5.0.1), я могу нормально удалить таблицу / поток (используя DROP [TABLE|STREAM]) <NAME>, когда связанная тема существует и когда она зарегистрирована (Registered = true).
Однако, если тема удаляется первой (Registered = false), то связанный поток или таблица не могут быть отброшены с указанием KSQL, что «Тема с именем Foo не зарегистрирована».
Проблема в том, что поток / таблица все еще отображается в списке, и нельзя добавить новый поток / таблицу с тем же именем.
Есть ли способ их удалить после того, как тему сбросили?

Некоторое время я боролся с проблемами этого типа. Вот где я, из своих заметок:
Возникли проблемы с удалением потоков / таблиц / тем? Удалите их в zookeeper:
Удалите в zookeeper вот так:
zookeeper-shell localhost: 2181
ls / брокеры / темы
_confluent-controlcenter-5-0-0-1-TriggerEventsStore-changelog, _confluent-controlcenter-5-0-0-1-error-topic, ...
rmr / брокеры / темы / yourTopicName
Теперь выполните "kafka-themes --list --zookeeper localhost: 2181 ', и они исчезнут навсегда.
ИЛИ, для АБСОЛЮТНОГО ЯДЕРНОГО ВАРИАНТА:
Запустите все резервное копирование, и все должно исчезнуть. Но будь осторожен, ты проиграешь все, все ваши данные.
Итак, когда вы удаляете резервную копию из zookeeper, они все еще существуют для вас в виде потоков и таблиц в KSQL?
Спасибо medloh за ваши комментарии. - когда я удаляю темы с помощью CLI 'kafka-topic', тема удаляется из kafka и из KSQL - когда я делаю это через zookeeper, тема удаляется из kafka, но не из KSQL. - связанные потоки и таблицы в KSQL все еще существуют
Я чувствую вашу боль - темы, потоки, таблицы - от всего этого, кажется, трудно избавиться навсегда. Даже с ядерным вариантом, который я описал выше, они иногда возвращаются позже. Итак, я предполагаю, что где-то есть хранилище метаданных KSQL, в котором хранится эта информация. Дайте мне знать, если вы добьетесь каких-либо успехов в этом вопросе, надеюсь, следующая версия будет работать лучше.
Думаю, я нашел ответ или, по крайней мере, в правильном направлении.
Вам нужно перерегистрировать тему в потоке. После небольшого взлома мне удалось повторно привязать мои темы к потокам, отбросив потоки.
REGISTER TOPIC <ksql_topic_name> WITH (KAFKA_TOPIC='<kafka_topic_name>', VALUE_FORMAT='<format>');
Потом,
DROP STREAM <stream_name>;
Я не знаю, работает ли это во всех случаях, но это вернуло меня туда, где я хочу быть. Если кто-то еще может повторить это и найти более надежное решение, я хотел бы услышать об этом.
Сначала вам нужно будет завершить все запущенные запросы.
SHOW QUERIES; --> that will show you the active queries (COPY QUERY ID)
Потом:
TERMINATE [QUERY ID];
Потом: УДАЛИТЬ [ТАБЛИЦА ИЛИ ПОТОК];
Из официальной документации я бы сделал так:
SHOW QUERIES;
Запишите QueryID;
TERMINATE <QueryID>;
DROP TABLE <tablename>;
[См. Документацию ...]
Темы можно удалять с помощью интерфейса командной строки kafka-themes - проблема не в этом. Это таблицы и потоки, которые все еще зарегистрированы и не могут быть удалены после удаления темы (Зарегистрировано = false). ЯДЕРНЫЙ ВАРИАНТ - должен быть лучший способ удалить некоторые мертвые потоки / таблицы