配置user.xml参数

在Clickhouse中,user.xml用来管理用户级别的参数设置以及用户信息、权限信息等,当您需要为ClickHouse集群配置用户级别参数时,可以通过修改user.xml来进行设置。本文介绍如何修改云数据库ClickHouse的user.xml配置文件中的参数。

背景介绍

ClickHouse集群包含多个参数,其默认值通常配置在config.xml和user.xml文件中。您可以通过修改这两个文件中的参数来优化集群的性能。

  • 您可以通过控制台在线修config.xml配置文件中的参数,并重新启动集群,以使参数修改生效。详细信息,请参见配置config.xml参数

  • 您需要通过客户端连接云数据库ClickHouse集群,执行相关语法命令修改user.xml配置文件中的参数,但不支持通过clickhouse-client客户端修改。

前提条件

集群状态为运行中

操作步骤

集群版本不同,修改user.xml的方式也不同。

社区兼容版

社区兼容版集群user.xml配置文件的语法以及使用示例。

语法

SET GLOBAL ON cluster default <setting_name> = <setting_value>;

参数说明

  • 目前支持的参数清单,请参见ClickHouse参数列表

  • setting_value取值是布尔类型或字符型时,需要用单引号括起来。

使用示例

示例1:设置从表加载数据时,在单个块中包含的最大行数。

SET GLOBAL ON cluster default max_block_size = 10000;

示例2:启用数据格式的顺序保留并行分析。

SET GLOBAL ON cluster default input_format_parallel_parsing = 'True';

查看参数

查看当前集群user.xml配置的参数。

SELECT * FROM system.settings;

企业版

企业版的users.xml参数设置与社区版的不同,请您根据具体需求执行对应语句。

重要

下文所有语法中setting_name、setting_value、profile_name的值请参见Core Settings | ClickHouse DocsRestrictions on Query Complexity | ClickHouse Docs

设置临时生效的参数

修改当前登录所在会话的参数设置。

说明

此种参数设置,参数信息并没有被持久化在集群中,所以当您退出集群连接后再重新连接,设置的参数就会失效

语法

SET <setting_name> = <setting_value>;

示例

当前session下启用live view功能。

SET allow_experimental_live_view = 1;

使一个账号的参数持久化生效

为集群单个账号设置参数、用户信息以及权限信息。

说明
  • 执行以下SQL需要高权限账号或拥有ACCESS MANAGEMENT权限的账号。

  • 这种参数设置方法,参数会被持久化在集群中,但当前的session并没有更新,因此需要重新连接集群,设置的参数才能在session中生效。

语法

ALTER USER user_name SETTINGS <setting_name> = <setting_value>;

示例

将名字为Nancy的账号的内存使用量限制为4GB。

ALTER USER Nancy SETTINGS max_memory_usage_for_user = 4294967296;

使全账号的参数持久化生效

为集群所有账号设置参数、用户信息以及权限信息。

说明
  • 执行以下SQL需要高权限账号或拥有ACCESS MANAGEMENT权限的账号。

  • 这种参数设置方法,参数会被持久化在集群中,但当前的session并没有更新,因此需要重新连接集群,设置的参数才能在session中生效。

语法

CREATE SETTINGS PROFILE profile_name SETTINGS <setting_name> = <setting_value> TO ALL;

示例

将所有账号在执行query时的执行时长限制为10秒。

CREATE SETTINGS PROFILE max_execution_time_profile SETTINGS max_execution_time = 10 TO ALL; 

查看设置的参数是否持久化

语法

SHOW SETTINGS LIKE '%<settings_name>%';

示例

查看设置的allow_experimental_live_view参数是否持久化生效。

SHOW SETTINGS LIKE '%allow_experimental_live_view%';

相关文档