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

Семейство движков 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Быстрый поиск терминов в тексте.