メインコンテンツまでスキップ
メインコンテンツまでスキップ

Query-level Session Settings

概要

特定の設定でステートメントを実行するための方法はいくつかあります。設定は層で構成されており、各層は前の設定値を再定義します。

優先順位

設定を定義するための優先順位は次のとおりです。

  1. ユーザーに直接、または設定プロファイル内で設定を適用する

    • SQL(推奨)
    • /etc/clickhouse-server/users.d に1つまたは複数のXMLまたはYAMLファイルを追加する
  2. セッション設定

    • ClickHouse Cloud SQLコンソールから SET setting=value を送信するか、clickhouse client を対話モードで使用します。同様に、HTTPプロトコルのClickHouseセッションを使用できます。これを行うには、session_id HTTPパラメータを指定する必要があります。
  3. クエリ設定

    • 対話モードではない clickhouse client を起動する際に、スタートアップパラメータ --setting=value を設定します。
    • HTTP APIを使用する際には、CGIパラメータ(URL?setting_1=value&setting_2=value...)を渡します。
    • SELECTクエリの SETTINGS 句で設定を定義します。設定値はそのクエリにのみ適用され、クエリの実行後にデフォルトまたは前の値にリセットされます。

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

設定を変更し、デフォルト値に戻したい場合は、値を DEFAULT に設定します。構文は次のようになります:

例えば、async_insert のデフォルト値は 0 です。この値を 1 に変更したとします:

返されるレスポンスは次のとおりです:

次のコマンドはその値を0に戻します:

設定は今、デフォルトの値に戻りました:

カスタム設定

一般的な settings に加えて、ユーザーはカスタム設定を定義できます。

カスタム設定名は、あらかじめ定義されたプレフィックスのいずれかで始まる必要があります。これらのプレフィックスのリストは、サーバー設定ファイルの custom_settings_prefixes パラメータで宣言する必要があります。

カスタム設定を定義するには SET コマンドを使用します:

カスタム設定の現在の値を取得するには getSetting() 関数を使用します:

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

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

これは、設定 async_insert = 1 のユーザー ingester を作成します:

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

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

これは、設定 async_insert = 1 のプロファイル log_ingest を作成します:

次に、ユーザー ingester を作成し、そのユーザーに設定プロファイル log_ingest を割り当てます:

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

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

セッションに設定を割り当てる

クエリ中に設定を割り当てる

その他