mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
209 lines
7.7 KiB
Markdown
209 lines
7.7 KiB
Markdown
|
---
|
|||
|
sidebar_label: クエリレベルの設定
|
|||
|
title: クエリレベルの設定
|
|||
|
slug: /ja/operations/settings/query-level
|
|||
|
---
|
|||
|
|
|||
|
ClickHouseのクエリレベル設定を設定する方法はいくつかあります。設定はレイヤーとして構成され、後のレイヤーは前の設定値を再定義します。
|
|||
|
|
|||
|
設定を定義する際の優先順位は以下の通りです:
|
|||
|
|
|||
|
1. ユーザーに直接、または設定プロファイル内で設定を適用する
|
|||
|
|
|||
|
- SQL(推奨)
|
|||
|
- 一つまたは複数のXMLまたはYAMLファイルを`/etc/clickhouse-server/users.d`に追加する
|
|||
|
|
|||
|
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](../../sql-reference/statements/select/index.md#settings-in-select-query)句で設定を定義する。設定値はそのクエリに対してのみ適用され、クエリ実行後にデフォルトまたは前の値にリセットされます。
|
|||
|
|
|||
|
## 例
|
|||
|
|
|||
|
これらの例ではすべて、`async_insert`設定の値を`1`に設定し、実行中のシステムでの設定の確認方法を示します。
|
|||
|
|
|||
|
### SQLを使用してユーザーに直接設定を適用する
|
|||
|
|
|||
|
これは、設定`async_inset = 1`を持つユーザー`ingester`を作成します:
|
|||
|
|
|||
|
```sql
|
|||
|
CREATE USER ingester
|
|||
|
IDENTIFIED WITH sha256_hash BY '7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3'
|
|||
|
# highlight-next-line
|
|||
|
SETTINGS async_insert = 1
|
|||
|
```
|
|||
|
|
|||
|
#### 設定プロファイルと割り当てを確認
|
|||
|
|
|||
|
```sql
|
|||
|
SHOW ACCESS
|
|||
|
```
|
|||
|
|
|||
|
```response
|
|||
|
┌─ACCESS─────────────────────────────────────────────────────────────────────────────┐
|
|||
|
│ ... │
|
|||
|
# highlight-next-line
|
|||
|
│ CREATE USER ingester IDENTIFIED WITH sha256_password SETTINGS async_insert = true │
|
|||
|
│ ... │
|
|||
|
└────────────────────────────────────────────────────────────────────────────────────┘
|
|||
|
```
|
|||
|
### SQLを使用して設定プロファイルを作成しユーザーに割り当てる
|
|||
|
|
|||
|
これは、設定`async_inset = 1`を持つプロファイル`log_ingest`を作成します:
|
|||
|
|
|||
|
```sql
|
|||
|
CREATE
|
|||
|
SETTINGS PROFILE log_ingest SETTINGS async_insert = 1
|
|||
|
```
|
|||
|
|
|||
|
これは、ユーザー`ingester`を作成し、ユーザーに設定プロファイル`log_ingest`を割り当てます:
|
|||
|
|
|||
|
```sql
|
|||
|
CREATE USER ingester
|
|||
|
IDENTIFIED WITH sha256_hash BY '7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3'
|
|||
|
# highlight-next-line
|
|||
|
SETTINGS PROFILE log_ingest
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
### XMLを使用して設定プロファイルとユーザーを作成する
|
|||
|
|
|||
|
```xml title=/etc/clickhouse-server/users.d/users.xml
|
|||
|
<clickhouse>
|
|||
|
# highlight-start
|
|||
|
<profiles>
|
|||
|
<log_ingest>
|
|||
|
<async_insert>1</async_insert>
|
|||
|
</log_ingest>
|
|||
|
</profiles>
|
|||
|
# highlight-end
|
|||
|
|
|||
|
<users>
|
|||
|
<ingester>
|
|||
|
<password_sha256_hex>7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3</password_sha256_hex>
|
|||
|
# highlight-start
|
|||
|
<profile>log_ingest</profile>
|
|||
|
# highlight-end
|
|||
|
</ingester>
|
|||
|
<default replace="true">
|
|||
|
<password_sha256_hex>7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3</password_sha256_hex>
|
|||
|
<access_management>1</access_management>
|
|||
|
<named_collection_control>1</named_collection_control>
|
|||
|
</default>
|
|||
|
</users>
|
|||
|
</clickhouse>
|
|||
|
```
|
|||
|
|
|||
|
#### 設定プロファイルと割り当てを確認
|
|||
|
|
|||
|
```sql
|
|||
|
SHOW ACCESS
|
|||
|
```
|
|||
|
|
|||
|
```response
|
|||
|
┌─ACCESS─────────────────────────────────────────────────────────────────────────────┐
|
|||
|
│ CREATE USER default IDENTIFIED WITH sha256_password │
|
|||
|
# highlight-next-line
|
|||
|
│ CREATE USER ingester IDENTIFIED WITH sha256_password SETTINGS PROFILE log_ingest │
|
|||
|
│ CREATE SETTINGS PROFILE default │
|
|||
|
# highlight-next-line
|
|||
|
│ CREATE SETTINGS PROFILE log_ingest SETTINGS async_insert = true │
|
|||
|
│ CREATE SETTINGS PROFILE readonly SETTINGS readonly = 1 │
|
|||
|
│ ... │
|
|||
|
└────────────────────────────────────────────────────────────────────────────────────┘
|
|||
|
```
|
|||
|
|
|||
|
### セッションに設定を割り当てる
|
|||
|
|
|||
|
```sql
|
|||
|
SET async_insert = 1;
|
|||
|
SELECT value FROM system.settings where name='async_insert';
|
|||
|
```
|
|||
|
|
|||
|
```response
|
|||
|
┌─value──┐
|
|||
|
│ 1 │
|
|||
|
└────────┘
|
|||
|
```
|
|||
|
|
|||
|
### クエリ中に設定を割り当てる
|
|||
|
|
|||
|
```sql
|
|||
|
INSERT INTO YourTable
|
|||
|
# highlight-next-line
|
|||
|
SETTINGS async_insert=1
|
|||
|
VALUES (...)
|
|||
|
```
|
|||
|
|
|||
|
## 設定をデフォルト値に戻す
|
|||
|
|
|||
|
設定を変更し、それをデフォルト値に戻したい場合、値を`DEFAULT`に設定します。その構文は以下の通りです:
|
|||
|
|
|||
|
```sql
|
|||
|
SET setting_name = DEFAULT
|
|||
|
```
|
|||
|
|
|||
|
例えば、`async_insert`のデフォルト値は`0`です。値を`1`に変更したとします:
|
|||
|
|
|||
|
```sql
|
|||
|
SET async_insert = 1;
|
|||
|
|
|||
|
SELECT value FROM system.settings where name='async_insert';
|
|||
|
```
|
|||
|
|
|||
|
レスポンスは以下の通りです:
|
|||
|
|
|||
|
```response
|
|||
|
┌─value──┐
|
|||
|
│ 1 │
|
|||
|
└────────┘
|
|||
|
```
|
|||
|
|
|||
|
次のコマンドはその値を0に戻します:
|
|||
|
|
|||
|
```sql
|
|||
|
SET async_insert = DEFAULT;
|
|||
|
|
|||
|
SELECT value FROM system.settings where name='async_insert';
|
|||
|
```
|
|||
|
|
|||
|
設定はデフォルトに戻りました:
|
|||
|
|
|||
|
```response
|
|||
|
┌─value───┐
|
|||
|
│ 0 │
|
|||
|
└─────────┘
|
|||
|
```
|
|||
|
|
|||
|
## カスタム設定 {#custom_settings}
|
|||
|
|
|||
|
共通の[設定](../../operations/settings/settings.md)に加えて、ユーザーはカスタム設定を定義することができます。
|
|||
|
|
|||
|
カスタム設定名は、指定されたプレフィックスのいずれかで始める必要があります。これらのプレフィックスのリストは、サーバー設定ファイルの[custom_settings_prefixes](../../operations/server-configuration-parameters/settings.md#custom_settings_prefixes)パラメータで宣言する必要があります。
|
|||
|
|
|||
|
```xml
|
|||
|
<custom_settings_prefixes>custom_</custom_settings_prefixes>
|
|||
|
```
|
|||
|
|
|||
|
カスタム設定を定義するには`SET`コマンドを使用します:
|
|||
|
|
|||
|
```sql
|
|||
|
SET custom_a = 123;
|
|||
|
```
|
|||
|
|
|||
|
カスタム設定の現在の値を取得するには、`getSetting()`関数を使用します:
|
|||
|
|
|||
|
```sql
|
|||
|
SELECT getSetting('custom_a');
|
|||
|
```
|
|||
|
|
|||
|
**関連情報**
|
|||
|
|
|||
|
- ClickHouse設定の説明については、[設定](./settings.md)ページを参照してください。
|
|||
|
- [グローバルサーバー設定](../../operations/server-configuration-parameters/settings.md)
|