配置user.xml參數(shù)
在Clickhouse中,user.xml用來(lái)管理用戶(hù)級(jí)別的參數(shù)設(shè)置以及用戶(hù)信息、權(quán)限信息等,當(dāng)您需要為ClickHouse集群配置用戶(hù)級(jí)別參數(shù)時(shí),可以通過(guò)修改user.xml來(lái)進(jìn)行設(shè)置。本文介紹如何修改云數(shù)據(jù)庫(kù)ClickHouse的user.xml配置文件中的參數(shù)。
背景介紹
ClickHouse集群包含多個(gè)參數(shù),其默認(rèn)值通常配置在config.xml和user.xml文件中。您可以通過(guò)修改這兩個(gè)文件中的參數(shù)來(lái)優(yōu)化集群的性能。
您可以通過(guò)控制臺(tái)在線(xiàn)修config.xml配置文件中的參數(shù),并重新啟動(dòng)集群,以使參數(shù)修改生效。詳細(xì)信息,請(qǐng)參見(jiàn)配置config.xml參數(shù)。
您需要通過(guò)客戶(hù)端連接云數(shù)據(jù)庫(kù)ClickHouse集群,執(zhí)行相關(guān)語(yǔ)法命令修改user.xml配置文件中的參數(shù),但不支持通過(guò)clickhouse-client客戶(hù)端修改。
前提條件
集群狀態(tài)為運(yùn)行中。
操作步驟
集群版本不同,修改user.xml的方式也不同。
社區(qū)兼容版
社區(qū)兼容版集群user.xml配置文件的語(yǔ)法以及使用示例。
語(yǔ)法
SET GLOBAL ON cluster default <setting_name> = <setting_value>;
參數(shù)說(shuō)明
目前支持的參數(shù)清單,請(qǐng)參見(jiàn)ClickHouse參數(shù)列表。
setting_value取值是布爾類(lèi)型或字符型時(shí),需要用單引號(hào)括起來(lái)。
使用示例
示例1:設(shè)置從表加載數(shù)據(jù)時(shí),在單個(gè)塊中包含的最大行數(shù)。
SET GLOBAL ON cluster default max_block_size = 10000;
示例2:?jiǎn)⒂脭?shù)據(jù)格式的順序保留并行分析。
SET GLOBAL ON cluster default input_format_parallel_parsing = 'True';
查看參數(shù)
查看當(dāng)前集群user.xml配置的參數(shù)。
SELECT * FROM system.settings;
企業(yè)版
企業(yè)版的users.xml參數(shù)設(shè)置與社區(qū)版的不同,請(qǐng)您根據(jù)具體需求執(zhí)行對(duì)應(yīng)語(yǔ)句。
下文所有語(yǔ)法中setting_name、setting_value、profile_name的值請(qǐng)參見(jiàn)Core Settings | ClickHouse Docs和Restrictions on Query Complexity | ClickHouse Docs。
設(shè)置臨時(shí)生效的參數(shù)
修改當(dāng)前登錄所在會(huì)話(huà)的參數(shù)設(shè)置。
此種參數(shù)設(shè)置,參數(shù)信息并沒(méi)有被持久化在集群中,所以當(dāng)您退出集群連接后再重新連接,設(shè)置的參數(shù)就會(huì)失效。
語(yǔ)法
SET <setting_name> = <setting_value>;
示例
當(dāng)前session下啟用live view功能。
SET allow_experimental_live_view = 1;
使一個(gè)賬號(hào)的參數(shù)持久化生效
為集群?jiǎn)蝹€(gè)賬號(hào)設(shè)置參數(shù)、用戶(hù)信息以及權(quán)限信息。
執(zhí)行以下SQL需要高權(quán)限賬號(hào)或擁有ACCESS MANAGEMENT權(quán)限的賬號(hào)。
這種參數(shù)設(shè)置方法,參數(shù)會(huì)被持久化在集群中,但當(dāng)前的session并沒(méi)有更新,因此需要重新連接集群,設(shè)置的參數(shù)才能在session中生效。
語(yǔ)法
ALTER USER user_name SETTINGS <setting_name> = <setting_value>;
示例
將名字為Nancy的賬號(hào)的內(nèi)存使用量限制為4GB。
ALTER USER Nancy SETTINGS max_memory_usage_for_user = 4294967296;
使全賬號(hào)的參數(shù)持久化生效
為集群所有賬號(hào)設(shè)置參數(shù)、用戶(hù)信息以及權(quán)限信息。
執(zhí)行以下SQL需要高權(quán)限賬號(hào)或擁有ACCESS MANAGEMENT權(quán)限的賬號(hào)。
這種參數(shù)設(shè)置方法,參數(shù)會(huì)被持久化在集群中,但當(dāng)前的session并沒(méi)有更新,因此需要重新連接集群,設(shè)置的參數(shù)才能在session中生效。
語(yǔ)法
CREATE SETTINGS PROFILE profile_name SETTINGS <setting_name> = <setting_value> TO ALL;
示例
將所有賬號(hào)在執(zhí)行query時(shí)的執(zhí)行時(shí)長(zhǎng)限制為10秒。
CREATE SETTINGS PROFILE max_execution_time_profile SETTINGS max_execution_time = 10 TO ALL;
查看設(shè)置的參數(shù)是否持久化
語(yǔ)法
SHOW SETTINGS LIKE '%<settings_name>%';
示例
查看設(shè)置的allow_experimental_live_view參數(shù)是否持久化生效。
SHOW SETTINGS LIKE '%allow_experimental_live_view%';