Skip to main content
这些设置可在 system.settings 中查看,并根据 源代码 自动生成。

aggregate_function_input_format

输入格式如何读取 AggregateFunction 类型的列。 可能的取值:
  • state — 聚合函数的序列化状态,即输出格式写出的形式 (默认值) 。
  • value — 聚合函数某个参数的值;若参数有多个,则为这些参数组成的元组。该值会经过聚合形成状态。
  • array — 由上述 value 选项所描述的值组成的数组。数组中的所有元素都会经过聚合形成状态。
在 value 和 array 模式下,格式会按值的类型来读取该列:AggregateFunction(f, T) 按 T 读取,AggregateFunction(f, T1, T2) 按 Tuple(T1, T2) 读取,在 array 模式下则按相应的 Array 读取。值采用该格式针对相应类型所使用的表示形式写出:在文本格式中为数字或字符串,在 JSON 格式中为 JSON 数组,在 RowBinary 或 Native 中为该类型的二进制编码,在 Parquet 中为该类型的列,依此类推。这适用于所有输入格式,也适用于嵌套在 Array、Tuple 或 Map 中的 AggregateFunction。 示例 对于具有如下结构的表:
当 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 时,结果为:
最后修改于 2026年9月26日