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
- 描述: 直方图的采样率。
- 引入版本: -