这些设置可在 system.settings 中查看,并根据 源代码 自动生成。
aggregate_function_input_format
类型
AggregateFunctionInputFormat
默认值
state
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.12 | state | 新增设置,用于控制 INSERT 操作期间 AggregateFunction 的输入格式。设置值默认为 state |
INSERT 操作期间 AggregateFunction 输入的格式。
可能的值:
state— 包含序列化状态的二进制字符串 (默认值) 。这是默认行为,即 AggregateFunction 值应以二进制数据形式提供。value— 此格式要求提供聚合函数参数的单个值;如果有多个参数,则要求提供由这些参数组成的 tuple。它们会使用相应的 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 │
└───────────────┴──────────────┘