Обновление данных через загрузку в модели Aggregate
При использовании Aggregate Key Model в Doris обычно возникают следующие задачи:
- Нужно непрерывно записывать новые данные в таблицу с моделью Aggregate, объединяя новые значения с историческими в соответствии с правилами агрегации.
- Нужно обновлять только некоторые столбцы, сохраняя исторические результаты агрегации в остальных столбцах.
В этом документе описаны два способа обновления, которые модель Aggregate в Doris поддерживает для этих сценариев: обновление всей строки и частичное обновление столбцов.
Обзор способов обновления
| Способ обновления | Сценарий применения | Поддерживаемые способы загрузки | Поведение |
|---|---|---|---|
| Обновление всей строки | Запись полной строки с объединением новых и старых значений в соответствии с агрегатной функцией каждого столбца | Stream Load, Broker Load, Routine Load, Insert Into и другие | Новое и старое значения объединяются с помощью агрегатной функции для получения нового агрегированного значения |
| Частичное обновление столбцов | Обновление только некоторых столбцов с сохранением текущих результатов агрегации в остальных столбцах | См. Частичное обновление столбцов | В объединении с агрегацией участвуют только указанные столбцы |
Обновление всей строки
При записи данных в модель Aggregate (модель Agg) любым из поддерживаемых Doris способов загрузки, например Stream Load, Broker Load, Routine Load или Insert Into, движок объединяет каждое новое значение с текущим агрегированным значением с помощью агрегатной функции, заданной для этого столбца, и получает новое агрегированное значение.
Агрегированное значение может формироваться на следующих этапах:
- Во время загрузки: объединение выполняется в реальном времени при записи данных.
- Во время асинхронного процесса Compaction: агрегация завершается в ходе фонового объединения данных.
Независимо от того, на каком этапе формируется агрегированное значение, результат, возвращаемый пользователю при выполнении запроса, одинаков.
Частичное обновление столбцов
Aggregate Key Model поддерживает обновление только некоторых столбцов таблицы с сохранением текущих результатов агрегации в остальных столбцах. Подробности о создании таблицы, примеры записи данных и замечания по использованию приведены в документе Частичное обновление столбцов.