Доступно с версии 25.6Этот движок таблицы доступен начиная с версии 25.6 как в OSS, так и в Cloud.
CoalescingMergeTree ClickHouse заменяет все строки с одним и тем же первичным ключом (или, точнее, с одним и тем же ключом сортировки) одной строкой, содержащей последние не-NULL-значения для каждого столбца.
Это позволяет выполнять upsert на уровне столбцов, то есть обновлять только отдельные столбцы, а не строки целиком.
CoalescingMergeTree предназначен для использования с типами Nullable в неключевых столбцах. Если столбцы не имеют типа Nullable, поведение будет таким же, как у ReplacingMergeTree.
Создание таблицы
Параметры CoalescingMergeTree
Столбцы
columns — необязательный параметр. Кортеж с именами столбцов, значения в которых будут объединяться. Указанные столбцы не должны входить в партицию или ключ сортировки. Если columns не указан, ClickHouse объединяет значения во всех столбцах, которые не входят в ключ сортировки.
Секции запроса
CoalescingMergeTree требуются те же секции, что и при создании таблицы MergeTree.
Пример использования
FINAL заставляет ClickHouse применять логику слияния на этапе выполнения запроса, гарантируя получение корректного, объединённого “последнего” значения для каждого столбца. Это самый безопасный и точный способ при запросах к таблице CoalescingMergeTree.
Подход с
GROUP BY может возвращать некорректные результаты, если части данных в основе таблицы ещё не были полностью слиты.