В таблицу на ReplacingMergeTree залили данные; что будет при чтении, если merge ещё не произошёл, и как получить актуальную версию записей?

До merge запрос может вернуть несколько версий одной записи. Для актуального результата используют FINAL либо явный выбор максимальной версии по ключу.

Короткий ответ

Что ответить на собеседовании

До merge запрос может вернуть несколько версий одной записи. Для актуального результата используют FINAL либо явный выбор максимальной версии по ключу.

Подробный разбор

Ответ с пояснениями

До merge запрос может вернуть несколько версий одной записи. Для актуального результата используют FINAL либо явный выбор максимальной версии по ключу.

ReplacingMergeTree объединяет строки с одинаковым ORDER BY; при наличии version выбирает запись с максимальной версией. Фоновые merges не гарантируют немедленную дедупликацию. SELECT ... FROM table FINAL выполняет необходимое объединение при чтении; альтернативой может быть argMax по версии с корректной обработкой равенства и удалений. Не заменяйте это постоянным принудительным OPTIMIZE FINAL.

Источник: clickhouse.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее