本文介绍如何在 ByteHouse 企业版中配置集群参数和用户参数、如何为指定用户授予/解除用户参数的使用权限以及如何创建自定义用户参数。
ByteHouse 企业版集群支持通过 config.xml 和 user.xml 配置文件,分别配置集群参数和用户参数,以满足您对于集群性能优化和业务适配的需求。
集群参数(config.xml) | 用户参数(user.xml) | |
|---|---|---|
定义 | 针对集群级别的全局配置项,影响整个集群的运行规则,如资源分配上限、服务超时时间等。 | 针对指定用户的参数,用于个性化配置指定用户在操作过程中的系统行为,如查询优化、导入优化等。 |
作用范围 | 覆盖集群内所有节点、用户及查询任务。 | 仅限于指定用户,不影响其他用户或整个系统。 |
使用场景 | 集群参数可用于集群架构调整、全局性能优化、通用规则管控等场景。 | 您可以按需调整用户参数,满足您特定业务场景的需求。ByteHouse 也内置了适用于不同场景的用户参数模板,可满足特定数据模型查询(如星型模型、雪花模型、宽表数据)和高并发场景的需求。 |
配置方式 | 支持通过视觉化设置或 XML 配置文件调整参数,操作详情请参见配置集群参数。 |
|
生效机制 | 集群参数变更后通常需要重启集群才能生效,因此需在业务低峰期操作,避免影响在线服务。 | 修改用户参数或为用户授予/移除用户参数权限后,参数将对指定用户即时生效。 |
ByteHouse 内置的用户参数模板说明如下:
仅 Cluster Admin 和 System Admin 角色的用户支持修改配置参数操作。
参数名称 | 默认值 | 参数描述 |
|---|---|---|
builtin_dictionaries_reload_interval | 3600 s | 内置字典的自动重新加载间隔。 |
compiled_expression_cache_size | 134,217,728 bytes | 编译后表达式的缓存大小。 |
default_session_timeout | 3600 s | 默认会话超时时间。 |
keep_alive_timeout | 10 s | 在关闭连接之前等待传入请求的秒数。 |
max_session_timeout | 3600 s | 会话超时时间的最大值。 |
mark_cache_size | 4,294,967,296 bytes | 标记(Mark)缓存的大小。 |
max_concurrent_queries | 200 | 最大并发查询数。 |
max_connections | 4096 | 集群的最大并发连接数。 |
max_open_files | 0 | 最大打开文件数。
|
max_partition_size_to_drop | 0 bytes | 删除 part 的大小限制。
|
max_server_memory_usage_to_ram_ratio | 0.9 | 服务器内存使用与物理内存的最大比例。 |
max_table_size_to_drop | 0 bytes | 删除表的大小限制。
|
uncompressed_cache_size | 4,294,967,296 bytes | 使用的未压缩数据的缓存大小,默认 4GB。 |
timezone | UTC | 集群使用的时区。 |
ByteHouse 企业版用户参数支持以下功能:
ByteHouse 支持您按需创建用户参数模板。
ByteHouse 内置的用户参数模板和您创建的用户参数需先授予用户权限才能使用。
每位用户仅支持被授予一份用户参数模板的使用权限,授予权限后,系统将使用新用户参数覆盖已有的用户参数配置。解除用户与指定用户参数的绑定后,系统将使用默认用户参数(Default Profile)配置覆盖已有的用户参数配置。
操作步骤:
参数名称 | 默认值 | 参数描述 |
|---|---|---|
| CLICKHOUSE | SQL 方言。可选 CLICKHOUSE / ANSI / MYSQL。 |
| 0 | 查询是否在节点内先计算出结果再联合多节点结果,如果您能确保查询的 JOIN KEY = GROUP BY KEY = SHARDING KEY 时,该参数设置为 1,查询性能将大幅提升。其余情况需要设置为 0,否则查询结果会错误。 |
| 1(True) | 在 JSONEachRow/TSKV 等格式导入时,是否忽略未知列。设置为 1 表示忽略,设置为 0 表示报错。 |
| 300 s | 单条 SQL 查询的最大超时时间(单位:秒)。 |
| 1,048,576 行 | 单个 INSERT 操作中生成一个数据块(Part)的最大行数。 |
| 0 bytes(不限制) | 单个 INSERT 操作中生成一个数据块(Part)的最大字节数(预估值)。 |
| 9,771,050,598 bytes(约 9.1 GB) | 单次查询允许使用的最大内存。 说明
|
| 9,771,050,598 bytes(约 9.1 GB) | 同一时刻所有用户查询允许使用的最大内存总和。 |
| 1,000 | 单个 INSERT 操作中数据最多分布的分区数,用于避免生成过多小文件。 |
| 1,048,576 bytes(约 1 MB) | SQL 语句的最大长度限制。 |
| 8 | 查询处理线程的最大数量(不包括从远程服务器检索数据的线程)。 |