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

クエリレベルのセッション設定

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

設定を定義する優先順位は次の通りです:

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

    • SQL(推奨)
    • /etc/clickhouse-server/users.d に1つ以上のXMLまたはYAMLファイルを追加
  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を使用してユーザーに設定を直接適用する

これは、設定 async_inset = 1 を持つユーザー ingester を作成します:

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

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

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

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

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

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

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

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

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

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

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

レスポンスは以下のようになります:

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

設定はデフォルトに戻りました:

カスタム設定

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

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

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

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

参照