这些设置可在 system.settings 中查看,并由 源文件 自动生成。
parallel_replicas_allow_in_with_subquery
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.3 | 1 | 如果为 true,则 IN 子查询会在每个 follower 副本上执行 |
如果为 true,则 IN 子查询会在每个 follower 副本上执行。
parallel_replicas_allow_materialized_views
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.12 | 1 | 允许并行副本使用 materialized views |
允许并行副本使用 materialized views
parallel_replicas_allow_view_over_mergetree
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.4 | 0 | New setting |
允许并行副本在基于 MergeTree 表的简单视图上执行外层查询 (而非视图的内部查询) ,从而提高节点间的并行化能力。同样适用于 UNION ALL 视图,前提是其所有分支都从不同的 MergeTree 表读取。
parallel_replicas_connect_timeout_ms
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.6 | 300 | 并行副本查询的独立连接超时 |
使用并行副本执行查询时,连接远程副本的超时时间,单位为毫秒。如果发生超时,则不会使用相应的副本执行查询
parallel_replicas_count
这是一个不应直接使用的内部设置,用于表示“并行副本”模式的实现细节。对于分布式查询,发起服务器会自动将此设置设为参与查询处理的并行副本数。
parallel_replicas_custom_key
可用于在特定表的各个副本之间分摊工作的任意整数表达式。 该值可以是任意整数表达式。
优先使用基于主键的简单表达式。
如果该设置用于由单个分片和多个副本组成的集群,这些副本将被转换为虚拟分片。
否则,其行为将与 SAMPLE 键相同,即会使用每个分片的多个副本。
parallel_replicas_custom_key_range_lower
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.6 | 0 | 新增了相关设置,用于在并行副本配合 dynamic shards 使用时控制 `range` 过滤器 |
允许 range 类型的过滤器根据自定义范围 [parallel_replicas_custom_key_range_lower, INT_MAX],在各副本之间均匀分配工作负载。
与 parallel_replicas_custom_key_range_upper 配合使用时,它可让该过滤器针对范围 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] 在各副本之间均匀分配工作负载。
注意:此设置不会在查询处理期间额外过滤任何数据,而只是改变 range 过滤器为并行处理拆分范围 [0, INT_MAX] 时所使用的分界点。
parallel_replicas_custom_key_range_upper
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.6 | 0 | 新增了用于在结合 dynamic shards 使用并行副本时控制 range 过滤器的设置。值为 0 时将禁用上限 |
允许 range 类型的过滤器根据自定义范围 [0, parallel_replicas_custom_key_range_upper],在各副本之间均匀拆分工作。值为 0 时将禁用上界,并将其设为自定义键表达式的最大值。
当与 parallel_replicas_custom_key_range_lower 配合使用时,它可让过滤器在范围 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] 内将工作均匀分配到各个副本。
注意:此设置不会在查询处理期间额外过滤任何数据;它只是改变了 range 过滤器在并行处理时拆分范围 [0, INT_MAX] 的分界点。
parallel_replicas_filter_pushdown
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.2 | 0 | 新设置 |
允许将过滤器下推到由并行副本选择执行的查询部分
parallel_replicas_for_cluster_engines
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.3 | 1 | New setting. |
将表函数引擎替换为对应的 -Cluster 版本
parallel_replicas_for_non_replicated_merge_tree
如果为 true,ClickHouse 也会对非复制的 MergeTree 表使用并行副本算法
parallel_replicas_index_analysis_only_on_coordinator
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.12 | 1 | 索引分析仅在副本协调器上执行,其他副本则跳过。仅在启用 parallel_replicas_local_plan 时生效 |
| 24.10 | 1 | 索引分析仅在副本协调器上执行,其他副本则跳过。仅在启用 parallel_replicas_local_plan 时生效 |
索引分析仅在副本协调器上执行,其他副本则跳过。仅在启用 parallel_replicas_local_pla 时生效
parallel_replicas_insert_select_local_pipeline
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.5 | 1 | 在启用并行副本的分布式 INSERT SELECT 中使用本地管道。当前因性能问题已禁用 |
| 25.4 | 0 | 在启用并行副本的分布式 INSERT SELECT 中使用本地管道。当前因性能问题已禁用 |
在启用并行副本的分布式 INSERT SELECT 中使用本地管道
parallel_replicas_local_plan
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.9 | 0 | 在使用并行副本的查询中,对本地副本使用本地执行计划 |
| 24.11 | 1 | 在使用并行副本的查询中,对本地副本使用本地执行计划 |
| 24.10 | 1 | 在使用并行副本的查询中,对本地副本使用本地执行计划 |
为本地副本构建本地执行计划
parallel_replicas_mark_segment_size
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.9 | 0 | 此设置的值现在会自动确定 |
| 24.1 | 128 | 新增设置,用于在新的并行副本协调器实现中控制分段大小 |
parts 会在逻辑上划分为多个分段,以便在并行读取时分配给各个副本。此设置用于控制这些分段的大小。除非你非常确定自己在做什么,否则不建议更改。取值范围应为 [128; 16384]
parallel_replicas_min_number_of_rows_per_replica
将查询中使用的副本数量限制为 (预计读取的行数 / min_number_of_rows_per_replica) 。最大值仍然受 'max_parallel_replicas' 限制
parallel_replicas_mode
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.10 | read_tasks | 此设置是在将并行副本功能调整为 Beta 的过程中引入的 |
并行副本中 custom key 使用的过滤器类型。default - 对 custom key 使用 modulo 运算,range - 在 custom key 上使用 range filter,并基于 custom key 值类型的所有可能值进行处理。
parallel_replicas_only_with_analyzer
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.2 | 1 | 只有在启用 analyzer 时才支持并行副本 |
要使用并行副本,必须启用 analyzer。如果 analyzer 被禁用,则查询执行会回退到本地执行,即使已启用从副本进行并行读取也是如此。不支持在未启用 analyzer 的情况下使用并行副本。
parallel_replicas_plan_based
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.7 | 0 | 新设置 |
通过分析查询计划,决定是否使用并行副本以及在何处使用,而不是基于查询树进行分析。因此,发送到远程副本的是计划片段而非 SQL 查询。Experimental。
parallel_replicas_prefer_local_join
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.2 | 1 | 如果为 true,且 JOIN 可以使用并行副本算法执行,并且 JOIN 右侧部分的所有存储引擎均为 *MergeTree,则会使用本地 JOIN,而不是 GLOBAL JOIN。 |
如果为 true,且 JOIN 可以使用并行副本算法执行,并且 JOIN 右侧部分的所有存储引擎均为 *MergeTree,则会使用本地 JOIN,而不是 GLOBAL JOIN。
parallel_replicas_prefer_local_replica
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.5 | 1 | 新设置。禁用后,用于并行读取的副本将完全根据负载均衡算法选择,不会强制将本地副本纳入其中。 |
启用时 (默认) ,本地副本始终会包含在用于并行读取的副本集合中。
禁用时,本地副本不再具有任何优先权,副本将完全根据负载均衡算法选择。
这样一来,带有 max_parallel_replicas = 1 的查询可被定向到其他主机;当大量短查询分布在集群中时,这有助于改善缓存局部性。
parallel_replicas_support_projection
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.8 | 1 | 新设置。投影优化可在并行副本中应用。仅在启用 parallel_replicas_local_plan 且 aggregation_in_order 未启用时生效。 |
投影优化可在并行副本中应用。仅在启用 parallel_replicas_local_plan 且 aggregation_in_order 未启用时生效。