Перейти к содержимому
Последнее обновление

Обновление данных через загрузку в модели 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, движок объединяет каждое новое значение с текущим агрегированным значением с помощью агрегатной функции, заданной для этого столбца, и получает новое агрегированное значение.

Агрегированное значение может формироваться на следующих этапах:

  1. Во время загрузки: объединение выполняется в реальном времени при записи данных.
  2. Во время асинхронного процесса Compaction: агрегация завершается в ходе фонового объединения данных.

Независимо от того, на каком этапе формируется агрегированное значение, результат, возвращаемый пользователю при выполнении запроса, одинаков.

Частичное обновление столбцов​

Aggregate Key Model поддерживает обновление только некоторых столбцов таблицы с сохранением текущих результатов агрегации в остальных столбцах. Подробности о создании таблицы, примеры записи данных и замечания по использованию приведены в документе Частичное обновление столбцов.