Перейти к основному содержанию
Перейти к основному содержанию

Семейство движков MergeTree

Табличные движки из семейства MergeTree являются ядром возможностей ClickHouse по хранению данных. Они предоставляют большинство функций для обеспечения отказоустойчивости и высокопроизводительного чтения данных: колоночное хранение, настраиваемое разбиение на партиции, разрежённый первичный индекс, вторичные индексы пропуска данных и т. д.

Базовый табличный движок MergeTree можно считать движком по умолчанию для одиночных экземпляров ClickHouse, поскольку он универсален и практически применим для широкого спектра сценариев.

Для промышленной эксплуатации предпочтительно использовать ReplicatedMergeTree, поскольку он добавляет отказоустойчивость ко всем возможностям обычного движка MergeTree. Дополнительным преимуществом является автоматическое дедуплицирование данных при ингестии, поэтому ПО может безопасно повторять попытку, если при вставке возникла сетевая ошибка.

Все остальные движки семейства MergeTree добавляют дополнительную функциональность для некоторых специфических сценариев использования. Обычно это реализуется как дополнительная обработка данных в фоновом режиме.

Основной недостаток движков MergeTree состоит в том, что они достаточно «тяжёлые». Поэтому типичный подход — не создавать их слишком много. Если вам нужно множество небольших таблиц, например для временных данных, рассмотрите использование семейства движков Log.

PageDescription
MergeTree table engineДвижки таблиц семейства MergeTree спроектированы для высокой скорости приёма и обработки очень больших объёмов данных.
Replicated* table enginesОбзор репликации данных с использованием семейства движков таблиц Replicated* в ClickHouse.
Custom Partitioning KeyКак добавить пользовательский ключ партиционирования в таблицы MergeTree.
ReplacingMergeTree table engineОтличается от MergeTree тем, что удаляет дублирующиеся записи с одинаковым значением ключа сортировки (секция таблицы ORDER BY, а не PRIMARY KEY).
CoalescingMergeTree table engineCoalescingMergeTree наследует возможности движка MergeTree. Его ключевая особенность — автоматическое сохранение последнего ненулевого значения каждого столбца при слиянии частей данных.
SummingMergeTree table engineSummingMergeTree наследует возможности движка MergeTree. Его ключевая особенность — автоматическое суммирование числовых данных при слиянии частей данных.
AggregatingMergeTree table engineЗаменяет все строки с одинаковым первичным ключом (или, точнее, с одинаковым ключом сортировки) одной строкой (в пределах одной части данных), которая хранит комбинацию состояний агрегатных функций.
CollapsingMergeTree table engineНаследует возможности MergeTree, но добавляет логику схлопывания строк в процессе слияния.
VersionedCollapsingMergeTree table engineОбеспечивает быструю запись постоянно изменяющихся состояний объектов и фоновое удаление устаревших состояний объектов.
GraphiteMergeTree table engineПредназначен для прореживания и агрегирования/усреднения (rollup) данных Graphite.
Exact and Approximate Vector SearchДокументация по точному и приближенному векторному поиску.
Full-text Search using Text IndexesПозволяет быстро находить искомые слова и фразы в тексте.