Size: a a a

ClickHouse не тормозит

2020 June 15

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
Иван
Max_bytes_before_external_group_by или что-то около того, тогда он будет сбрасывать на диск то что не влазит в агрегацию, но будет значительно медленнее
вооот, похоже на то что надо....
а что советуется туда выставлять? допустим у меня 64Г памяти на машине, допустим 32Г свободные. сколько дать на этот сеттинг? половину? меньше? больше? исходим из того что больше ничего монструозного не бежит
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
Dmitry Titov
у вас там много массивов использется?
именно в этом запросе вроде нет
источник

И

Иван in ClickHouse не тормозит
Wolf Kreuzerkrieg
вооот, похоже на то что надо....
а что советуется туда выставлять? допустим у меня 64Г памяти на машине, допустим 32Г свободные. сколько дать на этот сеттинг? половину? меньше? больше? исходим из того что больше ничего монструозного не бежит
В доке по ссылке свыше все рассказано. Но если коротко то худшее что может быть - 2х от этой настройки должно вмещаться в RAM, обычно меньше (в доке корректнее написано)
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
ага, уже вижу, спасибо
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
Dmitry Titov
у вас там много массивов использется?
А какая связь с массивами?
источник

И

Иван in ClickHouse не тормозит
Wolf Kreuzerkrieg
А какая связь с массивами?
Мб массивы много оперативки жрут?
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
а... нет, не тот случай, в этой таблице вообще массивов нет, но вот есть group by так что надеюсь max_bytes_before_external_group_by поможет
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
пойду проверять...
источник

DT

Dmitry Titov in ClickHouse не тормозит
Wolf Kreuzerkrieg
А какая связь с массивами?
кол-во памяти аллоцированое под массивы зависит от размера блока
источник

DT

Dmitry Titov in ClickHouse не тормозит
если массивы огромные, то бывает есть смысл уменьшать размер блока.
источник

WK

Wolf Kreuzerkrieg in ClickHouse не тормозит
это полезная информация на будущее, спасибо
источник

IT

Ivan Torgashov in ClickHouse не тормозит
Добрый день!
Произошёл сбой по питанию в датацентре, и все клики вырубились вместе с зукиперами. Теперь порядка 15 партов в разных таблицах в system.replication_queue сыплют бесконечно ошибками вида
Code: 234, e.displayText() = DB::Exception: No active replica has part 202006_496144_501058_1552 or covering part (version 19.16.10.44 (official build))

В detached везде пусто, ФС прочекалась без ошибок. Как так может быть, никто не сталкивался?

Пока пришёл к выводу, что возможно когда зукиперы во время мержа вырубились, они просто не обновили инфу у себя.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Ivan Torgashov
Добрый день!
Произошёл сбой по питанию в датацентре, и все клики вырубились вместе с зукиперами. Теперь порядка 15 партов в разных таблицах в system.replication_queue сыплют бесконечно ошибками вида
Code: 234, e.displayText() = DB::Exception: No active replica has part 202006_496144_501058_1552 or covering part (version 19.16.10.44 (official build))

В detached везде пусто, ФС прочекалась без ошибок. Как так может быть, никто не сталкивался?

Пока пришёл к выводу, что возможно когда зукиперы во время мержа вырубились, они просто не обновили инфу у себя.
источник

OG

Oleg Gritsak in ClickHouse не тормозит
Добрый день,
Подскажите пожалуйста, почему два «по смыслу» правильно составленых запроса выдают разный результат?

Запрос A выдаёт верные значения, а запрос B как будто семплирование делает..

-- запрос A
SELECT
   toDate(clicked_at),
   count()
from stats.ad_clicks
group by toDate(clicked_at)
order by toDate(clicked_at) desc
limit 5;

-- запрос B
select
   toDate(clicked_at),
   count()
from stats.ad_clicks
where toDate(clicked_at) > now() -  interval '5' DAY
group by toDate(clicked_at);
источник

IT

Ivan Torgashov in ClickHouse не тормозит
Спасибо большое! Искал в issues но это пропустил
источник

pk

papa karlo in ClickHouse не тормозит
Oleg Gritsak
Добрый день,
Подскажите пожалуйста, почему два «по смыслу» правильно составленых запроса выдают разный результат?

Запрос A выдаёт верные значения, а запрос B как будто семплирование делает..

-- запрос A
SELECT
   toDate(clicked_at),
   count()
from stats.ad_clicks
group by toDate(clicked_at)
order by toDate(clicked_at) desc
limit 5;

-- запрос B
select
   toDate(clicked_at),
   count()
from stats.ad_clicks
where toDate(clicked_at) > now() -  interval '5' DAY
group by toDate(clicked_at);
now() это вроде время, а toDate дата, они вообще нормально сравниваются?
источник

OG

Oleg Gritsak in ClickHouse не тормозит
papa karlo
now() это вроде время, а toDate дата, они вообще нормально сравниваются?
Однако группировка идёт по дате, т.е. БД должна нормально склеить результат
источник

DK

Danil Kuznetsov in ClickHouse не тормозит
Привет! Кто-нибудь пробовал использовать ch-copier на таблицах с составными primary key? Почему-то фильтр по партициям у меня не заработал, вроде пытается делать запросы на чтение, но за ночь ничего не скопировал в итоге. Тот же конфиг на таблице с простым ключом работает корректно
источник

AK

Anton Khokhrin in ClickHouse не тормозит
Oleg Gritsak
Однако группировка идёт по дате, т.е. БД должна нормально склеить результат
Now - 5 days будет со временем, соответственно выберется только 4 дня
источник

OG

Oleg Gritsak in ClickHouse не тормозит
papa karlo
now() это вроде время, а toDate дата, они вообще нормально сравниваются?
Исправил запрос B, добавил в условии toDate к интервалу. Запрос теперь выводит верные значения, но если честно не особо понимаю в чём "магия" заключается

select
   toDate(clicked_at),
   count()
from stats.ad_clicks
where toDate(clicked_at) > toDate(now() -  interval '5' DAY)
group by toDate(clicked_at);
источник