Эти настройки доступны в system.merge_tree_settings и автоматически генерируются на основе исходного кода ClickHouse.
write_final_mark
Устаревшая настройка, не имеет эффекта.
write_marks_for_substreams_in_compact_parts
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.8 | 1 | По умолчанию включает запись меток для подпотоков в компактных частях |
| 25.5 | 0 | новая настройка |
Включает запись меток для каждого подпотока вместо каждого столбца в компактных частях. Это позволяет эффективно читать отдельные подстолбцы из части данных.
Например, столбец t Tuple(a String, b UInt32, c Array(Nullable(UInt32))) сериализуется в следующие подпотоки:
t.aдля данных String элемента кортежаat.bдля данных UInt32 элемента кортежаbt.c.size0для размеров массива элемента кортежаct.c.nullдля карты NULL вложенных элементов массива элемента кортежаct.cдля данных UInt32 вложенных элементов массива элемента кортежаc
Когда эта настройка включена, для каждого из этих 5 подпотоков будет записываться отдельная метка. Это означает, что при необходимости мы сможем читать
данные каждого отдельного подпотока из гранулы по отдельности. Например, если нужно прочитать подстолбец t.c, будут прочитаны только данные
подпотоков t.c.size0, t.c.null и t.c, а данные подпотоков t.a и t.b читаться не будут. Когда эта настройка отключена,
будет записываться метка только для столбца верхнего уровня t, а это означает, что из гранулы всегда будут читаться все данные столбца, даже если нужны данные только некоторых подпотоков.