概述
优先级顺序
-
直接将设置应用到用户,或在 SETTINGS PROFILE 中应用
- SQL (推荐)
- 向
/etc/clickhouse-server/users.d添加一个或多个 XML 或 YAML 文件
-
会话设置
- 在 ClickHouse Cloud SQL 控制台或以交互模式运行的
clickhouse client中发送SET setting=value。同样,你也可以在 HTTP 协议中使用 ClickHouse 会话。为此,需要指定session_idHTTP 参数。
- 在 ClickHouse Cloud SQL 控制台或以交互模式运行的
-
查询设置
- 以非交互模式启动
clickhouse client时,设置启动 参数--setting=value。 - 使用 HTTP API 时,传递 CGI 参数 (
URL?setting_1=value&setting_2=value...) 。 - 在 SELECT 查询的 SETTINGS 子句中定义设置。该设置值仅应用于该查询, 并会在查询执行后重置为默认值或之前的值。
- 以非交互模式启动
将设置恢复为默认值
DEFAULT。语法如下:
async_insert 的默认值为 0。假设你将其改为 1:
自定义设置
- 根据用户身份或所属组织过滤数据
- 根据上下文应用不同的业务逻辑
- 在同一会话的多次查询之间保留有状态信息
custom_settings_prefixes server setting 指定,该设置定义在你的服务器配置文件中。
在下面的示例中,SQL_ 被选为自定义前缀:
在 ClickHouse Cloud 中,无法指定自定义前缀。
所有自定义用户设置均以
SQL_ 作为前缀。SET 命令:
getSetting() 函数:
示例
async_insert 设置的值设为 1,并展示如何在运行中的系统中查看这些设置。
使用 SQL 直接为用户应用设置
ingester,并为其设置 async_inset = 1:
查看 SETTINGS PROFILE 及其分配情况
使用 SQL 创建 SETTINGS PROFILE 并将其分配给用户
log_ingest profile,并将 async_inset 设置为 1:
ingester,并为其分配设置 profile log_ingest:
通过 XML 创建设置 profile 和用户
/etc/clickhouse-server/users.d/users.xml