Size: a a a

ClickHouse не тормозит

2020 May 30

DT

Dmitry Titov in ClickHouse не тормозит
ты можешь сделать
set send_logs_level='trace'
в сессии
источник

DT

Dmitry Titov in ClickHouse не тормозит
и там покажет, что и сколько нужно прочесть
источник

AN

Aleksey N in ClickHouse не тормозит
Всем, привет!
Подскажите пожалуйста. Есть сценарий бд, в которой нет никого разумного обоснования использовать несколько партиций, т.е. все данные можно просто положить в одну партицию. Возникает вопрос, не возникнет ли в будещем проблем, в виду того, что на диске нужно будет резервировать больше свободного места для процессинга такой одной большой партиции? Возможно стоит искусственно разделить данные по нескольким партициям, что бы данные не сливались в один большой файл?

Предпологается использование ReplacingMergeTree и TTL для записей
источник

DT

Dmitry Titov in ClickHouse не тормозит
Aleksey N
Всем, привет!
Подскажите пожалуйста. Есть сценарий бд, в которой нет никого разумного обоснования использовать несколько партиций, т.е. все данные можно просто положить в одну партицию. Возникает вопрос, не возникнет ли в будещем проблем, в виду того, что на диске нужно будет резервировать больше свободного места для процессинга такой одной большой партиции? Возможно стоит искусственно разделить данные по нескольким партициям, что бы данные не сливались в один большой файл?

Предпологается использование ReplacingMergeTree и TTL для записей
Кликхаус и не будет сливать данные в 1 большой файл(на самом деле парт состоит из большого числа файлов), у него есть некоторые ограничения на максимальный размер парта
источник

DT

Dmitry Titov in ClickHouse не тормозит
Но если вы хотите использовать TTL, то лучше делить на партиции, тогда можно будет дропать сразу целый парт-партицию, а не заниматся сканом ее и вычищению ненужных более строк
источник

DT

Dmitry Titov in ClickHouse не тормозит
Dmitry Titov
Кликхаус и не будет сливать данные в 1 большой файл(на самом деле парт состоит из большого числа файлов), у него есть некоторые ограничения на максимальный размер парта
OPTIMIZE FINAL не будет учитывать это ограничение конечно
источник

AN

Aleksey N in ClickHouse не тормозит
@unamedrus Спасибо. Как раз OPTIMIZE FINAL вызывает наибольшие сомнения, т.к. его вызов сливает партицию в один файл (с учетом отдельных колонок конечно). Просто педпологали, вызывать примерно раз в пару недель OPTIMIZE FINAL, для "схлопывания" записей и обработку TTL
источник

DT

Dmitry Titov in ClickHouse не тормозит
Aleksey N
@unamedrus Спасибо. Как раз OPTIMIZE FINAL вызывает наибольшие сомнения, т.к. его вызов сливает партицию в один файл (с учетом отдельных колонок конечно). Просто педпологали, вызывать примерно раз в пару недель OPTIMIZE FINAL, для "схлопывания" записей и обработку TTL
Для TTL есть отдельно Materialize TTL емнип
источник

DT

Dmitry Titov in ClickHouse не тормозит
у вас какой TTL будет?
источник

AN

Aleksey N in ClickHouse не тормозит
видимо, все таки, стоит сделать "искусственное" партиционирования. Хотя бы на десяток партиций. Что бы не держать в резерве на дисках 50% свободного пространства.
источник

AN

Aleksey N in ClickHouse не тормозит
TTL будет порядка одного года
источник

DT

Dmitry Titov in ClickHouse не тормозит
Ну я если честно не вижу проблем в партицировании по месяцам тогда.
источник

DT

Dmitry Titov in ClickHouse не тормозит
вдруг вы потом захотите воспользоваться storage_policy
источник

DT

Dmitry Titov in ClickHouse не тормозит
Другой вопрос, если вам желательно схлопывать допустим все id = 3 за весь год в 1 строку, тогда это будет возможно немного не удобно
источник

AN

Aleksey N in ClickHouse не тормозит
у нас будет большое количество "схлопывание" записей на интервале в 1 год. Если делать партиционирование по месяцам, то получится, что в каждом месяце будет практически полная копия данных, что грубо говоря, дает вплоть до x12 больше затрат на размер хранилища
источник

DT

Dmitry Titov in ClickHouse не тормозит
а сколько вообще данных?
источник

AN

Aleksey N in ClickHouse не тормозит
>100e9 записей
источник

AN

Aleksey N in ClickHouse не тормозит
> если вам желательно схлопывать допустим все id = 3 за весь год в 1 строку
да, как раз такой кейс. Причем на один id может приходится до тысяч записей
источник

DT

Dmitry Titov in ClickHouse не тормозит
Ну в голову в первую очередь приходит партицирование вида cityHash64(id) % 10 или id % 10
хотя бы потому что при OPTIMIZE клик по очереди прогоняет все партиции в цикле и мержит их парты
источник

AN

Aleksey N in ClickHouse не тормозит
именно так, это как раз то, что я назвал "искуственным" партиционирования. Т.е. разбить данные мы можем, но для бизнеса какого-то выйгрыша от этого не будет
источник