Семейство движков MergeTree
Табличные движки из семейства MergeTree являются ядром возможностей ClickHouse по хранению данных. Они предоставляют большинство функций для обеспечения отказоустойчивости и высокопроизводительного чтения данных: колоночное хранение, настраиваемое разбиение на партиции, разрежённый первичный индекс, вторичные индексы пропуска данных и т. д.
Базовый табличный движок MergeTree можно считать движком по умолчанию для одиночных экземпляров ClickHouse, поскольку он универсален и практически применим для широкого спектра сценариев.
Для промышленной эксплуатации предпочтительно использовать ReplicatedMergeTree, поскольку он добавляет отказоустойчивость ко всем возможностям обычного движка MergeTree. Дополнительным преимуществом является автоматическое дедуплицирование данных при ингестии, поэтому ПО может безопасно повторять попытку, если при вставке возникла сетевая ошибка.
Все остальные движки семейства MergeTree добавляют дополнительную функциональность для некоторых специфических сценариев использования. Обычно это реализуется как дополнительная обработка данных в фоновом режиме.
Основной недостаток движков MergeTree состоит в том, что они достаточно «тяжёлые». Поэтому типичный подход — не создавать их слишком много. Если вам нужно множество небольших таблиц, например для временных данных, рассмотрите использование семейства движков Log.
| Page | Description |
|---|---|
| MergeTree table engine | Движки таблиц семейства MergeTree спроектированы для высокой скорости приёма и обработки очень больших объёмов данных. |
| Replicated* table engines | Обзор репликации данных с использованием семейства движков таблиц Replicated* в ClickHouse. |
| Custom Partitioning Key | Как добавить пользовательский ключ партиционирования в таблицы MergeTree. |
| ReplacingMergeTree table engine | Отличается от MergeTree тем, что удаляет дублирующиеся записи с одинаковым значением ключа сортировки (секция таблицы ORDER BY, а не PRIMARY KEY). |
| CoalescingMergeTree table engine | CoalescingMergeTree наследует возможности движка MergeTree. Его ключевая особенность — автоматическое сохранение последнего ненулевого значения каждого столбца при слиянии частей данных. |
| SummingMergeTree table engine | SummingMergeTree наследует возможности движка 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 | Позволяет быстро находить искомые слова и фразы в тексте. |