跳到主要内容
跳到主要内容

查询级会话设置

有多种方法可以使用特定设置来运行语句。 设置是分层配置的,每个后续层会重新定义设置的先前值。

定义设置的优先顺序为:

  1. 直接将设置应用于用户,或在设置配置文件中

    • SQL(推荐)
    • 将一个或多个 XML 或 YAML 文件添加到 /etc/clickhouse-server/users.d
  2. 会话设置

    • 从 ClickHouse Cloud SQL 控制台或以交互模式运行 clickhouse client 发送 SET setting=value。同样,您可以在 HTTP 协议中使用 ClickHouse 会话。为此,您需要指定 session_id HTTP 参数。
  3. 查询设置

    • 在非交互模式下启动 clickhouse client 时,设置启动参数 --setting=value
    • 使用 HTTP API 时,传递 CGI 参数 (URL?setting_1=value&setting_2=value...)。
    • 在 SELECT 查询的 SETTINGS 子句中定义设置。设置值仅应用于该查询,并在查询执行后重置为默认值或先前值。

示例

这些示例都将 async_insert 设置的值设置为 1,并展示如何检查正在运行的系统中的设置。

使用 SQL 直接将设置应用于用户

这将在创建用户 ingester 时设置 async_insert = 1

检查设置配置文件和分配

使用 SQL 创建设置配置文件并分配给用户

这将创建配置文件 log_ingest,设置 async_insert = 1

这将创建用户 ingester 并分配设置配置文件 log_ingest

使用 XML 创建设置配置文件和用户

检查设置配置文件和分配

将设置分配给会话

在查询期间分配设置

将设置转换为默认值

如果您更改了设置并希望将其恢复为默认值,请将值设置为 DEFAULT。语法如下:

例如,async_insert 的默认值是 0。假设您将其值更改为 1

响应为:

以下命令将其值设置回 0:

设置现在已恢复为默认值:

自定义设置

除了常见的 settings 之外,用户还可以定义自定义设置。

自定义设置名称必须以预定义的前缀之一开始。这些前缀的列表必须在服务器配置文件中的 custom_settings_prefixes 参数中声明。

要定义自定义设置,请使用 SET 命令:

要获取自定义设置的当前值,请使用 getSetting() 函数:

另见