Это зависит от СУБД и типа materialized view. В ClickHouse инкрементальное представление обрабатывает новые вставки, но не пересчитывается автоматически из-за изменения старой строки.
Что произойдёт с конечной витриной, построенной materialized view из RAW-слоя, если после перелива изменится существующая строка в RAW-таблице?
Это зависит от СУБД и типа materialized view. В ClickHouse инкрементальное представление обрабатывает новые вставки, но не пересчитывается автоматически из-за изменения старой строки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт с конечной витриной, построенной materialized view из RAW-слоя, если после перелива изменится существующая строка в RAW-таблице?
Ответ
Это зависит от СУБД и типа materialized view. В ClickHouse инкрементальное представление обрабатывает новые вставки, но не пересчитывается автоматически из-за изменения старой строки.
Для обычного incremental MV мутация или удаление в RAW не исправит уже записанные результаты в целевой таблице. Нужен отдельный пересчёт затронутого периода либо модель версий и компенсирующих событий.
Refreshable MV работает иначе и может пересобирать результат по расписанию. В PostgreSQL материализованное представление обновляют через REFRESH. Поэтому в исходном вопросе важно уточнить движок и вид представления: слово «materialized» само по себе не задаёт механизм актуализации.
Источник: clickhouse.com.