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