aggregate_function_input_format
Как входные форматы читают столбцы типаAggregateFunction.
Возможные значения:
state— сериализованное состояние агрегатной функции в том виде, в каком его записывают выходные форматы (значение по умолчанию).value— значение аргумента агрегатной функции или Tuple из аргументов, если их несколько. Значение агрегируется в состояние.array— массив значений, описанных выше для параметраvalue. Все элементы массива агрегируются в состояние.
value и array формат читает столбец так, как если бы тот имел тип самих значений: T для AggregateFunction(f, T), Tuple(T1, T2) для AggregateFunction(f, T1, T2) или Array от них в режиме array. Значения записываются в том представлении, которое формат использует для этого типа: число или строка в текстовом формате, JSON-массив в JSON-форматах, двоичное кодирование типа в RowBinary или Native, столбец этого типа в Parquet и так далее. Это справедливо для любого входного формата, в том числе для AggregateFunction, вложенного в Array, Tuple или Map.
Примеры
Для таблицы со структурой:
aggregate_function_input_format = 'value':
aggregate_function_input_format = 'array':
value и array работают медленнее используемого по умолчанию формата state, поскольку требуют создания и агрегирования значений при вставке.
aggregate_functions_null_for_empty
Включает или отключает переписывание всех агрегатных функций в запросе, добавляя к ним суффикс -OrNull. Включите этот параметр для соответствия стандарту SQL. Это реализовано с помощью перезаписи запроса (аналогично настройке count_distinct_implementation), чтобы обеспечить согласованные результаты для распределённых запросов. Возможные значения:- 0 — Отключено.
- 1 — Включено.
aggregate_functions_null_for_empty = 0 получится:
aggregate_functions_null_for_empty = 1 результат будет таким: