Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Настройки таблиц семейства MergeTree write_*

Эти настройки доступны в system.merge_tree_settings и автоматически генерируются на основе исходного кода ClickHouse.

write_final_mark

Тип
Bool
По умолчанию
1

Устаревшая настройка, не имеет эффекта.

write_marks_for_substreams_in_compact_parts

Тип
Bool
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
25.81По умолчанию включает запись меток для подпотоков в компактных частях
25.50новая настройка

Включает запись меток для каждого подпотока вместо каждого столбца в компактных частях. Это позволяет эффективно читать отдельные подстолбцы из части данных.

Например, столбец t Tuple(a String, b UInt32, c Array(Nullable(UInt32))) сериализуется в следующие подпотоки:

  • t.a для данных String элемента кортежа a
  • t.b для данных UInt32 элемента кортежа b
  • t.c.size0 для размеров массива элемента кортежа c
  • t.c.null для карты NULL вложенных элементов массива элемента кортежа c
  • t.c для данных UInt32 вложенных элементов массива элемента кортежа c

Когда эта настройка включена, для каждого из этих 5 подпотоков будет записываться отдельная метка. Это означает, что при необходимости мы сможем читать данные каждого отдельного подпотока из гранулы по отдельности. Например, если нужно прочитать подстолбец t.c, будут прочитаны только данные подпотоков t.c.size0, t.c.null и t.c, а данные подпотоков t.a и t.b читаться не будут. Когда эта настройка отключена, будет записываться метка только для столбца верхнего уровня t, а это означает, что из гранулы всегда будут читаться все данные столбца, даже если нужны данные только некоторых подпотоков.

Navigation