avgMergeState
Описание
Комбинатор MergeState
можно применять к функции avg
,
чтобы объединить частичные состояния агрегатов типа AverageFunction(avg, T)
и
вернуть новое промежуточное состояние агрегации.
Пример использования
Комбинатор MergeState
особенно полезен для сценариев агрегации многоуровневой
структуры, когда вы хотите объединить предварительно агрегированные состояния и
сохранить их в виде состояний (а не финализировать) для дальнейшей обработки.
Чтобы проиллюстрировать, мы рассмотрим пример, в котором мы преобразуем
индивидуальные метрики производительности серверов в иерархические
агрегации на нескольких уровнях: уровень сервера → уровень региона
→ уровень датацентра.
Сначала создадим таблицу для хранения сырых данных:
Создадим целевую таблицу агрегации на уровне сервера и определим инкрементное материализованное представление, действующее как триггер вставки:
То же самое мы сделаем для уровней региона и датацентра:
Затем мы вставим образцы сырых данных в исходную таблицу:
Напишем три запроса для каждого из уровней:
- Уровень сервиса
- Региональный уровень
- Уровень датацентра
Мы можем вставить больше данных:
Давайте еще раз проверим производительность на уровне датацентра. Обратите внимание, как вся цепочка агрегации обновилась автоматически: