allow_aggregate_partitions_independently
ReadFromMergeTree 中的启发式规则会在布局不理想时 (分区过少、分区过多,或分区大小严重失衡) 自动禁用该优化;如需绕过这些检查,请参见 force_aggregate_partitions_independently。
allow_archive_path_syntax
<archive> :: <file>,前提是归档文件具有正确的扩展名。
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
receive_data_timeout 超时时间内进度没有更新) ;否则,一旦首次取得进度,就会禁止切换副本。
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_fuzz_query_functions
fuzzQuery 函数,该函数会对查询字符串进行随机 AST 变更。
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader,该函数可用于获取当前 HTTP 请求的请求头值。出于安全考虑,此功能默认未启用,因为某些请求头 (如 Cookie) 可能包含敏感信息。请注意,X-ClickHouse-*、Authentication 和 Authorization 请求头始终受限,无法通过此函数获取。
allow_hyperscan
allow_iceberg_remove_orphan_files
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
允许执行向 Iceberg 插入数据的 insert 查询。
allow_introspection_functions
- 1 — 启用内部信息函数。
- 0 — 禁用内部信息函数。
allow_key_condition_coalesce_rewrite
coalesce 或 ifNull 的 WHERE/PREWHERE 谓词裁剪粒度。若不启用此设置,这类谓词对索引分析是透明的,无法进行裁剪,因此即使某些粒度不可能匹配,仍然会被读取。该设置只影响读取哪些粒度;查询结果不会改变,因为行仍会按原始谓词进行过滤。
在索引分析之前,会重写两种谓词形态:
- 将针对
coalesce/ifNull的比较 (例如coalesce(a, b) = 5) 改写为析取形式,以便每个参数上的索引都能参与裁剪:a = 5 OR (a IS NULL AND b = 5),参数更多时也会按此方式扩展。 - 将带有假值 (零) 常量默认值且直接用作条件的
coalesce/ifNull(例如ifNull(a = 5, 0)或coalesce(a = 5, 0)) 解包为其内部谓词a = 5。这类包装会将内部谓词的三值结果收敛为确定的布尔值 (即将NULL映射为false) 。
allow_limit_by_partitions_independently
LIMIT BY 列的确定性函数时,启用在独立线程中按分区分别计算 LIMIT BY。
allow_materialized_view_with_bad_select
allow_minmax_index_for_json
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nullable_tuple_in_extracted_subcolumns
Tuple(...) 的提取子列是否可以设为 Nullable(Tuple(...)) 类型。
false:返回Tuple(...),并对缺少该子列的行使用默认 Tuple 值。true:返回Nullable(Tuple(...)),并对缺少该子列的行使用NULL。
Nullable(Tuple(...)) 列;这一点由 enable_nullable_tuple_type 控制。
ClickHouse 使用服务器启动时加载的此设置值。
通过 SET 或查询级 SETTINGS 所做的更改不会改变提取子列的行为。
要更改提取子列的行为,请在启动 profile 配置 (例如 users.xml) 中更新 allow_nullable_tuple_in_extracted_subcolumns,然后重启服务器。
allow_rank_dense_rank_arguments
RANK 和 DENSE_RANK 窗口函数传递参数,以保持向后兼容。
根据 SQL 标准,RANK 和 DENSE_RANK 不接受任何参数——它们仅根据
OVER (ORDER BY ...) 窗口对行进行排名。在 26.5 之前的 ClickHouse 版本中,类似
RANK(x) OVER (...) 的查询会静默接受并忽略该参数,这会导致用户困惑
(显式写出的参数看起来似乎会影响排名,但实际上并不会) 。
当此设置为 false (默认值) 时,RANK 和 DENSE_RANK 会拒绝任何参数,并
抛出 NUMBER_OF_ARGUMENTS_DOESNT_MATCH。当设为 true 时,将恢复旧版的宽松行为——
参数会被静默忽略,与 26.5 之前的行为一致。
allow_reorder_prewhere_conditions
allow_replace_partition_from_empty_source
ALTER TABLE ... REPLACE PARTITION ... FROM ... 静默删除目标端分区。
默认情况下不允许这样做:如果源表在请求的分区中没有数据,那么从该源执行 REPLACE PARTITION 会抛出异常,因为这种情况下,该操作实际上等同于对目标端静默执行 DROP PARTITION (目标端数据会被删除,但不会有任何内容替换它) ,这也是意外数据丢失的常见原因 (参见 #23727) 。
启用此设置可恢复之前的行为,例如当你有意使用空源分区来清空目标端数据时。若要无条件删除,建议直接改用 ALTER TABLE ... DROP PARTITION ...。
allow_settings_after_format_in_insert
INSERT 查询中于 FORMAT 之后使用 SETTINGS。不建议使用此设置,因为这可能会将 SETTINGS 的一部分解释为值。
示例:
allow_settings_after_format_in_insert 时才能运行:
- 0 — 禁止。
- 1 — 允许。
仅当你的用例依赖旧语法、需要保持向后兼容时,才使用此设置。
allow_simdjson
JSON* 函数中使用 simdjson 库。禁用后将使用 rapidjson。