clickhouse_ru | Неотсортированное

Telegram-канал clickhouse_ru - ClickHouse не тормозит

11238

Обсуждаем ClickHouse

Подписаться на канал

ClickHouse не тормозит

Ага, покопаю в эту сторону, спасибо!

Читать полностью…

ClickHouse не тормозит

ну как обычно: сон разума рождает чудовищ

Читать полностью…

ClickHouse не тормозит

короче, у вас таблица партиционирована по дате, всего разных дат 2984, в каждой партиции по 2-3 парта
2984 * 2.5 = 7460 партов, т.е. все ровно как задумано, они не смержатся никогда, потому что парты мержатся внутри партиции, т.е. в лучшем случае вместо 2-3 - будет 1.

тот кто создавал таблицу должен был подумать об этом и сделать например месячные, квартальные или годовые партиции - partition by toYYYYMM(stat_dt)

и само использование stat_dt в партициях скорее всего тоже просчет, скорее всего у вас такое же поле с типом DateTime и в запросах используется оно, и партиционировать надо было типа partition by toYYYYMM(stat_time)

order by у таблицы тоже корявый и бессмысленный

Читать полностью…

ClickHouse не тормозит

select uniq(partition) from system.parts where active and table = ....

Читать полностью…

ClickHouse не тормозит

ну вы и партизан

что показывает

select partition, count() cnt from system.parts
where active and table = ....
group by table, partition
order by cnt desc limit 20

Читать полностью…

ClickHouse не тормозит

ну хотябы тип поля stat_dt скажите

Читать полностью…

ClickHouse не тормозит

just in case: CoalescingMergeTree пока в нерабочем состоянии

Читать полностью…

ClickHouse не тормозит

вторая черепашка пиздит


PARTITION BY stat_dt а колонки stat_dt нету в таблице

Читать полностью…

ClickHouse не тормозит

не понял, зачем делать фильтрации по датам
если в таблице А все "orders", в таблице B события оплаты "orders", и вам надо в для данных таблицы А проставить условный "payment_date" (например, использовав новый CoalescingMergeTree), то зачем что-то дополнительно проверять? в таблице B могут быть "orders", которых вообще нет в таблице A?

Читать полностью…

ClickHouse не тормозит

и например вот запрос который показывает проблемные таблицы


select database, table, partition, count() cnt from system.parts
where active
group by database, table, partition
order by cnt desc limit 20

Читать полностью…

ClickHouse не тормозит

а еть дока как правильно смотреть эти ddl?вот я не разраб. как мне понять где ошибка в ддл чтобы показать разрабу что менять?

Читать полностью…

ClickHouse не тормозит

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

Читать полностью…

ClickHouse не тормозит

Вы может по одной строке вставляете?

Читать полностью…

ClickHouse не тормозит

это в part_log надо смотреть по query_id и new_part и rows

Читать полностью…

ClickHouse не тормозит

system.query_thread_log'
как то отдельно включается в настройках?
вот если я хочу вывести топ запросов. которые пораждают мерджи иза мелких и частных вставок. как это сделать?

Читать полностью…

ClickHouse не тормозит

да, как вариант, обычный апдейт через инсерт
но так как Replacing тут не подходит, то можно сэмулировать Coalescing через Aggregating

Читать полностью…

ClickHouse не тормозит

а в чём был смысл такого партиционирования для таблиц весом в меньше гб зачастую?

Читать полностью…

ClickHouse не тормозит

т.е. в данном контексте вы предлагаете использовать AggregatingMergeTree как обход относительно нерабочего подхода CoalescingMergeTree - чтобы данные, которые сходятся по ключу, обновляли значения в остальных столбцах (меняя 0 в флаге is_in_table_B на 1), верно?

Читать полностью…

ClickHouse не тормозит

ок, подливайте каждую ночь данные за вчерашний день из таблицы B в AggregatingMergeTree
раз прилететь могут только orders, которые есть в таблице A, то скан на "вхождение значения" и фокусы с индексами вообще не нужны

Читать полностью…

ClickHouse не тормозит

я попроавил как было там

Читать полностью…

ClickHouse не тормозит

понял, тогда ручками через AggregatingMergeTree )

Читать полностью…

ClickHouse не тормозит

есть. я удалил лишнего

Читать полностью…

ClickHouse не тормозит

В таблице B не может быть orders, которые есть в таблице А - там могут быть только данные из таблицы А
Дополнительная проверка нужна для того, чтобы при проверке на наличие UUID из таблицы A в таблице B забрать меньше данных, отфильтровав какую-то часть по дате (тут как раз я добавил order_by по toYYYYMMDD(timestamp))
(При первичном прогоне это будут крупные блоки данных, но чем ближе к ежедневному инкременту, тем меньше данных надо будет отсмотреть, так как отфильтруется по дате большая часть вещей)

Читать полностью…

ClickHouse не тормозит

Всем привет!
Стоит такая задача - есть крупная табличка A ReplicatedMergeTree в клике с UUID измерений, которые еще не оплачены.
Есть другая табличка B ReplicatedMergeTree, в которой хранятся уже оплаченные измерения (доп инфа по транзакциям и тд).
Хочется обогатить табличку А информацией из таблицы B (и записать результат в таблицу C), чтобы получить флаг того, что оплата прошла, для дальнейших бизнес-нужд (использовать только табличку B нельзя, так как нужно иметь информацию о том, что измерение не было оплачено). Из-за специфики данных дата оплаты может быть в непредсказуемом промежутке после даты транзакции, то есть фильтрацию тут можно делать только такую, что из таблицы B берем все, что больше или равно по дате минимуму из таблицы A (нет никакого ограничения на сутки/2 недели/месяц).
Так как все измерения имеют уникальные UUID, то хотелось бы узнать, если кто-то встречался с такой проблемой:
1) Как лучше делать проверку на вхождение значения - накинул на таблицу B bloom_filter по полю ID, по которому идет поиск, но мб есть более умный подход по тюнингу (мб тут также кто-то крутил index_granularity для таблицы)
2) order_by по ID не выглядит хорошей идеей, так как UUID значения с высокой кардинальностью.

Заранее спасибо за ответы!

Читать полностью…

ClickHouse не тормозит

show create table T

смотрим на секцию partition by , если она есть

Читать полностью…

ClickHouse не тормозит

они могут не компактится по миллиарду причин, надо смотреть ddl таблицы и логи

Читать полностью…

ClickHouse не тормозит

что убрать?

может partitiion by millisecond

Читать полностью…

ClickHouse не тормозит

у меня разраб говорит что он даже кодом пытался убрать часть партом из таблицы где их 11к на 10 гб. и они не уменьшаются

Читать полностью…

ClickHouse не тормозит

Возможно хватит и квери лога, обычно я беру просто written_rows и count() из query_log и сразу видно мелковставку. Группируясь чаще по пользователю и временным интервалам типа 5/15/60 минут.
Ещё там есть колонка normalized_query_hash, но мне обычно хватает просто пользователя, писатель когда страдает мелковставкой, чаще всего он это делает со всеми запросами.
Но вообще где включаются эти и другие логи не сложно найти в докуметации https://clickhouse.com/docs/operations/server-configuration-parameters/settings
Только trace_log не включайте, на нагруженных кластерах может CPU в полку отправить.

Читать полностью…

ClickHouse не тормозит

Спасибо, пошел смотреть !

Читать полностью…
Подписаться на канал