Пытаюсь для себя разобрать sum и sumState и в чём различия. Какую функцию когда лучше применять?
-State это просто комбинатор, для sum не имеет смысла, потому что там внутри тоже самое передастся что и для sum в результат -State комбиаторы используются я AggregatingMergeTree для хранения промежуточных состояний для ускорения, чтобы потом через -Merge комбинаторы финализировать аггрегацию
во первых раньше не было SimpleAggregateFunction во вторых внутри под капотом когда вы делаете запрос sum, испольуются AggregateFunction и мультредные и мультишардные вычисления на этом основаны, тред вычисляет sumState, отдает, state-ы мержаться в новые state, затем инициатор финализирует, ну для универсальности это все сделано через AggregateFunction
Обсуждают сегодня