Size: a a a

ClickHouse не тормозит

2021 February 09

D

Dj in ClickHouse не тормозит
Alexey Sokolov
Спасибо, гляну.

А можно чуть-чуть теории? Как работает КХ в случае таких запросов и как количество портов влияет на подобные запросы?
вы берете специфичный кейс, который не оптимизирован (пока).
если взять select * from xxx where aaa=4 limit 10.
то КХ не знает когда эти 10 попадутся и будет лопатить все подряд.
также на таблице может висеть ROW POLICY что тоже обязывает фильтровать.

обычно когда у вас много партов причины две:
- у вас высокая гранулярность партиций, тогда лучше просто зафорсить использование partitionkey во всех запросах (force_index_by_date=1)
- у вас не работают мерджи, это надо чинить.

ну и можно сделать ФР на оптимизацию таких селектов. но это в реальной жизни не так уж и нужно учитывая все эти workaroundы
источник

D

Dj in ClickHouse не тормозит
Alexey Sokolov
1000 файлов даже если limit 10?
^^
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Dj
вы берете специфичный кейс, который не оптимизирован (пока).
если взять select * from xxx where aaa=4 limit 10.
то КХ не знает когда эти 10 попадутся и будет лопатить все подряд.
также на таблице может висеть ROW POLICY что тоже обязывает фильтровать.

обычно когда у вас много партов причины две:
- у вас высокая гранулярность партиций, тогда лучше просто зафорсить использование partitionkey во всех запросах (force_index_by_date=1)
- у вас не работают мерджи, это надо чинить.

ну и можно сделать ФР на оптимизацию таких селектов. но это в реальной жизни не так уж и нужно учитывая все эти workaroundы
Если добавить условие, то логика чтения всех партиций понятна, а вот без условий и сортировок - нет. :/

Кстати, посмотрел - там 74 партиции всего, но 63 млрд записей на 1.2тб таблицу.
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Ещё вопрос - есть ReplicatedMergeTree, partition by (ts), ttl ts + toIntervalDay(2).

Смотрю партиции - висят полные активные партиции за 7 дней, хотя ожидаю видеть там только за 3. В какую сторону копать?
источник

A

Andrey in ClickHouse не тормозит
Коллеги , всех приветствую!  
Подскажите с кейсом : хочу удалить старые данные (partitions) из кластера , собсна хочется понять - это надо сделать на каждом узле или как ?
источник

A

Andrey in ClickHouse не тормозит
(я не гуру в КХ, сильно не ругайте за может быть глупый вопрос)
источник

3

3ldar in ClickHouse не тормозит
Andrey
Коллеги , всех приветствую!  
Подскажите с кейсом : хочу удалить старые данные (partitions) из кластера , собсна хочется понять - это надо сделать на каждом узле или как ?
источник

M

Mishanya in ClickHouse не тормозит
Andrey
Коллеги , всех приветствую!  
Подскажите с кейсом : хочу удалить старые данные (partitions) из кластера , собсна хочется понять - это надо сделать на каждом узле или как ?
on cluster можно добавить и удалится на всем кластере
источник

A

Andrey in ClickHouse не тормозит
Благодарю , коллеги!
источник

D

Dj in ClickHouse не тормозит
Alexey Sokolov
Если добавить условие, то логика чтения всех партиций понятна, а вот без условий и сортировок - нет. :/

Кстати, посмотрел - там 74 партиции всего, но 63 млрд записей на 1.2тб таблицу.
ну а сколько партов? сколько колонок?
источник

D

Dj in ClickHouse не тормозит
Alexey Sokolov
Ещё вопрос - есть ReplicatedMergeTree, partition by (ts), ttl ts + toIntervalDay(2).

Смотрю партиции - висят полные активные партиции за 7 дней, хотя ожидаю видеть там только за 3. В какую сторону копать?
скорее всего, ttl не успевал отрабатывать, в старой версии он дропал один парт и больше ничего не делал, раз в день.  можете попробовать уменьшить интервал отработки merge_with_ttl_timeout если у вас ttl_only_drop_parts=1,
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Alexey Sokolov
Ещё вопрос - есть ReplicatedMergeTree, partition by (ts), ttl ts + toIntervalDay(2).

Смотрю партиции - висят полные активные партиции за 7 дней, хотя ожидаю видеть там только за 3. В какую сторону копать?
Пардон, не туда посмотрел.
Вопрос снимается.
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Dj
ну а сколько партов? сколько колонок?
67 столбцов, 347 партов
источник

D

Dj in ClickHouse не тормозит
ну вот у вас (67+2~3) x 347 файла
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Dj
ну вот у вас (67+2~3) x 347 файла
Воистину. Пойду думать, спасибо. :)
источник

DS

Denis Stadnik in ClickHouse не тормозит
Поясните как работает ASOF JOIN. Каждому элементу левой таблицы вернется 1 элемент правой?
источник

3

3ldar in ClickHouse не тормозит
Denis Stadnik
Поясните как работает ASOF JOIN. Каждому элементу левой таблицы вернется 1 элемент правой?
Лучше расскажите, какую задачу решаете. Если вам декартово произведение нужно отрубить, то используйте any join
источник

DL

Dmitry Lukovkin in ClickHouse не тормозит
Простите за глупый вопрос. В доках написано, что КХ использует сжатие. Если у нас дефолтные настройки, будет ли сжатие данных на диске?
<compression incl="clickhouse_compression">
   <case>
       <min_part_size>10000000000</min_part_size>
       <min_part_size_ratio>0.01</min_part_size_ratio>
       <method>zstd</method>
   </case>
</compression>
Вообще возможно как то "упаковать" данные на диске, чтобы они меньше места занимали?
источник

DS

Denis Stadnik in ClickHouse не тормозит
3ldar
Лучше расскажите, какую задачу решаете. Если вам декартово произведение нужно отрубить, то используйте any join
нет, я просто хочу понять как работает ASOF JOIN под капотом
источник

D

Dj in ClickHouse не тормозит
Dmitry Lukovkin
Простите за глупый вопрос. В доках написано, что КХ использует сжатие. Если у нас дефолтные настройки, будет ли сжатие данных на диске?
<compression incl="clickhouse_compression">
   <case>
       <min_part_size>10000000000</min_part_size>
       <min_part_size_ratio>0.01</min_part_size_ratio>
       <method>zstd</method>
   </case>
</compression>
Вообще возможно как то "упаковать" данные на диске, чтобы они меньше места занимали?
Будет
источник