メインコンテンツへスキップ

概要

特定の設定を指定してステートメントを実行する方法は複数あります。 設定はレイヤー単位で適用され、後続の各レイヤーが前のレイヤーの設定値を上書きします。

優先順位

設定を定義する際の優先順位は、次のとおりです。
  1. ユーザーに直接、または設定プロファイル内で設定を適用する
    • SQL (推奨)
    • 1 つ以上の XML または YAML ファイルを /etc/clickhouse-server/users.d に追加する
  2. セッション設定
    • ClickHouse Cloud の SQL Console または clickhouse client の対話型モードから SET setting=value を送信します。同様に、HTTP protocol で ClickHouse セッションを使用することもできます。これを行うには、 session_id HTTP parameter を指定する必要があります。
  3. クエリ設定
    • 非対話型モードで clickhouse client を起動する際に、起動 parameter --setting=value を指定します。
    • HTTP API を使用する場合は、CGI parameter (URL?setting_1=value&setting_2=value...) を渡します。
    • SELECT クエリの SETTINGS 句で設定を定義します。設定値はそのクエリにのみ適用され、 クエリの実行後にデフォルト値または以前の値にリセットされます。

設定をデフォルト値に戻す

設定を変更した後でその設定をデフォルト値に戻したい場合は、値に DEFAULT を指定します。構文は次のとおりです。
たとえば、async_insert のデフォルト値は 0 です。これを 1 に変更したとします。
応答は次のとおりです。
次のコマンドで値を 0 に戻します。
設定はデフォルトに戻りました。

カスタム設定

共通の設定に加えて、ユーザーはカスタム設定を定義できます。 カスタム設定を使うと、クエリ、ポリシー、関数内から参照できるセッション固有のパラメータを渡せます。これは、次のような場合に便利です。
  • ユーザーの identity や組織に基づいてデータをフィルタする
  • コンテキストに応じて異なるビジネスロジックを適用する
  • セッション内でクエリ間にまたがって状態を保持する
カスタム設定名は、定義したリストにある、あらかじめ定義されたプレフィックスのいずれかで始める必要があります。 プレフィックスのリストは、サーバー設定ファイルで定義するcustom_settings_prefixesサーバー設定で指定できます。 以下の例では、SQL_をカスタムプレフィックスとして使用しています。
ClickHouse Cloud では、カスタム プレフィックスを指定できません。 すべてのカスタムユーザー設定は SQL_ プレフィックスで始まります。
カスタム設定を定義するには、SET コマンドを使用します。
カスタム設定の現在の値を取得するには、getSetting()関数を使用します。

これらの例ではいずれも async_insert 設定の値を 1 に設定し、 実行中のシステムで設定を確認する方法を示します。

SQL を使って設定をユーザーに直接適用する

これにより、設定 async_inset = 1 を指定したユーザー ingester が作成されます。

設定プロファイルとその割り当てを確認する

SQL を使用して設定プロファイルを作成し、ユーザーに割り当てる

これにより、設定 async_inset = 1 を持つ log_ingest プロファイルが作成されます。
これにより、ユーザー ingester が作成され、そのユーザーに設定プロファイル log_ingest が割り当てられます。

XML を使って設定プロファイルとユーザーを作成する

/etc/clickhouse-server/users.d/users.xml

設定プロファイルとその割り当てを確認する

セッションに設定を適用する

クエリ実行時に設定を指定する

関連項目

最終更新日 2026年7月2日