FE 配置 - 用户管理、查询引擎和导入导出
FE 参数分为动态参数和静态参数。
-
动态参数可通过 SQL 命令进行在线配置和调整,方便快捷。需要注意通过 SQL 命令所做的动态设置在重启 FE 后会失效。如果想让设置长期生效,建议同时修改 fe.conf 文件。
-
静态参数必须在 FE 配置文件 fe.conf 中进行配置和调整 。调整完成后,需要重启 FE 使变更生效。
参数是否为动态参数可通过 ADMIN SHOW CONFIG 返回结果中的 IsMutable 列查看。TRUE 表示动态参数。
静态和动态参数均可通过 fe.conf 文件进行修改。
查看 FE 配置项
FE 启动后,您可以在 MySQL 客户端运行 ADMIN SHOW FRONTEND CONFIG 命令查看参数配置。如果要查询特定参数的配置,请运行以下命令:
ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];
有关返回字段的详细说明,请参阅 ADMIN SHOW CONFIG。
您必须具有管理员权限才能运行集群管理相关命令。
配置 FE 参数
配置 FE 动态参数
您可以使用 ADMIN SET FRONTEND CONFIG 命令配置或修改 FE 动态参数。
ADMIN SET FRONTEND CONFIG ("key" = "value");
动态设置的配置项,在 FE 重启之后会恢复成 fe.conf 文件中的配置或者默认值。如果需要让配置长期生效,建议设置完之后同时修改 fe.conf 文件,防止重启后修改失效。
配置 FE 静态参数
FE 静态参数不支持在线修改,您需要在 fe.conf 中修改并重启 FE 以使修改生效。
当前主题包含以下类型的 FE 配置:
用户、角色和权限
enable_task_info_mask_credential
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 当为 true 时,StarRocks 会在将凭据从任务 SQL 定义返回 到
information_schema.tasks和information_schema.task_runs之前,通过对 DEFINITION 列应用 SqlCredentialRedactor.redact 来屏蔽凭据。在information_schema.task_runs中,无论定义是来自任务运行状态还是在为空时来自任务定义查找,都应用相同的屏蔽。当为 false 时,返回原始任务定义(可能会暴露凭据)。屏蔽是 CPU/字符串处理工作,当任务或task_runs数量很大时可能非常耗时;仅当您需要未屏蔽的定义并接受安全风险时才禁用。 - 引入版本: v3.5.6
privilege_max_role_depth
- 默认值: 16
- 类型: Int
- 单位:
- 是否可变: Yes
- 描述: 角色的最大角色深度(继承级别)。
- 引入版本: v3.0.0
privilege_max_total_roles_per_user
- 默认值: 64
- 类型: Int
- 单位:
- 是否可变: Yes
- 描述: 用户可以拥有的最大角色数量。
- 引入版本: v3.0.0
查询引擎
brpc_send_plan_fragment_timeout_ms
- 默认值: 60000
- 类型: Int
- 单位: 毫秒
- 是否可变: Yes
- 描述: 在发送计划片段之前应用于 BRPC TalkTimeoutController 的超时(毫秒)。
BackendServiceClient.sendPlanFragmentAsync在调用后端execPlanFragmentAsync之前设置此值。它控制 BRPC 在从连接池借用空闲连接以及执行发送时将等待多长时间;如果超过,RPC 将失败并可能触发该方法的重试逻辑。在争用情况下,将此值设置得更低以快速失败,或提高它以容忍瞬时池耗尽或慢速网络。请谨慎:非常大的值可能会延迟故障检测并阻塞请求线程。 - 引入版本: v3.3.11, v3.4.1, v3.5.0
connector_table_query_trigger_analyze_large_table_interval
- 默认值: 12 * 3600
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 大型表的查询触发 ANALYZE 任务的间隔。
- 引入版本: v3.4.0
connector_table_query_trigger_analyze_max_pending_task_num
- 默认值: 100
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: FE 上处于 Pending 状态的查询触发 ANALYZE 任务的最大数量。
- 引入版本: v3.4.0
connector_table_query_trigger_analyze_max_running_task_num
- 默认值: 2
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: FE 上处于 Running 状态的查询触发 ANALYZE 任务的最大数量。
- 引入版本: v3.4.0
connector_table_query_trigger_analyze_small_table_interval
- 默认值: 2 * 3600
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 小型表的查询触发 ANALYZE 任务的间隔。
- 引入版本: v3.4.0
connector_table_query_trigger_analyze_small_table_rows
- 默认值: 10000000
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 用于确定查询触发 ANALYZE 任务的表是否为小型表的阈值。
- 引入版本: v3.4.0
connector_table_query_trigger_task_schedule_interval
- 默认值: 30
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 调度器线程调度查询触发后台任务的间隔。此项旨在取代 v3.4.0 中引入的
connector_table_query_trigger_analyze_schedule_interval。在此处,后台任务指 v3.4 中的ANALYZE任务,以及 v3.4 之后版本中低基数列字典的收集任务。 - 引入版本: v3.4.2
create_table_max_serial_replicas
- 默认值: 128
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 串行创建副本的最大数量。如果实际副本数量超过此值,则将并发创建副本。如果表创建时间过长,请尝试减小此值。
- 引入版本: -
default_mv_partition_refresh_number
- 默认值: 1
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 当物化视图刷新涉及多个分区时,此参数控制默认情况下单个批次中刷新多少个分区。 从 3.3.0 版本开始,系统默认一次刷新一个分区,以避免潜在的内存溢出 (OOM) 问题。在早期版本中,所有分区默认一次刷新,这可能导致内存耗尽和任务失败。但是,请注意,当物化视图刷新涉及大量分区时,一次只刷新一个分区可能会导致过多的调度开销、更长的整体刷新时间以及大量的刷新记录。在这种情况下,建议适当调整此参数以提高刷新效率并降低调度成本。
- 引入版本: v3.3.0
default_mv_refresh_immediate
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否在创建后立即刷新异步物化视图。当此项设置为
true时,新创建的物化视图将立即刷新。 - 引入版本: v3.2.3
dynamic_partition_check_interval_seconds
- 默认值: 600
- 类型: Long
- 单位: 秒
- 是否可变: Yes
- 描述: 检查新数据的间隔。如果检测到新数据,StarRocks 会自动为数据创建分区。
- 引入版本: -
dynamic_partition_enable
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用动态分区功能。启用此功能后,StarRocks 会为新数据动态创建分区,并自动删除过期分区以确保数据的及时性。
- 引入版本: -
enable_active_materialized_view_schema_strict_check
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 激活非活动物化视图时是否严格检 查数据类型的长度一致性。当此项设置为
false时,如果基表中的数据类型长度发生变化,物化视图的激活不受影响。 - 引入版本: v3.3.4
mv_fast_schema_change_mode
- 默认值: strict
- 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 控制物化视图快速模式变更(FSE)的行为。有效值为:
strict(默认)- 仅在isSupportFastSchemaEvolutionInDanger为 true 时允许 FSE,并清除版本映射中受影响的分区条目;force- 即使isSupportFastSchemaEvolutionInDanger为 false 也允许 FSE,并清除受影响的分区条目以在刷新时触发重新计算;force_no_clear- 即使isSupportFastSchemaEvolutionInDanger为 false 也允许 FSE,但不清除分区条目。 - 引入版本: v3.4.0
enable_auto_collect_array_ndv
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用 ARRAY 类型 NDV 信息的自动收集。
- 引入版本: v4.0
enable_backup_materialized_view
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 在备份或恢复特定数据库时,是否启用异步物化视图的 BACKUP 和 RESTORE。如果此项设置为
false,StarRocks 将跳过备份异步物化视图。 - 引入版本: v3.2.0
enable_collect_full_statistic
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用自动全量统计信息收集。此功能默认启用。
- 引入版本: -
enable_colocate_mv_index
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 创建同步物化视图时是否支持将同步物化视图索引与基表进行 Colocate。如果此项设置为
true,tablet sink 将加速同步物化视图的写入性能。 - 引入版本: v3.2.0
enable_decimal_v3
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否支持 DECIMAL V3 数据类型。
- 引入版本: -
enable_experimental_mv
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用异步物化视图功能。TRUE 表示启用此功能。从 v2.5.2 开始,此功能默认启用。对于 v2.5.2 之前的版本,此功能默认禁用。
- 引入版本: v2.4
enable_local_replica_selection
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否为查询选择本地副本。本地副本可降低网络传输成本。如果此参数设置为 TRUE,CBO 优先选择与当前 FE 具有相同 IP 地址的 BE 上的 tablet 副本。如果此参数设置为
FALSE,则可以选择本地副本和非本地副本。 - 引入版本: -
enable_manual_collect_array_ndv
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用 ARRAY 类型 NDV 信息的手动收集。
- 引入版本: v4.0
enable_materialized_view
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否允许创建物化视图。
- 引入版本: -
enable_materialized_view_external_table_precise_refresh
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 将此项设置为
true可为物化视图刷新启用内部优化,当基表是外部(非云原生)表时。启用后,物化视图刷新处理器会计算候选分区并仅刷新受影响的基表分区,而不是所有分区,从而减少 I/O 和刷新成本。将其设置为false以强制对外部表进行全分区刷新。 - 引入版本: v3.2.9
enable_materialized_view_metrics_collect
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否默认收集异步物化视图的监控指标。
- 引入版本: v3.1.11, v3.2.5
enable_materialized_view_spill
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否为物化视图刷新任务启用中间结果 spilling。
- 引入版本: v3.1.1
enable_materialized_view_text_based_rewrite
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否默认启用基于文本的查询重写。如果此项设置为
true,系统将在创建异步物化视图时构建抽象语法树。 - 引入版本: v3.2.5
enable_mv_automatic_active_check
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用系统自动检查和重新激活那些因基表(视图)进行 Schema Change 或被删除和重新创建而变为 Inactive 的异步物化视图。请注意,此功能不会重新激活用户手动设置为 Inactive 的物化视图。
- 引入版本: v3.1.6
enable_mv_automatic_repairing_for_broken_base_tables
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 当此项设置为
true时,StarRocks 将尝试在基外部表被删除并重新创建或其表标识符更改时自动修复物化视图基表元数据。修复流程可以更新物化视图的基表信息,收集外部表分区的分区级修复信息,并推动异步自动刷新物化视图的分区刷新决策,同时遵守autoRefreshPartitionsLimit。目前自动修复支持 Hive 外部表;不支持的表类型将导致物化视图设置为非活动状态并引发修复异常。分区信息收集是非阻塞的,失败将被记录。 - 引入版本: v3.3.19, v3.4.8, v3.5.6
enable_predicate_columns_collection
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用谓词列收集。如果禁用,谓词列在查询优化期间将不会被记录。
- 引入版本: -
enable_query_queue_v2
- 默认值: true
- 类型: boolean
- 单位: -
- 是否可变: No
- 描述: 当为 true 时,将 FE 基于槽位的查询调度器切换到查询队列 V2。槽位管理器和跟踪器(例如
BaseSlotManager.isEnableQueryQueueV2和SlotTracker#createSlotSelectionStrategy)会读取此标志以选择SlotSelectionStrategyV2而不是旧版策略。query_queue_v2_xxx配置选项和QueryQueueOptions仅在此标志启用时生效。从 v4.1 开始,默认值从false更改为true。 - 引入版本: v3.3.4, v3.4.0, v3.5.0
enable_sql_blacklist
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否启用 SQL 查询的黑名单检查。启用此功能后,黑名单中的查询无法执行。
- 引入 版本: -
enable_statistic_collect
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 是否收集 CBO 的统计信息。此功能默认启用。
- 引入版本: -
enable_statistic_collect_on_first_load
-
默认值: true
-
类型: Boolean
-
单位: -
-
是否可变: Yes
-
描述: 控制由数据加载操作触发的自动统计信息收集和维护。这包括:
- 当数据首次加载到分区时(分区版本等于 2)的统计信息收集。
- 当数据加载到多分区表的空分区时(分区版本等于 2)的统计信息收集。
- INSERT OVERWRITE 操作的统计信息复制和更新。
统计信息收集类型决策策略:
-
对于 INSERT OVERWRITE:
deltaRatio = |targetRows - sourceRows| / (sourceRows + 1)- 如果
deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load(默认值: 0.1),则不执行统计信息收集。仅复制现有统计信息。 - 否则,如果
targetRows > statistic_sample_collect_rows(默认值: 200000),则使用 SAMPLE 统计信息收集。 - 否则,使用 FULL 统计信息收集。
- 如果
-
对于首次加载:
deltaRatio = loadRows / (totalRows + 1)- 如果
deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load(默认值: 0.1),则不执行统计信息收集。 - 否则,如果
loadRows > statistic_sample_collect_rows(默认值: 200000),则使用 SAMPLE 统计信息收集。 - 否则,使用 FULL 统计信息收集。
- 如果
同步行为:
- 对于 DML 语句(INSERT INTO/INSERT OVERWRITE):同步模式,带表锁。加载操作等待统计信息收集完成(最长
semi_sync_collect_statistic_await_seconds)。 - 对于 Stream Load 和 Broker Load:异步模式,无锁。统计信息收集在后台运行,不阻塞加载操作。
备注禁用此配置将阻止所有加载触发的统计信息操作,包括 INSERT OVERWRITE 的统计信息维护,这可能导致表缺少统计信息。如果经常创建新表并频繁加载数据,启用此功能将增加内存和 CPU 开销。
-
引入版本: v3.1
enable_statistic_collect_on_update
- 默认值: true
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 控制 UPDATE 语句是否可以触发自动统计信息收集。启用后,修改表数据的 UPDATE 操作可能会通过与
enable_statistic_collect_on_first_load控制的基于摄取统计信息框架调度统计信息收集。禁用此配置会跳过 UPDATE 语句的统计信息收集,同时保持加载触发的统计信息收集行为不变。 - 引入版本: v3.5.11, v4.0.4
enable_udf
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: No
- 描述: 是否启用 UDF。
- 引入版本: -
expr_children_limit
- 默认值: 10000
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 表达式中允许的最大子表达式数量。
- 引入版本: -
histogram_buckets_size
- 默认值: 64
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 直方图的默认 bucket 数量。
- 引入版本: -
histogram_max_sample_row_count
- 默认值: 10000000
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 直方图收集的最大行数。
- 引入版本: -
histogram_mcv_size
- 默认值: 100
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 直方图的最常见值 (MCV) 数量。
- 引入版本: -
histogram_sample_ratio
- 默认值: 0.1
- 类型: Double
- 单位: -
- 是否可变: Yes
- 描述: 直方图的采样率。
- 引入版本: -
http_slow_request_threshold_ms
- 默认值: 5000
- 类型: Int
- 单位: 毫秒
- 是否可变: Yes
- 描述: 如果 HTTP 请求的响应时间超过此参数指定的值,则生成日志以跟踪此请求。
- 引入版本: v2.5.15, v3.1.5
lock_checker_enable_deadlock_check
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 启用后,LockChecker 线程使用 ThreadMXBean.findDeadlockedThreads() 执行 JVM 级死锁检测,并记录违规线程的堆栈跟踪。检查在 LockChecker 守护程序(其频率由
lock_checker_interval_second控制)内部运行,并将详细的堆栈信息写入日志,这可能耗费 CPU 和 I/O。仅在调试实时或可重现的死锁问题时才启用此选项;在正常操作中保持启用状态可能会增加开销和日志量。 - 引入版本: v3.2.0
low_cardinality_threshold
- 默认值: 255
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 低基数字典的阈值。
- 引入版本: v3.5.0
materialized_view_min_refresh_interval
- 默认值: 60
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: ASYNC 物化视图调度的最小允许刷新间隔(以秒为单位)。当以基于时间的间隔创建物化视图时,该间隔将转换为秒,并且不得小于此值;否则 CREATE/ALTER 操作将因 DDL 错误而失败。如果此值大于 0,则强制执行检查;将其设置为 0 或负值以禁用限制,这可以防止TaskManager 过度调度和因刷新过于频繁而导致 FE 内存/CPU 使用率过高。此项不适用于
EVENT_TRIGGERED刷新。 - 引入版本: v3.3.0, v3.4.0, v3.5.0
materialized_view_refresh_ascending
- 默认值: false
- 类型: Boolean
- 单位: -
- 是否可变: Yes
- 描述: 当此项设置为
true时,物化视图分区刷新将以升序分区键顺序(从最旧到最新)迭代分区。当设置为false(默认)时,系统以降序(从最新到最旧)迭代。StarRocks 在列表分区和范围分区物化视图刷新逻辑中都使用此项来选择在应用分区刷新限制时要处理的分区,并计算后续 TaskRun 执行的下一个开始/结束分区边界。更改此项会改变首先刷新哪些分区以及如何导出下一个分区范围;对于范围分区物化视图,调度器会验证新的开始/结束,如果更改会创建重复边界(死循环),则会引发错误,因此请谨慎设置此项。 - 引入版本: v3.3.1, v3.4.0, v3.5.0
max_allowed_in_element_num_of_delete
- 默认值: 10000
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: DELETE 语句中 IN 谓词允许的最大元素数量。
- 引入版本: -
max_create_table_timeout_second
- 默认值: 600
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 创建表的超时时长上限。
- 引入版本: -
max_distribution_pruner_recursion_depth
- 默认值: 100
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 分区剪枝器允许的最大递归深度。增加递归深度可以剪枝更多元素,但也会增加 CPU 消耗。
- 引入版本: -
max_partitions_in_one_batch
- 默认值: 4096
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 批量创建分区时可创建的最大分区数。
- 引入版本: -
max_planner_scalar_rewrite_num
- 默认值: 100000
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 优化器可以重写标量操作符的最大次数。
- 引入版本: -
max_query_queue_history_slots_number
- 默认值: 0
- 类型: Int
- 单位: 槽位
- 是否可变: Yes
- 描述: 控制每个查询队列保留多少最近释放的(历史)已分配 槽位用于监控和可观察性。当
max_query_queue_history_slots_number设置为> 0的值时,BaseSlotTracker 在内存队列中保留最多指定数量的最新释放的 LogicalSlot 条目,当超出限制时驱逐最旧的条目。启用此功能会导致 getSlots() 包含这些历史条目(最新的在前),允许 BaseSlotTracker 尝试使用 ConnectContext 注册槽位以获取更丰富的 ExtraMessage 数据,并允许 LogicalSlot.ConnectContextListener 将查询完成元数据附加到历史槽位。当max_query_queue_history_slots_number<= 0时,历史机制被禁用(不使用额外的内存)。使用合理的值来平衡可观察性和内存开销。 - 引入版本: v3.5.0
max_query_retry_time
- 默认值: 2
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: FE 上查询重试的最大次数。
- 引入版本: -
max_running_rollup_job_num_per_table
- 默认值: 1
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 每张表可以并行运行的 rollup 作业的最大数量。
- 引入版本: -
max_scalar_operator_flat_children
- 默认值: 10000
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: ScalarOperator 的最大扁平子节点数。您可以设置此限制以防止优化器使用过多内存。
- 引入版本: -
max_scalar_operator_optimize_depth
- 默认值: 256
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: ScalarOperator 优化可以应用的最大深度。
- 引入版本: -
mv_active_checker_interval_seconds
- 默认值: 60
- 类型: Long
- 单位: 秒
- 是否可变: Yes
- 描述: 当后台
active_checker线程启用时,系统会定期检测并自动重新激活因其基表(或视图)的 schema 变更或重建而变为 Inactive 的物化视图。此参数以秒为单位控制检查器线程的调度间隔。默认值由系统定义。 - 引入版本: v3.1.6
mv_rewrite_consider_data_layout_mode
- 默认值:
enable - 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 控制物化视图重写在选择最佳物化视图时是否应考虑基表数据布局。有效值:
disable: 在选择候选物化视图时,从不使用数据布局标准。enable: 仅当查询被识别为布局敏感时才使用数据布局标准。force: 在选择最佳物化视图时始终应用数据布局标准。 更改此项会影响BestMvSelector的行为,并可以根据物理布局是否影响计划正确性或性能来改进或扩大重写的适用性。
- 引入版本: -
publish_version_interval_ms
- 默认值: 10
- 类型: Int
- 单位: 毫秒
- 是否可变: No
- 描述: 发布验证任务发出的时间间隔。
- 引入版本: -
query_queue_slots_estimator_strategy
- 默认值: MAX
- 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 当
enable_query_queue_v2为 true 时,选择用于基于队列的查询的槽位估算策略。有效值:MBE(基于内存)、PBE(基于并行度)、MAX(取 MBE 和 PBE 的最大值)和 MIN(取 MBE 和 PBE 的最小值)。MBE 根据预测内存或计划成本除以每个槽位内存目标来估算槽位,并受totalSlots限制。PBE 根据片段并行度(扫描范围计数或基数/每槽位行数)和基于 CPU 成本的计算(使用每槽位 CPU 成本)推导出槽位,然后将结果限制在 [numSlots/2, numSlots] 范围内。MAX 和 MIN 通过取其最大值或最小值来组合 MBE 和 PBE。如果配置值无效,则使用默认值 (MAX)。 - 引入版本: v3.5.0
query_queue_v2_concurrency_level
- 默认值: 4
- 类型: Int
- 单位: -
- 是否可变: Yes
- 描述: 控制计算系统总查询槽位时使用的逻辑并发“层数”。在 shared-nothing 模式下,总槽位 =
query_queue_v2_concurrency_level* BE 数量 * 每个 BE 的核心数(来自 BackendResourceStat)。在多仓库模式下,有效并发会缩减为 max(1,query_queue_v2_concurrency_level/ 4)。如果配置值为非正数,则视为4。更改此值会增加或减少 totalSlots(以及因此的并发查询容量),并影响每个槽位的资源:memBytesPerSlot 通过将每个 worker 内存除以(每个 worker 的核心数 * 并发)得出,并且 CPU 记账使用query_queue_v2_cpu_costs_per_slot。将其设置为与集群大小成比例;非常大的值可能会减少每个槽位的内存并导致资源碎片。 - 引入版本: v3.3.4, v3.4.0, v3.5.0
query_queue_v2_cpu_costs_per_slot
- 默认值: 1000000000
- 类型: Long
- 单位: 规划器 CPU 成本单位
- 是否可变: Yes
- 描述: 每个槽位的 CPU 成本阈值,用于根据查询的规划器 CPU 成本估算查询所需的槽位数量。调度器计算槽位为整数(
plan_cpu_costs/query_queue_v2_cpu_costs_per_slot),然后将结果限制在 [1, totalSlots] 范围内(totalSlots 来自查询队列 V2V2参数)。V2 代码将非正值规范化为 1 (Math.max(1, value)),因此非正值实际上变为1。增加此值会减少每个查询分配的槽位(有利于更少、更大槽位的查询);减少此值会增加每个查询的槽位。与query_queue_v2_num_rows_per_slot和并发设置一起调整,以控制并行度与资源粒度。 - 引入版本: v3.3.4, v3.4.0, v3.5.0
query_queue_v2_num_rows_per_slot
- 默认值: 4096
- 类型: Int
- 单位: 行
- 是否可变: Yes
- 描述: 当估算每个查询的槽位计 数时,分配给单个调度槽位的目标源行记录数。StarRocks 计算
estimated_slots= (源节点的基数) /query_queue_v2_num_rows_per_slot,然后将结果限制在 [1, totalSlots] 范围内,如果计算值为非正数,则强制最小值为 1。totalSlots 来自可用资源(大致为 DOP *query_queue_v2_concurrency_level* worker/BE 数量),因此取决于集群/核心计数。增加此值以减少槽位计数(每个槽位处理更多行)并降低调度开销;减少此值以增加并行度(更多、更小的槽位),直至达到资源限制。 - 引入版本: v3.3.4, v3.4.0, v3.5.0
query_queue_v2_schedule_strategy
- 默认值: SWRR
- 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 选择 Query Queue V2 用于对待处理查询进行排序的调度策略。支持的值(不区分大小写)为
SWRR(Smooth Weighted Round Robin) - 默认值,适用于需要公平加权共享的混合/混合工作负载 - 和SJF(Short Job First + Aging) - 优先处理短作业,同时使用老化机制避免饥饿。该值通过不区分大小写的枚举查找进行解析;无法识别的值将记录为错误并使用默认策略。此配置仅在 Query Queue V2 启用时影响行为,并与 V2 大小设置(如query_queue_v2_concurrency_level)交互。 - 引入版本: v3.3.12, v3.4.2, v3.5.0
semi_sync_collect_statistic_await_seconds
- 默认值: 30
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: DML 操作(INSERT INTO 和 INSERT OVERWRITE 语句)期间半同步统计信息收集的最大等待时间。Stream Load 和 Broker Load 使用异步模式,不受此配置影响。如果统计信息收集时间超过此值,加载操作将继续,而不等待收集完成。此配置与
enable_statistic_collect_on_first_load协同工作。 - 引入版本: v3.1
slow_query_analyze_threshold
- 默认值: 5
- 类型: Int
- 单位: 秒
- 是否可变: Yes
- 描述: 查询执行时间阈值,用于触发查询反馈分析。
- 引入版本: v3.4.0
statistic_analyze_status_keep_second
- 默认值: 3 * 24 * 3600
- 类型: Long
- 单位: 秒
- 是否可变: Yes
- 描述: 保留收集任务历史记录的持续时间。默认值为 3 天。
- 引入版本: -
statistic_auto_analyze_end_time
- 默认值: 23:59:59
- 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 自动收集的结束时间。取值范围:
00:00:00-23:59:59。 - 引入版本: -
statistic_auto_analyze_start_time
- 默认值: 00:00:00
- 类型: String
- 单位: -
- 是否可变: Yes
- 描述: 自动收集的开始时间。取值范围:
00:00:00-23:59:59。 - 引入版本: -
statistic_auto_collect_ratio
- 默认值: 0.8
- 类型: Double
- 单位: -
- 是否可变: Yes
- 描述: 用于判断自动收集统计信息是否健康的阈值。如果统计信息健康度低于此阈值,将触发自动收集。
- 引入版本: -
statistic_auto_collect_small_table_rows
- 默认值: 10000000
- 类型: Long
- 单位: -
- 是否可变: Yes
- 描述: 自动收集期间,判断外部数据源(Hive、Iceberg、Hudi)中的表是否为小型表的阈值。如果表的行数小于此值,则认为该表为小型表。
- 引入版本: v3.2
statistic_cache_columns
- 默认值: 100000
- 类型: Long
- 单位: -
- 是否可变: No
- 描述: 统计信息表可缓存的行数。
- 引入版本: -
statistic_cache_thread_pool_size
- 默认值: 10
- 类型: Int
- 单位: -
- 是否可变: No
- 描述: 用于刷新统计信息缓存的线程池大小。
- 引入版本: -