Query-level Session Settings
概要
特定の設定でステートメントを実行するための方法はいくつかあります。設定は層で構成されており、各層は前の設定値を再定義します。
優先順位
設定を定義するための優先順位は次のとおりです。
-
ユーザーに直接、または設定プロファイル内で設定を適用する
- SQL(推奨)
/etc/clickhouse-server/users.d
に1つまたは複数のXMLまたはYAMLファイルを追加する
-
セッション設定
- ClickHouse Cloud SQLコンソールから
SET setting=value
を送信するか、clickhouse client
を対話モードで使用します。同様に、HTTPプロトコルのClickHouseセッションを使用できます。これを行うには、session_id
HTTPパラメータを指定する必要があります。
- ClickHouse Cloud SQLコンソールから
-
クエリ設定
- 対話モードではない
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を使用して設定プロファイルとユーザーを作成する
設定プロファイルと割り当てを確認する
セッションに設定を割り当てる
クエリ中に設定を割り当てる
その他
- ClickHouseの設定についての説明は Settings ページをご覧ください。
- Global server settings