2016-11-11 2 views
1

Есть ли способ убить простаивающий запрос в ClickHouse? У меня есть запрос OPTIMIZE, который никогда не будет завершен (поскольку он работает с таблицей ReplicatedMergeTree), блокируя таблицу, которую мне нужно удалить.Как убить процесс (запрос) в ClickHouse

ответ

3

Да, есть опция replace_running_query.

Короче говоря, вы можете добавить параметр query_id на запрос HTTP, как это:

http://localhost:8123/?query=SELECT * FROM system.numbers LIMIT 100000000& replace_running_query=1&query_id=example

Затем сделайте второй запрос HTTP, с тем же query_id:

http://localhost:8123/?query=SELECT 1&replace_running_query=1&query_id=example

Сервер отменит первый запрос и запустит второй.

Вы можете переопределить параметр (он по умолчанию отключен) в вашем файле конфигурации, чтобы избавиться от его размещения в аргументах запроса.

+0

Я не использую HTTP-интерфейс, но кликер-клиент, я не думаю, что можно использовать 'replace_running_query' через клиента. Btw Я не системный администратор, поэтому я не мог изменить конфигурацию или открыть порт 8123. Я попросил системных администраторов перезапустить узел, который был затронут, и это просто решило проблему (но не идеально). – DamnWidget

+0

@DamnWidget, кстати, я сделал [clickhouse-cli] (https://github.com/hatarist/clickhouse-cli), который убивает запрос тем же методом (используя replace_running_query) в Ctrl + C. И эй, спасибо за Анаконду, я использую это много! –

+0

Собираюсь попробовать! Я также использую anaconda много, что является основной причиной того, что я написал это :) – DamnWidget

Смежные вопросы