Всем привет! Публикую второй пак, 4 шпаргалки по MergeTree движкам. Вся механика работы показана схемами, а все примеры проверены на ClickHouse 26.9.2.1.
MergeTree. Как устроен основной движок: колонки, гранулы и засечки, поиск по первичному индексу, порядок колонок в ключе, слияния, партиции, удаление данных и мутации.
ReplacingMergeTree. Какие строки считаются дублями, какая версия остаётся, почему дубли видны до слияния, зачем FINAL и как удалять строки через is_deleted.
SummingMergeTree. Какие колонки суммируются, как правильно читать сумму, когда строка исчезает, чем опасно переполнение и как хранить среднее.
AggregatingMergeTree. Как хранятся промежуточные состояния агрегации, запись через -State и чтение через -Merge, почему уникальных пользователей и средние нельзя просто сложить и когда хватит SimpleAggregateFunction.
Если нужно собрать шпаргалки по другим темам, пишите в комментариях.
P.S. Систематизировать знания и получить крепкую базу по ClickHouse можно на моем бесплатном курсе «ClickHouse с нуля».