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