11238
Обсуждаем ClickHouse
Видел и такое. Вообще там на этом узле исчисления на десятки миллионов строк по этому полю
Читать полностью…
Скорее вы правы. Но я не знаю пока методы диагностики и выявления. Я много вижу, а что с этим делать не понимаю пока
Читать полностью…
еще в КХ сейчас встроена утилита chdig
https://github.com/azat/chdig
это типа htop/mytop
Я прошу прощения если карусель устроил.
Читать полностью…
create user foo identified by 'foo';
clickhouse-client -u foo --password=foo
select * from system.users; DB::Exception: foo: Not enough privileges.
grant select on system.users to foo;
clickhouse-client -u foo --password=foo
select name from system.users;
--
default
foo
mira@127.0.0.2
mira@10.0.0.1
mira@127.0.0.1
play
На самом деле всё сложнее. Вы не обижайтесь)). Я ж неопытный в Клике. Моя цель понять и найти что нагружает так сильно один из узлов и понять причину. На узле в момент нагрузки крутится много что, в то время как остальные спокойно отдыхают и принимают репликацию . Надо понять что именно из того, сто я вижу особо нагружает
Читать полностью…
show processlist это синоним для select * from system processes
show processlist просто для совместимости с mysql
Мм. Да! То, что надо. А что тогда system processes?? Мне казалось тоже самое. Запросы которые крутятся
Читать полностью…
и главное /channel/clickhouse_ru/428078
Читать полностью…
select * from query_log l1
where l1.type = 'QueryStart'
and query_id not in
(select query_id from query_log where type = 'QueryFinish');
А вот так покажет 1 запись. Что ожидаемо. Потому что есть финишь
select * from system.query_log q
where
q.query_id = '83b51262-83ea-45fe-9751-006b5b76fd9c'
and q.type = 'QueryStart'
and exists(select 1 from system.query_log q2 where q2.query_id = '83b51262-83ea-45fe-9751-006b5b76fd9c' and type = 'QueryFinish' and q2.query_id = query_id);
https://fiddle.clickhouse.com/8ce72c92-0e4b-4455-b0e2-c1e820819031
Читать полностью…
тут q.type у вас, а надо q.query_id not in
Читать полностью…
я бы смотрел запросы которые много читают
типа
select * from system.processes order by read_rows desc;
вообще неправильный способ по десятку причин
Читать полностью…
Мне показалось к примеру если я отловлю записи те, которые не имеют еще Финишь, то это будет какой то отправной точкой чтоли. Хз
Читать полностью…
с самого начала надо это говорить, а не спрашивать про not exists, трата времени вашего
хотя это интересный способ изучать, пытаемся построить ракету для полета на марс и спрашиваем почему лошадь не хочет керосин пить.
и сразу много узнаем про биологию лошадей и химию керосина
https://kb.altinity.com/altinity-kb-setup-and-maintenance/who-ate-my-cpu/
SELECT
normalizedQueryHash(query) hash,
current_database,
sum(ProfileEvents['UserTimeMicroseconds'] as userCPUq)/1000 AS userCPUms,
count(),
sum(query_duration_ms) query_duration_ms,
userCPUms/query_duration_ms cpu_per_sec,
argMax(query, userCPUq) heaviest_query
FROM system.query_log
WHERE (type = 2) AND (event_date >= today())
GROUP BY
current_database,
hash
ORDER BY userCPUms DESC
LIMIT 10
FORMAT Vertical;
Ну вот, а меня сбили с толку. Спасибо. Значит не ошибся
Читать полностью…
да это просто пример, что такой грант не работает, пытаюсь понять от чего. Даже если таблицу system.users чтобы видеть всех.
а пользователь что должен увидеть? свои запросы? или вообще все запросы?
Читать полностью…
вообще я пытаюсь (после больницы) понять, зачем такое извращение, если цель - найти текущие запросы выполняющиеся в системе
Читать полностью…
не тоже самое, show processlist показывает запросы, которые в процессе, а ваш запрос также покажет, которые не завершились из-за ошибки, например.
Читать полностью…
если вам надо текущие запросы, то show processlist достаточно
Читать полностью…
Вот так работает как надо. В данном млучае записей нет.
select * from system.query_log q
where
q.query_id = '83b51262-83ea-45fe-9751-006b5b76fd9c'
and q.type = 'QueryStart'
and not exists(select 1 from system.query_log q2 where q2.query_id = '83b51262-83ea-45fe-9751-006b5b76fd9c' and type = 'QueryFinish' and q2.query_id = query_id);
Вот запрос даёт мне строку
select * from system.query_log q
where
q.query_id = '83b51262-83ea-45fe-9751-006b5b76fd9c'
and q.type = 'QueryStart'
and q.type not in (select query_id from system.query_log q2 where q2.query_id = '83b51262-83ea-45fe-9751-006b5b76fd9c' and type = 'QueryFinish');
Хотя по этому query_id 2 записи.
Я ищу записи где нет еще запись с типом Финишь.