Как удалить таблицу или поток в KSQL, когда тема была удалена первой

Использование KSQL (Confluent: Version: 5.0.1) Я могу нормально отбрасывать таблицу / поток (используя DROP [TABLE|STREAM]) <NAME> когда связанная тема существует и когда она зарегистрирована (Registered=true).

Однако, если тема удалена первой (Registered=false), то связанный поток или таблица не могут быть отброшены с помощью KSQL, указывающего, что "не было зарегистрировано ни одной темы с именем Foo".

Проблема в том, что поток / таблица по-прежнему отображается в списке, и новый поток / таблица не могут быть добавлены с тем же именем.

Есть ли способ удалить их после удаления темы?

1 ответ

Из официальной документации я бы сделал так:

SHOW QUERIES;

Запишите QueryID;

TERMINATES <QueryID>;

DROP TABLE <tablename>;

См. Документацию...

Я думаю, что нашел ответ, или, по крайней мере, в правильном направлении.

Вам необходимо заново зарегистрировать тему в потоке. После небольшого взлома мне удалось снова присоединить мои темы к потокам, отбросить потоки.

REGISTER TOPIC <ksql_topic_name> WITH (KAFKA_TOPIC='<kafka_topic_name>', VALUE_FORMAT='<format>');

Затем,

DROP STREAM <stream_name>;

Я не знаю, работает ли это во всех случаях, но это вернуло меня туда, где я хочу быть. Если кто-то еще может повторить это и найти более надежное решение, я хотел бы услышать об этом.

Я боролся с этими проблемами типа некоторое время. Вот где я в своих заметках:

Возникли проблемы при удалении потоков / таблиц / тем? Удалить их в zookeeper:

  • Отключите всех производителей или потребителей, связанных с темами, которые вы будете удалять
  • Попытайтесь удалить ваши таблицы и потоки из интерфейса командной строки KSQL.
  • Завершите работу сервера KSQL
  • Удалите темы с помощью CLI " kafka-topic"
  • Удалить в Zookeeper, как это:

    местный хост zookeeper-shell: 2181

    ls / brokers / themes

    _confluent-controlcenter-5-0-0-1-TriggerEventsStore-changelog, _confluent-controlcenter-5-0-0-1-error-topic,...

    rmr / brokers / themes/yourTopicName

Теперь сделайте " kafka-themes --list --zookeeper localhost:2181', и они должны быть навсегда.

ИЛИ, для АБСОЛЮТНОГО ЯДЕРНОГО ВАРИАНТА:

  • Попытайтесь удалить ваши таблицы и потоки из интерфейса командной строки KSQL.
  • Завершите работу сервера KSQL
  • Выключите своих брокеров и зоопарков
  • Удалите все в директории kafka logs на каждом узле брокера (местоположение директории определяется в вашем файле свойств).
  • Снова запустите zookeepers и удалите / brokers / themes из CLI zookeeper.

Запустите все обратно, и все должно исчезнуть. Но будьте осторожны, вы потеряете все, все свои данные.

Сначала вам нужно будет завершить все запущенные запросы.

SHOW QUERIES;  --> that will show you the active queries (COPY QUERY ID)

Потом:

TERMINATE [QUERY ID];

Затем: УДАЛИТЬ [ТАБЛИЦА ИЛИ ПОТОК];

Другие вопросы по тегам