Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

aggregate_* настройки сеанса

Эти настройки доступны в system.settings и автоматически сгенерированы на основе исходного кода.

aggregate_function_input_format

Тип
AggregateFunctionInputFormat
По умолчанию
state
История версий
ВерсияЗначение по умолчаниюКомментарий
25.12stateНовая настройка для управления форматом входных данных AggregateFunction при операциях INSERT. Значение настройки по умолчанию — state

Формат входных данных AggregateFunction при операциях INSERT.

Возможные значения:

  • state — Двоичная строка с сериализованным состоянием (по умолчанию). Это стандартное поведение, при котором значения AggregateFunction должны передаваться как двоичные данные.
  • value — Формат ожидает одно значение аргумента агрегатной функции или, в случае нескольких аргументов, их кортеж. Они будут десериализованы с помощью соответствующего IDataType или DataTypeTuple, а затем агрегированы для формирования состояния.
  • array — Формат ожидает Array значений, как описано выше для варианта value. Все элементы массива будут агрегированы для формирования состояния.

Примеры

Для таблицы со структурой:

CREATE TABLE example (
    user_id UInt64,
    avg_session_length AggregateFunction(avg, UInt32)
);

При aggregate_function_input_format = 'value':

INSERT INTO example FORMAT CSV
123,456

При aggregate_function_input_format = 'array':

INSERT INTO example FORMAT CSV
123,"[456,789,101]"

Примечание: форматы value и array работают медленнее, чем формат state, используемый по умолчанию, поскольку во время вставки требуют создания и агрегации значений.

aggregate_functions_null_for_empty

Тип
Bool
По умолчанию
0

Включает или отключает переписывание всех агрегатных функций в запросе, добавляя к ним суффикс -OrNull. Включите этот параметр для соответствия стандарту SQL. Это реализовано с помощью перезаписи запроса (аналогично настройке count_distinct_implementation), чтобы обеспечить согласованные результаты для распределённых запросов.

Возможные значения:

  • 0 — Отключено.
  • 1 — Включено.

Пример

Рассмотрим следующий запрос с агрегатными функциями:

SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;

При aggregate_functions_null_for_empty = 0 получится:

┌─SUM(-1)─┬─MAX(0)─┐
│       0 │      0 │
└─────────┴────────┘

При aggregate_functions_null_for_empty = 1 результат будет таким:

┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│          NULL │         NULL │
└───────────────┴──────────────┘
Navigation