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

Описание

Комбинатор MergeState можно применять к функции avg, чтобы объединить частичные состояния агрегатной функции типа AverageFunction(avg, T) и вернуть новое промежуточное состояние агрегации.

Пример использования

Комбинатор MergeState особенно полезен в сценариях многоуровневой агрегации, когда нужно объединять предварительно агрегированные состояния и сохранять их в виде состояний (а не финализировать) для дальнейшей обработки. Для наглядности рассмотрим пример, в котором мы преобразуем отдельные метрики производительности серверов в иерархические агрегации на нескольких уровнях: уровень сервера → уровень региона → уровень датацентра. Сначала создадим таблицу для хранения исходных данных:
Мы создадим целевую таблицу для агрегации на уровне сервера и определим Incremental materialized view, выполняющую роль триггера вставки для этой таблицы:
То же самое сделаем на региональном уровне и на уровне датацентра:
Затем вставим образец исходных данных в исходную таблицу:
Мы напишем три запроса для каждого уровня:
Можно вставить дополнительные данные:
Давайте снова проверим производительность на уровне датацентра. Обратите внимание, как вся цепочка агрегации автоматически обновилась:

См. также

Последнее изменение 2 июля 2026 г.