Как убить процесс в ClickHouse?

1,109 views
Skip to first unread message

Igor Spirin

unread,
Aug 1, 2016, 11:40:04 AM8/1/16
to ClickHouse
Как убить процесс в ClickHouse? 
kill <query_id из system.processes> не дает результата.

Есть ли вообще такая возможность, или только рестарт сервера?

man...@gmail.com

unread,
Aug 1, 2016, 4:21:40 PM8/1/16
to ClickHouse
KILL не успели реализовать.

Возможность убить запрос есть, хотя неудобная.
Нужно отправить по HTTP интерфейсу запрос SELECT 1 (любой запрос) от такого же user-а (если вы используете user-а по-умолчанию, то можно не указывать) с параметрами query_id - такой же query_id как у выполняющегося запроса из SHOW PROCESSLIST и replace_running_query = 1.

Пример:

Запускаем в clickhouse-client запрос SELECT count() FROM system.numbers
Этот запрос будет выполняться бесконечно, надо его остановить.

Смотрим query_id:

$ clickhouse-client
ClickHouse client version 1.1.53971.
Connecting to localhost:9000.
Connected to ClickHouse server version 1.1.53971.

:) SHOW PROCESSLIST

SHOW PROCESSLIST

┌─user────┬─address──────────┬─────elapsed─┬───rows_read─┬───bytes_read─┬─total_rows_approx─┬─memory_usage─┬─query──────────────────────────────┬─query_id─────────────────────────────┐
│ default │ ::ffff:127.0.0.1 │ 8.308643363 │ 22491430912 │ 179931447296 │                 0 │      2101312 │ SELECT count() FROM system.numbers │ 4e0e9d05-9a8c-4e91-9659-76c89bd9dcd7 │
└─────────┴──────────────────┴─────────────┴─────────────┴──────────────┴───────────────────┴──────────────┴────────────────────────────────────┴──────────────────────────────────────┘

1 rows in set. Elapsed: 0.224 sec.

:) Bye.


Выполняем запрос, который его остановит:

$ curl 'http://localhost:8123/?replace_running_query=1&query_id=4e0e9d05-9a8c-4e91-9659-76c89bd9dcd7&query=SELECT+1'
1



man...@gmail.com

unread,
Aug 1, 2016, 4:25:34 PM8/1/16
to ClickHouse
Запрос будет остановлен в тот момент, когда при его выполнении проверяется, не нужно ли ему остановиться. Обычно это происходит на каждый блок обрабатываемых данных. То есть, иногда запрос будет остановлен не сразу.

Igor Spirin

unread,
Aug 2, 2016, 3:12:39 AM8/2/16
to ClickHouse
Запускаем в clickhouse-client запрос SELECT count() FROM system.numbers

Именно это мне и нужно было остановить :) Спасибо, сработало



Reply all
Reply to author
Forward
0 new messages