184 похожих чатов

Добрый вечер, нужна подсказка или что почитать по сжатию данных

кликхауса
интересен конфиг <compression> и какие параметры как влияют, может кто разбирал

Есть большое желание как-то снизить размер данных на диске, а заодно понять как этот блок можно использовать и к чему это приводит.

Наверно первый вопрос, можно ли на рабочей БД поменять тип сжатия на zstd и потом вернуть дефолт (Вопрос в том, насколько безопасно менять тип сжатия, не повредятся ли данные)?

9 ответов

20 просмотров

Не надо трогать его, лучше крутите сжатие отдельных колонок профитп будет больше

Ничего страшного не случится, если данные пожаты разными методами. Все прочитается успешно.

там вроде все понятно из описания? Проблем поменять туда сюда нет, но менять надо на обеих репликах как можно более одновременно

Витя-Сергеев Автор вопроса
Denny [Altinity]
там вроде все понятно из описания? Проблем поменят...

Возможно мне просто сложно понять) Хм, но кажется раза с 10 понял, но не до конца. "Минимальный размер части таблицы" Что за часть и как она определяется, первая мысль была про партицию. Сейчас появилось другое понимание: Например 2 case: У одного минимальный размер части 10.000 У второго 40.000 Если в таблице 100.000 строк, он для 80.000 использует второй кейс а для оставшихся первый? Если в таблицу прилетит ещё 20.000 записей он возьмет те 20.000 из первого кейса, сложит с новыми и сожмет по второму(40к) кейс?

Витя Сергеев
Возможно мне просто сложно понять) Хм, но кажется ...

каждый инсерт создает парт уровня _0. после n insert-в образуется n партов _0. шедулер мержей анализирует постоянно, и в какой-то момент принимает решение, m первых партов пора cмержить в единый парт, получается парт уровня _1 парты разных уровней постоянно мержатся из мелких в крупные все это в рамках ОДНОЙ партиции и так все продолжается пока размер партов не достигнет макс. размера 150ГБ. И например мерж решает помержить 6 каких-от партов, считает общий размер этих партов, если размер больше 100000000, то жмем ZSTD, меньше LZ4 , таким образом все парты со временем становятся пожатыми ZSTD, пока они маленькие и постоянно ре-мержатся в более крупные, они пожаты LZ4. для _0 используется размер несжатого парта

Витя-Сергеев Автор вопроса
Denny [Altinity]
каждый инсерт создает парт уровня _0. после n inse...

посмотрел, самый большой парт с именем 202107_21608_37058_24_29583, получается он пережил 29583 мерждой?

Витя-Сергеев Автор вопроса
Denny [Altinity]
каждый инсерт создает парт уровня _0. после n inse...

вот на самом деле с таким объяснением и запросом с получением этих партов сильно понятнее стало )

Витя Сергеев
посмотрел, самый большой парт с именем 202107_2160...

202107 -- партиция _21608 -- начальный блок (автоинкремент) _37058 -- конечный блок _24 уровень мержа _29583 -- версия мутации

Витя Сергеев
посмотрел, самый большой парт с именем 202107_2160...

_29583 -- мутации / alter table update / delete -- это путь в никуда.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта