クエリレベルのセッション設定
特定の設定でステートメントを実行する方法はいくつかあります。
設定は階層で構成されており、各階層は前の設定の値を再定義します。
設定を定義する優先順位は次の通りです:
-
ユーザーに対して直接、または設定プロファイル内で設定を適用
- SQL(推奨)
/etc/clickhouse-server/users.d
に1つ以上のXMLまたはYAMLファイルを追加
-
セッション設定
- ClickHouse Cloud SQLコンソールまたは
clickhouse client
のインタラクティブモードからSET setting=value
を送信します。同様に、HTTPプロトコルでClickHouseセッションを使用することもできます。この場合、session_id
HTTPパラメータを指定する必要があります。
- ClickHouse Cloud SQLコンソールまたは
-
クエリ設定
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()
関数を使用します:
参照
- ClickHouse設定の説明については Settings ページを参照してください。
- グローバルサーバー設定