サーバー設定
このセクションにはサーバー設定の説明が含まれています。これらはセッションまたはクエリレベルで変更できない設定です。
ClickHouseの設定ファイルに関する詳細は、"設定ファイル"を参照してください。
他の設定については、""設定"" セクションで説明されています。設定を学ぶ前に、設定ファイル セクションを読むことをお勧めし、置き換えの使用(incl
と optional
属性)に注意してください。
access_control_improvements
アクセス制御システムのオプション改善のための設定です。
設定名 | 説明 | デフォルト |
---|---|---|
users_without_row_policies_can_read_rows | 許可された行ポリシーがないユーザーが SELECT クエリを使用して行を読み取ることができるかどうかを設定します。たとえば、ユーザー A と B がいて、A のみに対して行ポリシーが定義されている場合、この設定が真であれば、ユーザー B はすべての行を見ることができます。この設定が偽であれば、ユーザー B は行を見ません。 | true |
on_cluster_queries_require_cluster_grant | ON CLUSTER クエリが CLUSTER 権限を必要とするかどうかを設定します。 | true |
select_from_system_db_requires_grant | SELECT * FROM system.<table> が任何権限を必要とし、任意のユーザーによって実行できるかどうかを設定します。これが真に設定されている場合、このクエリは GRANT SELECT ON system.<table> を必要とし、通常のテーブルと同様です。例外: 一部のシステムテーブル(tables 、columns 、databases 、および one 、contributors のような一部の定数テーブル)は、すべての人がアクセス可能です。SHOW 権限(例: SHOW USERS )が付与されている場合、対応するシステムテーブル(すなわち system.users )にもアクセスできます。 | true |
select_from_information_schema_requires_grant | SELECT * FROM information_schema.<table> が任何権限を必要とし、任意のユーザーによって実行できるかどうかを設定します。これが真に設定されている場合、このクエリは GRANT SELECT ON information_schema.<table> を必要とし、普通のテーブルと同様です。 | true |
settings_constraints_replace_previous | 設定プロファイル内のある設定に対する制約が、他のプロファイルで定義されたその設定の前の制約の行動をキャンセルするかどうかを設定します。これには新しい制約によって設定されていないフィールドも含まれます。また、changeable_in_readonly 制約タイプを有効にします。 | true |
table_engines_require_grant | 特定のテーブルエンジンを使用してテーブルを作成するために権限が必要かどうかを設定します。 | false |
role_cache_expiration_time_seconds | 最後のアクセスからの時間(秒)を設定し、その時間が経過すると役割がロールキャッシュに保存されます。 | 600 |
例:
access_control_path
ClickHouseサーバーがSQLコマンドによって作成されたユーザーおよびロール設定を保存するフォルダーへのパスです。
関連事項
aggregate_function_group_array_action_when_limit_is_reached
throw
例外、または discard
余分な値
aggregate_function_group_array_max_element_size
allow_feature_tier
異なる機能階層に関連する設定をユーザーが変更できるかどうかを制御します。
0
- すべての設定変更が許可されます(実験的、ベータ、プロダクション)。1
- ベータおよびプロダクション機能設定に対する変更のみが許可されます。実験的設定の変更は拒否されます。2
- プロダクション設定に対する変更のみが許可されます。実験的またはベータ設定の変更は拒否されます。
これはすべての EXPERIMENTAL
/ BETA
機能に対する読み取り専用制約を設定することと同等です。
値が 0
の場合、すべての設定を変更できます。
allow_implicit_no_password
明示的に 'IDENTIFIED WITH no_password' が指定されていない場合、パスワードなしのユーザーを作成することを禁止します。
allow_no_password
安全でないパスワードタイプのno_passwordを許可するかどうかを設定します。
allow_plaintext_password
プレーンテキストパスワードタイプ(安全でない)を許可するかどうかを設定します。
allow_use_jemalloc_memory
async_insert_queue_flush_on_shutdown
async_insert_threads
async_load_databases
データベースおよびテーブルの非同期ロード。
true
の場合、ClickHouseサーバーの起動後、Ordinary
、Atomic
、およびReplicated
エンジンを持つすべての非システムデータベースが非同期でロードされます。system.asynchronous_loader
テーブル、tables_loader_background_pool_size
、およびtables_loader_foreground_pool_size
サーバー設定を参照してください。まだロードされていないテーブルにアクセスしようとする任意のクエリは、正確にそのテーブルが起動するまで待機します。ロードジョブが失敗した場合、クエリはエラーを再スローします(async_load_databases = false
のケースではサーバー全体をシャットダウンするのではなく)。少なくとも1つのクエリによって待機されるテーブルは、高い優先度でロードされます。データベースに対するDDLクエリは、正確にそのデータベースが起動するまで待機します。また、待機クエリの総数の制限max_waiting_queries
を設定することを考慮してください。false
の場合、すべてのデータベースはサーバー起動時にロードされます。
例
async_load_system_database
システムテーブルの非同期ロード。system
データベース内に多数のログテーブルとパーツがある場合に便利です。async_load_databases
設定とは独立しています。
true
に設定すると、ClickHouseサーバーの起動後、Ordinary
、Atomic
、およびReplicated
エンジンを持つすべてのシステムデータベースが非同期でロードされます。system.asynchronous_loader
テーブル、tables_loader_background_pool_size
、およびtables_loader_foreground_pool_size
サーバー設定を参照してください。まだロードされていないシステムテーブルにアクセスしようとする任意のクエリは、正確にそのテーブルが起動するまで待機します。少なくとも1つのクエリによって待機されるテーブルは、高い優先度でロードされます。また、待機クエリの総数を制限するために、max_waiting_queries
設定を設定することを考慮してください。false
に設定すると、サーバー起動前にシステムデータベースがロードされます。
例
asynchronous_heavy_metrics_update_period_s
asynchronous_insert_log
asynchronous_insert_log のシステムテーブル用の設定で、非同期挿入をログします。
例
asynchronous_metric_log
ClickHouse Cloud展開では、デフォルトで有効になっています。
環境にデフォルトでこの設定が有効でない場合、ClickHouseがインストールされた方法に応じて、次に示す手順に従って有効または無効にできます。
有効化
非同期メトリックログ履歴収集 system.asynchronous_metric_log
を手動でオンにするには、次の内容で /etc/clickhouse-server/config.d/asynchronous_metric_log.xml
を作成します。
無効化
asynchronous_metric_log
設定を無効にするには、次の内容で /etc/clickhouse-server/config.d/disable_asynchronous_metric_log.xml
ファイルを作成する必要があります。
asynchronous_metrics_enable_heavy_metrics
asynchronous_metrics_update_period_s
auth_use_forwarded_address
プロキシを介して接続されたクライアントの認証に起源のアドレスを使用します。
この設定は特に注意して使用する必要があります。なぜなら、転送されたアドレスは簡単に偽造できるからです。このような認証を受け入れるサーバーには直接ではなく、信頼できるプロキシを介してのみアクセスしてください。
background_buffer_flush_schedule_pool_size
background_common_pool_size
background_distributed_schedule_pool_size
background_fetches_pool_size
background_merges_mutations_concurrency_ratio
同時に実行できるバックグラウンドマージとミューテーションのスレッド数とバックグラウンドマージおよびミューテーションの数との比率を設定します。
たとえば、比率が2で background_pool_size
が16に設定されている場合、ClickHouseは同時に32のバックグラウンドマージを実行できます。これは、バックグラウンド操作が一時停止されて延期されることができるためです。これにより、小規模なマージにより実行優先度が高くなります。
この比率は実行中にのみ増加させることができます。下げるにはサーバーを再起動する必要があります。
background_pool_size
設定と同様に、background_merges_mutations_concurrency_ratio
は後方互換性のために default
プロファイルから適用される場合があります。
background_merges_mutations_scheduling_policy
バックグラウンドでのマージおよびミューテーションのスケジューリングを実行するためのポリシー。可能な値は round_robin
および shortest_task_first
です。
バックグラウンドスレッドプールによって実行される次のマージまたはミューテーションを選択するために使用されるアルゴリズム。ポリシーはサーバーの再起動なしに実行中に変更できます。
可能な値:
round_robin
— 各同時マージとミューテーションは、飢餓なしの操作を確保するためにラウンドロビン順で実行されます。小さなマージは、大きなマージと比較してブロック数が少ないため、より早く完了します。shortest_task_first
— 常に小さなマージまたはミューテーションを実行します。マージとミューテーションは、その結果のサイズに基づいて優先順位が割り当てられます。サイズの小さいマージは、サイズの大きなマージよりも厳密に優先されます。このポリシーは、小さな部品の最も迅速なマージを保証しますが、INSERT
で過度に過負荷になっているパーティション内の大きなマージの無限の飢えにつながる可能性があります。
background_message_broker_schedule_pool_size
background_move_pool_size
background_pool_size
MergeTreeエンジンのテーブルに対するバックグラウンドマージおよびミューテーションを行うスレッド数を設定します。
- この設定は、ClickHouseサーバーの起動時に
default
プロファイル設定からも適用される場合があります。 - 実行中にスレッド数を増やすことができます。
- スレッド数を減らすには、サーバーを再起動する必要があります。
- この設定を調整することで、CPUおよびディスクの負荷を管理できます。
小さいプールサイズは、CPUおよびディスクリソースを少なく使用しますが、バックグラウンドプロセスの進行が遅くなる可能性があり、最終的にはクエリ性能に影響を与える可能性があります。
これを変更する前に、次のような関連する MergeTree 設定も確認してください。
number_of_free_entries_in_pool_to_lower_max_size_of_merge
.number_of_free_entries_in_pool_to_execute_mutation
.
例
background_schedule_pool_size
backup_log
BACKUP
および RESTORE
操作をログするための backup_log システムテーブルの設定。
例
backup_threads
BACKUP
リクエストを実行するための最大スレッド数。
backups
BACKUP TO File()
の際に書き込むために使用されるバックアップの設定。
次の設定をサブタグで構成できます。
設定名 | 説明 | デフォルト |
---|---|---|
allowed_path | File() を使用する際にバックアップを取得するパス。この設定は、File を使用するために設定する必要があります。このパスはインスタンスディレクトリに対して相対的なものか、または絶対パスである可能性があります。 | true |
remove_backup_files_after_failure | BACKUP コマンドが失敗した場合、ClickHouse は失敗前にバックアップにコピーされているファイルを削除しようとします。さもなければ、コピーされたファイルはそのままになります。 | true |
この設定は、デフォルトで以下のように構成されています。
backups_io_thread_pool_queue_size
バックアップの IO スレッドプールにスケジュールできる最大ジョブ数。現在の S3 バックアップロジックのために、このキューは制限なしに保つことをお勧めします。
値が 0
(デフォルト)は無制限を意味します。
bcrypt_workfactor
bcryptアルゴリズムを使用するbcrypt_password 認証タイプの作業係数。
blog_storage_log
blob_storage_log
システムテーブルの設定。
例:
builtin_dictionaries_reload_interval
組み込み辞書の再読み込み間隔(秒単位)。
ClickHouseは、毎x秒に組み込み辞書を再読み込みします。これにより、サーバーを再起動せずに辞書を「オンザフライ」で編集できます。
例
cache_size_to_ram_max_ratio
cannot_allocate_thread_fault_injection_probability
cgroup_memory_watcher_hard_limit_ratio
サーバープロセスのメモリ消費の「ハード」しきい値をcgroupsに従って指定し、その後サーバーの最大メモリ消費量がしきい値値に調整されます。
設定を参照してください:
cgroup_memory_watcher_soft_limit_ratio
サーバープロセスのメモリ消費の「ソフト」しきい値をcgroupsに従って指定し、その後jemalloc内のアリーナがクリアされます。
設定を参照してください:
cgroups_memory_usage_observer_wait_time
cgroupsの対応するしきい値に従って、サーバーの最大メモリ消費を調整する間隔(秒単位)。
cgroupオブザーバーを無効にするには、この値を 0
に設定します。
設定を参照してください:
compiled_expression_cache_elements_size
compiled_expression_cache_size
compression
MergeTreeエンジンテーブルのデータ圧縮設定。
ClickHouseの使用を始めたばかりの場合は、これを変更しないことをお勧めします。
設定テンプレート:
<case>
フィールド:
min_part_size
– データパートの最小サイズ。min_part_size_ratio
– テーブルサイズに対するデータパートサイズの比率。method
– 圧縮方法。受け入れ可能な値:lz4
,lz4hc
,zstd
,deflate_qpl
。level
– 圧縮レベル。詳細は Codecs を参照してください。
複数の <case>
セクションを構成できます。
条件が満たされる場合のアクション:
- データパートが設定された条件に一致する場合、ClickHouse は指定された圧縮方法を使用します。
- データパートが複数の条件に一致する場合、ClickHouse は最初の一致した条件を使用します。
データパートに対して条件が満たされない場合、ClickHouse は lz4
圧縮を使用します。
例
concurrent_threads_scheduler
concurrent_threads_soft_limit_num
および concurrent_threads_soft_limit_ratio_to_cores
で指定されたCPUスロットをスケジューリングするポリシー。制限された数のCPUスロットが同時クエリにどのように分配されるかを管理するために使用されるアルゴリズム。スケジューラーはサーバーの再起動なしで実行中に変更できます。
可能な値:
round_robin
—use_concurrency_control
= 1 を設定した各クエリは、max_threads
のCPUスロットを最大まで割り当てます。スレッドごとに1スロット。競合がある場合、CPUスロットはラウンドロビン順にクエリに付与されます。最初のスロットは無条件に与えられるので、これは不公平を引き起こし、max_threads
が高いクエリのレイテンシが高くなる可能性があります。fair_round_robin
—use_concurrency_control
= 1 を設定した各クエリは、max_threads - 1
のCPUスロットを最大まで割り当てます。すべてのクエリの最初のスレッドにCPUスロットを必要としないラウンドロビンのバリエーション。このように、max_threads
= 1 のクエリはスロットを必要とせず、すべてのスロットを不公平に割り当てることができません。無条件で与えられるスロットはありません。
concurrent_threads_soft_limit_num
リモートサーバーからデータを取得するためのスレッドを除外して、すべてのクエリを実行するために許可される最大クエリ処理スレッド数。これは厳格な制限ではありません。この制限に達した場合、クエリはそれでも1つのスレッドを受け取ります。クエリは、実行中により多くのスレッドが利用可能になると、希望の数のスレッドにアップスケールできます。
値が 0
(デフォルト)は無制限を意味します。
concurrent_threads_soft_limit_ratio_to_cores
concurrent_threads_soft_limit_num
と同じですが、コアに対する比率です。
crash_log
crash_log システムテーブル操作の設定。
デフォルトのサーバー構成ファイル config.xml
には、次の設定セクションが含まれています:
custom_cached_disks_base_directory
この設定は、カスタム(SQLから作成された)キャッシュディスクのキャッシュパスを指定します。
custom_cached_disks_base_directory
はカスタムディスクに対して filesystem_caches_path
(filesystem_caches_path.xml
に見つかる)よりも優先されます。
前者が存在しない場合、後者が使用されます。
ファイルシステムキャッシュ設定パスは、そのディレクトリ内に存在しなければなりません。
さもなければ、ディスクの作成を防ぐ例外がスローされます。
これは、サーバーがアップグレードされた古いバージョンで作成されたディスクには影響しません。 この場合、サーバーが正常に起動できるように、例外はスローされません。
例:
custom_settings_prefixes
カスタム設定 の接頭辞のリスト。接頭辞はカンマで区切らなければなりません。
例
参照先
database_atomic_delay_before_drop_table_sec
削除されたテーブルを UNDROP
ステートメントを使用して復元できるまでの遅延時間。 DROP TABLE
が SYNC
修飾子と共に実行された場合、この設定は無視されます。
この設定のデフォルトは 480
(8分)です。
database_catalog_drop_error_cooldown_sec
database_catalog_drop_table_concurrency
database_catalog_unused_dir_cleanup_period_sec
store/
ディレクトリからガーベジをクリーンアップするタスクのパラメータ。
タスクのスケジューリング期間を設定します。
0
の値は「決して」を意味します。デフォルト値は1日です。
database_catalog_unused_dir_hide_timeout_sec
store/
ディレクトリからガーベジをクリーンアップするタスクのパラメータ。
もし特定のサブディレクトリが clickhouse-server によって使用されておらず、最後の database_catalog_unused_dir_hide_timeout_sec
秒間このディレクトリが変更されていない場合、タスクはこのディレクトリを「隠す」ために
全てのアクセス権を削除します。これは、clickhouse-server が store/
内部に見越していないディレクトリでも機能します。
0
の値は「即座に」を意味します。
database_catalog_unused_dir_rm_timeout_sec
store/
ディレクトリからガーベジをクリーンアップするタスクのパラメータ。
もし特定のサブディレクトリが clickhouse-server によって使用されておらず、以前「隠されていた」
(database_catalog_unused_dir_hide_timeout_sec を参照)で、かつこのディレクトリが最後の database_catalog_unused_dir_rm_timeout_sec
秒間に変更されていない場合、タスクはこのディレクトリを削除します。
これは、clickhouse-server が store/
内部に見越していないディレクトリでも機能します。
0
の値は「決して」を意味します。デフォルト値は30日です。
database_replicated_allow_detach_permanently
default_database
default_password_type
クエリ CREATE USER u IDENTIFIED BY 'p'
のために自動的に設定されるパスワードタイプを設定します。
受け入れられる値:
plaintext_password
sha256_password
double_sha1_password
bcrypt_password
default_profile
デフォルトの設定プロファイル。設定プロファイルは user_config
で指定されたファイルにあります。
例
default_replica_name
ZooKeeper におけるレプリカ名。
例
default_replica_path
ZooKeeper 内のテーブルへのパス。
例
default_session_timeout
デフォルトのセッションタイムアウト(秒単位)。
dictionaries_config
辞書用構成ファイルのパス。
パス:
- 絶対パスまたはサーバー構成ファイルに対する相対パスを指定します。
- パスにはワイルドカード * および ? を含めることができます。
参照先:
- "Dictionaries".
例
dictionaries_lazy_load
辞書の遅延ロード。
true
の場合、各辞書は最初の使用時にロードされます。ロードに失敗した場合、その辞書を使用している関数は例外をスローします。false
の場合、サーバーは起動時にすべての辞書をロードします。
サーバーは、すべての辞書がロードを終えるまで接続を受け付けるのを待機します(例外: wait_dictionaries_load_at_startup
が false
に設定されている場合)。
例
dictionary_background_reconnect_interval
background_reconnect
が有効になっています。
disable_insertion_and_mutation
すべての挿入/更新/削除クエリを無効にします。この設定は、読み取り性能に挿入や更新が影響しないようにするために、読み取り専用ノードが必要な場合に有効になります。
disable_internal_dns_cache
disable_tunneling_for_https_requests_over_http_proxy
デフォルトでは、トンネリング(つまり、 HTTP CONNECT
)は HTTP
プロキシ上で HTTPS
リクエストを行うために使用されます。この設定はそれを無効にするために使用できます。
no_proxy
デフォルトでは、すべてのリクエストはプロキシを通過します。特定のホストのためにこれを無効にするには、no_proxy
変数を設定しなければなりません。
それはリストとリモートリゾルバの <proxy>
句内および環境リゾルバの環境変数として設定できます。
IPアドレス、ドメイン、サブドメインおよびフルバイパスのために '*'
ワイルドカードをサポートします。先頭のドットは、curl が実行するときのように削除されます。
例
以下の構成は、clickhouse.cloud
とその全てのサブドメインに対するプロキシリクエストをバイパスします (例: auth.clickhouse.cloud
)。
同様に GitLab にも適用されますが、先頭にドットがあります。gitlab.com
と about.gitlab.com
の両方がプロキシをバイパスします。
disk_connections_soft_limit
disk_connections_store_limit
disk_connections_warn_limit
display_secrets_in_show_and_select
テーブル、データベース、テーブル関数、および辞書に対する SHOW
および SELECT
クエリでシークレットを表示するかどうかを有効または無効にします。
シークレットを表示したいユーザーは、format_display_secrets_in_show_and_select
フォーマット設定 をオンにし、
displaySecretsInShowAndSelect
権限を持っている必要があります。
可能な値:
0
— 無効。1
— 有効。
distributed_cache_keep_up_free_connections_ratio
distributed_cache_keep_up_free_connections_ratio * max_connections
未満になると、古い活動を持つ接続を閉じ、数がリミットを上回るまで続けます。
distributed_ddl
クラスター上で 分散 DDL クエリ(CREATE
、DROP
、ALTER
、RENAME
)を実行する管理。
ZooKeeper が有効になっていなければ、機能しません。
<distributed_ddl>
内の設定には次のものがあります:
設定 | 説明 | デフォルト値 |
---|---|---|
path | DDL クエリの task_queue の Keeper 内のパス | |
profile | DDL クエリを実行するために使用されるプロファイル | |
pool_size | 何件の ON CLUSTER クエリを同時に実行できるか | |
max_tasks_in_queue | キューに存在できるタスクの最大数。 | 1,000 |
task_max_lifetime | ノードの年齢がこの値を超えた場合に削除します。 | 7 * 24 * 60 * 60 (1週間(秒単位)) |
cleanup_delay_period | 新しいノードイベントが受信された後、最後のクリーンアップが cleanup_delay_period 秒未満でなかった場合、クリーンアップが開始されます。 | 60 秒 |
例
dns_allow_resolve_names_to_ipv4
dns_allow_resolve_names_to_ipv6
dns_cache_max_entries
dns_cache_update_period
dns_max_consecutive_failures
enable_azure_sdk_logging
encryption
暗号化コーデック に使用するキーを取得するコマンドを構成します。キー(またはキー)は環境変数に書かれるか、構成ファイルに設定されるべきです。
キーは 16 バイトの長さを持つ 16 進数または文字列である可能性があります。
例
構成からの読み込み:
キーを構成ファイルに保存することは推奨されません。安全ではないからです。キーを安全なディスク上の別の構成ファイルに移し、その構成ファイルへのシンボリックリンクを config.d/
フォルダに配置できます。
構成からの読み込み、キーが 16 進数の場合:
環境変数からのキーの読み込み:
ここで current_key_id
は暗号化に使用される現在のキーを設定し、指定されたすべてのキーは復号化に使用できます。
これらのメソッドは複数のキーに対して適用できます:
ここで current_key_id
は暗号化に使われる現在のキーを示します。
また、12 バイトの長さを持つノンスを追加することもできます(デフォルトでは、暗号化および復号化プロセスでは、ゼロバイトで構成されたノンスが使用されます):
または、16 進数で設定することもできます:
上記のすべては aes_256_gcm_siv
にも適用可能です(ただし、キーは 32 バイト長である必要があります)。
error_log
デフォルトでは無効です。
有効化
エラーヒストリーコレクション system.error_log
を手動でオンにするには、/etc/clickhouse-server/config.d/error_log.xml
を作成し、次の内容を設定します:
無効化
error_log
設定を無効にするには、次のファイル /etc/clickhouse-server/config.d/disable_error_log.xml
を作成し、次の内容を設定します:
format_schema_path
入力データ用のスキーマを持つディレクトリへのパス、例えば CapnProto 形式用のスキーマ。
例
global_profiler_cpu_time_period_ns
global_profiler_real_time_period_ns
google_protos_path
Protobuf タイプ用の proto ファイルを含むディレクトリを定義します。
例
graphite
Graphite にデータを送信します。
設定:
host
– Graphite サーバー。port
– Graphite サーバー上のポート。interval
– 送信間隔(秒単位)。timeout
– データ送信時のタイムアウト(秒単位)。root_path
– キーのプレフィックス。metrics
– system.metrics テーブルからのデータ送信。events
– system.events テーブルからの期間中に蓄積されたデルタデータを送信。events_cumulative
– system.events テーブルからの累積データを送信。asynchronous_metrics
– system.asynchronous_metrics テーブルからのデータ送信。
複数の <graphite>
句を設定できます。例えば、異なる間隔で異なるデータを送信するために使用できます。
例
graphite_rollup
Graphite 用のデータをスリムさせる設定。
詳細については、GraphiteMergeTree を参照してください。
例
hsts_max_age
HSTS の有効期限(秒単位)。
0
の値は ClickHouse が HSTS を無効にすることを意味します。正の数を設定した場合、HSTS が有効になり、max-age は設定した数になります。
例
http_connections_soft_limit
http_connections_store_limit
http_connections_warn_limit
http_handlers
カスタム HTTP ハンドラーの使用を許可します。
新しい http ハンドラーを追加するには、新しい <rule>
を追加するだけです。
ルールは、定義されたとおりに上から下へとチェックされ、最初の一致がハンドラーを実行します。
以下の設定は、サブタグによって構成できます:
サブタグ | 定義 |
---|---|
url | リクエスト URL を一致させるためのもので、regex: プレフィックスを使用して正規表現マッチを利用できます(オプション) |
methods | リクエストメソッドを一致させるもので、複数のメソッドマッチをカンマで区切ることができます(オプション) |
headers | リクエストヘッダーを一致させるためのもので、各子要素を一致させます(子要素名はヘッダー名)、regex: プレフィックスを使って正規表現マッチを利用できます(オプション) |
handler | リクエストハンドラー |
empty_query_string | URL にクエリ文字列が存在しないことを確認します |
handler
には以下の設定が含まれ、サブタグで構成できます:
サブタグ | 定義 |
---|---|
url | リダイレクト先 |
type | サポートされているタイプ: static, dynamic_query_handler, predefined_query_handler, redirect |
status | 静的タイプで使用、レスポンスステータスコード |
query_param_name | dynamic_query_handler タイプと共に使用し、HTTP リクエストパラメータ内の <query_param_name> 値に対応する値を抽出し実行します |
query | predefined_query_handler タイプと共に使用し、ハンドラーが呼び出されるとクエリを実行します |
content_type | 静的タイプと共に使用し、レスポンスコンテンツタイプ |
response_content | 静的タイプと共に使用し、クライアントへ送信されるレスポンスコンテンツ。プレフィックス 'file://' または 'config://' を使用すると、ファイルまたは構成から内容を見つけてクライアントに送信します |
ルールのリストと共に、すべてのデフォルトハンドラーを有効にする <defaults/>
を指定することもできます。
例:
http_options_response
OPTIONS
HTTP リクエストのレスポンスにヘッダーを追加するために使用します。
OPTIONS
メソッドは、CORS プレフライトリクエストを実行する際に使用されます。
詳細については、OPTIONS を参照してください。
例:
http_server_default_response
ClickHouse HTTP(S) サーバーにアクセスしたときにデフォルトで表示されるページ。 デフォルト値は "Ok." (最後に改行が含まれます。)
例
http://localhost: http_port
にアクセスすると https://tabix.io/
を開きます。
iceberg_catalog_threadpool_pool_size
iceberg_catalog_threadpool_queue_size
iceberg_metadata_files_cache_max_entries
iceberg_metadata_files_cache_policy
iceberg_metadata_files_cache_size
iceberg_metadata_files_cache_size_ratio
ignore_empty_sql_security_in_create_view_query
この設定が true の場合、ClickHouse は CREATE VIEW
クエリにおいて空の SQL セキュリティステートメントのデフォルトを記述しません。
この設定は移行期間中のみ必要であり、バージョン 24.4 で廃止されます。
include_from
置換のためのファイルのパス。XML 形式と YAML 形式の両方がサポートされています。
詳細については、セクション「設定ファイル」を参照してください。
例
index_mark_cache_policy
index_mark_cache_size
インデックスマークのキャッシュの最大サイズ。
値が 0
の場合、無効です。
この設定はランタイム中に変更でき、即時に反映されます。
index_mark_cache_size_ratio
index_uncompressed_cache_policy
index_uncompressed_cache_size
MergeTree
インデックスの非圧縮ブロックのキャッシュの最大サイズ。
値が 0
の場合、無効です。
この設定はランタイム中に変更でき、即時に反映されます。
index_uncompressed_cache_size_ratio
interserver_http_credentials
他のサーバーに接続するために使用されるユーザー名とパスワード、レプリケーションの間で。さらに、このサーバーはこれらの資格情報を使用して他のレプリカを認証します。
そのため、interserver_http_credentials
はクラスター内のすべてのレプリカで同じである必要があります。
- デフォルトでは、
interserver_http_credentials
セクションが省略されると、レプリケーション中に認証は使用されません。 interserver_http_credentials
設定は、ClickHouse クライアントの資格情報 構成 に関係しません。- これらの資格情報は、
HTTP
およびHTTPS
経由のレプリケーションに共通です。
次の設定はサブタグで構成できます:
user
— ユーザー名。password
— パスワード。allow_empty
—true
の場合、他のレプリカは資格情報が設定されていても認証なしで接続できます。false
の場合、認証なしの接続は拒否されます。デフォルト:false
。old
— 資格情報のローテーション中に使用された古いuser
およびpassword
を含みます。複数のold
セクションを指定できます。
資格情報のローテーション
ClickHouse は、すべてのレプリカを同時に停止せずに動的なインタサーバー資格情報のローテーションをサポートします。資格情報は複数のステップで変更できます。
認証を有効にするには、interserver_http_credentials.allow_empty
を true
に設定し、資格情報を追加します。これにより、認証ありおよびなしでの接続が可能になります。
すべてのレプリカの構成が完了したら、allow_empty
を false
に設定するか、この設定を削除します。これにより、新しい資格情報での認証が必須となります。
既存の資格情報を変更するには、ユーザー名とパスワードを interserver_http_credentials.old
セクションに移動し、新しい値で user
と password
を更新します。この時点で、サーバーは新しい資格情報を使用して他のレプリカに接続し、新しい資格情報または古い資格情報のいずれかでの接続を受け入れます。
新しい資格情報がすべてのレプリカに適用されたら、古い資格情報は削除できます。
interserver_http_host
他のサーバーがこのサーバーにアクセスするために使用できるホスト名。
省略された場合、hostname -f
コマンドと同じ方法で定義されます。
特定のネットワークインターフェースからの切り離しに有効です。
例
interserver_http_port
ClickHouse サーバー間でデータを交換するためのポート。
例
interserver_https_host
interserver_http_host
と似ていますが、このホスト名は他のサーバーが HTTPS
経由でこのサーバーにアクセスするために使用できます。
例
interserver_https_port
HTTPS
経由で ClickHouse サーバー間でデータを交換するためのポート。
例
interserver_listen_host
ClickHouse サーバー間でデータを交換できるホストの制限。 Keeper が使用されている場合、この制限は異なる Keeper インスタンス間の通信にも適用されます。
デフォルトでは、値は listen_host
設定と同じです。
例
タイプ:
デフォルト:
io_thread_pool_queue_size
IO スレッドプールにスケジュールできるジョブの最大数。
値が 0
の場合、無制限です。
keep_alive_timeout
ClickHouse が接続を閉じる前に HTTP プロトコルのために incoming requests を待機する秒数。
例
keeper_multiread_batch_size
バッチをサポートする [Zoo]Keeper への MultiRead リクエストの最大バッチサイズ。0 に設定すると、バッチ処理が無効になります。ClickHouse Cloud のみで利用可能です。
latency_log
デフォルトでは無効です。
有効化
遅延履歴収集を手動で有効にするために system.latency_log
を作成します。以下の内容で /etc/clickhouse-server/config.d/latency_log.xml
を作成します。
無効化
latency_log
設定を無効にするには、以下のファイル /etc/clickhouse-server/config.d/disable_latency_log.xml
を作成し、以下の内容を記述します。
ldap_servers
ここに LDAP サーバーとその接続パラメータのリストを記述して:
password
の代わりにldap
認証メカニズムが指定された専用ローカルユーザーの認証者として使用する- リモートユーザーディレクトリとして利用することができます。
次の設定はサブタグで構成できます:
設定 | 説明 |
---|---|
host | LDAP サーバーのホスト名または IP、これは必須パラメータで空にはできません。 |
port | LDAP サーバーポート、enable_tls が true に設定されている場合はデフォルトが 636、そうでない場合は 389 です。 |
bind_dn | バインドするための DN を作成するために使用されるテンプレート。認証を試みるたびにテンプレートのすべての \{user_name\} サブストリングが実際のユーザー名に置き換えられることによって、結果の DN が構築されます。 |
user_dn_detection | バインドユーザーの実際のユーザー DN を検出するための LDAP 検索パラメーターを含むセクション。これは主にサーバーが Active Directory であるときの役割マッピングのための検索フィルタに使用されます。結果のユーザー DN は、許可されている場所で \{user_dn\} サブストリングを置き換える際に使用されます。デフォルトでは、ユーザー DN はバインド DN と同じに設定されていますが、検索が実行されると、実際の検出されたユーザー DN 値で更新されます。 |
verification_cooldown | 成功したバインド試行の後、ユーザーがLDAPサーバーに接続せずにすべての連続リクエストに対して成功した認証を仮定する期間(秒単位)。0 (デフォルト)を指定すると、キャッシングが無効になり、各認証リクエストに対してLDAPサーバーとの接触が強制されます。 |
enable_tls | LDAP サーバーへの安全な接続をトリガーするフラグ。平文の (ldap:// ) プロトコルには no を指定します(推奨されません)。SSL/TLS を介した LDAP (ldaps:// ) プロトコル(推奨、デフォルト)には yes を指定します。従来の StartTLS プロトコル(平文の (ldap:// ) プロトコルをTLSにアップグレード)には starttls を指定します。 |
tls_minimum_protocol_version | SSL/TLS の最小プロトコルバージョン。受け入れられる値は ssl2 、ssl3 、tls1.0 、tls1.1 、tls1.2 (デフォルト)です。 |
tls_require_cert | SSL/TLS ピア証明書の検証動作。受け入れられる値は never 、allow 、try 、demand (デフォルト)です。 |
tls_cert_file | 証明書ファイルへのパス。 |
tls_key_file | 証明書鍵ファイルへのパス。 |
tls_ca_cert_file | CA 証明書ファイルへのパス。 |
tls_ca_cert_dir | CA 証明書を格納しているディレクトリへのパス。 |
tls_cipher_suite | 許可される暗号スイート(OpenSSL の表記法で)。 |
user_dn_detection
の設定はサブタグで構成できます:
設定 | 説明 |
---|---|
base_dn | LDAP 検索のためのベース DN を構築するために使用されるテンプレート。結果の DN は、LDAP 検索中にテンプレートのすべての \{user_name\} および \{bind_dn\} サブストリングが、実際のユーザー名およびバインド DN に置き換えられることによって構築されます。 |
scope | LDAP 検索のスコープ。受け入れられる値は base 、one_level 、children 、subtree (デフォルト)です。 |
search_filter | LDAP 検索のための検索フィルタを構築するために使用されるテンプレート。結果のフィルタは、LDAP 検索中にテンプレートのすべての \{user_name\} 、\{bind_dn\} および \{base_dn\} サブストリングが、実際のユーザー名、バインド DN、およびベース DN に置き換えられることによって構築されます。特別な文字は、XML で正しくエスケープされる必要があります。 |
例:
例(設定されたユーザ DN 検出を備えた典型的な Active Directory での役割マッピング):
license_key
ClickHouse エンタープライズエディションのライセンスキー
listen_backlog
リッスンソケットのバックログ(保留中の接続のキューサイズ)。デフォルト値は 4096
で、これは linux 5.4+ と同じです。
通常、この値は変更する必要はありません。なぜなら:
- デフォルト値は十分に大きく、
- クライアントの接続を受け入れるためには、サーバーに別のスレッドがあります。
したがって、TcpExtListenOverflows
(nstat
からの)値がゼロでなく、ClickHouse サーバーのこのカウンターが増加しても、この値を増やす必要があるわけではありません。なぜなら:
- 通常、
4096
では足りない場合は、何らかの内部の ClickHouse スケーリングの問題を示しているため、問題を報告する方が良いです。 - サーバーが後でより多くの接続を扱えるわけでもなく(仮にそうだった場合、時点でクライアントが消えているか、切断されている可能性があります)。
例
listen_host
リクエストが来ることができるホストの制限。サーバーがすべてのリクエストに応答するようにしたい場合は、::
を指定します。
例:
listen_reuse_port
複数のサーバーが同じアドレス:ポートでリッスンすることを許可します。リクエストはオペレーティングシステムによってランダムなサーバーにルーティングされます。この設定を有効にすることは推奨されません。
例
タイプ:
デフォルト:
listen_try
IPv6 または IPv4 ネットワークが利用できない場合でも、リッスン時にサーバーは終了しません。
例
load_marks_threadpool_pool_size
load_marks_threadpool_queue_size
ログメッセージをコンソールにのみ出力するには:
レベルごとのオーバーライド
個別のログ名のログレベルをオーバーライドできます。例えば、"Backup"と"RBAC"のロガーのすべてのメッセージをミュートするには。
syslog
ログメッセージをsyslogにも書き込むには:
<syslog>
のキー:
Key | Description |
---|---|
address | host\[:port\] 形式のsyslogアドレス。省略すると、ローカルデーモンが使用されます。 |
hostname | ログを送信するホストの名前(オプション)。 |
facility | syslogのファシリティキーワード。必ず大文字で「LOG_」プレフィックスを付けて指定します。例: LOG_USER 、LOG_DAEMON 、LOG_LOCAL3 など。デフォルト: 指定されたaddress がある場合は LOG_USER 、それ以外は LOG_DAEMON 。 |
format | ログメッセージフォーマット。可能な値: bsd および syslog. |
ログフォーマット
コンソールログに出力するログフォーマットを指定できます。現在、JSONのみがサポートされています。
例
出力JSONログの例:
JSONログサポートを有効にするには、次のスニペットを使用します:
JSONログのキー名の変更
キー名は <names>
タグ内のタグ値を変更することで修正できます。たとえば、DATE_TIME
を MY_DATE_TIME
に変更したい場合は、<date_time>MY_DATE_TIME</date_time>
を使用します。
JSONログのキーを省略する
ログプロパティはそのプロパティをコメントアウトすることで省略できます。たとえば、query_id
を出力しないようにするには、<query_id>
タグをコメントアウトします。
macros
レプリケートされたテーブル用のパラメーター置換。
レプリケートされたテーブルを使用しない場合は省略できます。
詳細については、レプリケートされたテーブルの作成のセクションを参照してください。
例
mark_cache_policy
mark_cache_prewarm_ratio
mark_cache_size
マーク(MergeTree
テーブルファミリーのインデックス)用のキャッシュの最大サイズ。
この設定はランタイム中に変更でき、即座に効果が現れます。
mark_cache_size_ratio
max_active_parts_loading_thread_pool_size
max_authentication_methods_per_user
ユーザーが作成または変更できる認証メソッドの最大数。 この設定を変更しても既存のユーザーには影響しません。この設定で指定された制限を超える認証関連のクエリを作成または変更すると失敗します。 非認証の作成/変更クエリは成功します。
0
の値は無制限を意味します。
max_backup_bandwidth_for_server
max_backups_io_thread_pool_free_size
max_backup_io_thread_pool_free_size
を超えると、ClickHouseはアイドルスレッドが占有していたリソースを解放し、プールサイズを減らします。スレッドは必要に応じて再作成できます。
max_backups_io_thread_pool_size
max_backups_io_thread_pool_size
はプール内のスレッドの最大数を制限します。
max_build_vector_similarity_index_thread_pool_size
ベクトルインデックスを構築するための最大スレッド数。
0
の値はすべてのコアを意味します。
max_concurrent_insert_queries
同時に実行できるINSERTクエリの総数に対する制限。
0
(デフォルト)の値は無制限を意味します。
この設定はランタイム中に変更でき、即座に効果が現れます。既に実行中のクエリは変更されません。
max_concurrent_queries
同時に実行されるクエリの総数に対する制限。 INSERT
および SELECT
クエリの制限、およびユーザー用の最大クエリ数も考慮する必要があります。
他にも:
0
(デフォルト)の値は無制限を意味します。
この設定はランタイム中に変更でき、即座に効果が現れます。既に実行中のクエリは変更されません。
max_concurrent_select_queries
同時に実行されるSELECTクエリの総数に対する制限。
0
(デフォルト)の値は無制限を意味します。
この設定はランタイム中に変更でき、即座に効果が現れます。既に実行中のクエリは変更されません。
max_connections
max_database_num_to_throw
max_database_num_to_warn
接続されているデータベースの数が指定された値を超えた場合、clickhouseサーバーは system.warnings
テーブルに警告メッセージを追加します。
例
max_database_replicated_create_table_thread_pool_size
max_dictionary_num_to_throw
辞書の数がこの値を超えた場合、サーバーは例外をスローします。
データベースエンジンの場合のみカウント:
- Atomic
- Ordinary
- Replicated
- Lazy
0
の値は制限なしを意味します。
例
max_dictionary_num_to_warn
接続されている辞書の数が指定された値を超えた場合、clickhouseサーバーは system.warnings
テーブルに警告メッセージを追加します。
例
max_entries_for_hash_table_stats
max_fetch_partition_thread_pool_size
max_io_thread_pool_free_size
IOスレッドプールのアイドルスレッドの数が max_io_thread_pool_free_size
を超えると、ClickHouseはアイドルスレッドが占有していたリソースを解放し、プールサイズを減らします。スレッドは必要に応じて再作成できます。
max_io_thread_pool_size
ClickHouseはS3とやり取りするためのIO操作などを行うためにIOスレッドプールのスレッドを使用します。 max_io_thread_pool_size
はプール内のスレッドの最大数を制限します。
max_keep_alive_requests
ClickHouseサーバーによって閉じられるまでの単一のキープアライブ接続を通じて最大リクエスト数。
例
max_local_read_bandwidth_for_server
ローカル読み取りの最大速度(バイト/秒)。
0
の値は無制限を意味します。
max_local_write_bandwidth_for_server
ローカル書き込みの最大速度(バイト/秒)。
0
の値は無制限を意味します。
max_materialized_views_count_for_table
テーブルに添付できるマテリアライズドビューの数に対する制限。
ここで考慮されるのは直接依存しているビューのみで、あるビューの上に別のビューを作成することは考慮されません。
max_merges_bandwidth_for_server
max_mutations_bandwidth_for_server
max_open_files
オープンファイルの最大数。
macOSでは、このオプションを使用することを推奨します。なぜなら、getrlimit()
関数が不正確な値を返すからです。
例
max_os_cpu_wait_time_ratio_to_drop_connection
接続をドロップするために考慮されるOS CPU待機(OSCPUWaitMicrosecondsメトリック)とビジー(OSCPUVirtualTimeMicrosecondsメトリック)時間の最大比率。確率を計算するために最小および最大比率の線形補間が使用され、この時点で確率は1です。 詳細については、サーバーCPUオーバーロード時の動作制御を参照してください。
max_outdated_parts_loading_thread_pool_size
max_part_num_to_warn
アクティブパーツの数が指定された値を超えた場合、clickhouseサーバーは system.warnings
テーブルに警告メッセージを追加します。
例
max_partition_size_to_drop
パーティションをドロップする制限。
MergeTreeテーブルのサイズがmax_partition_size_to_drop
(バイト単位)を超えると、DROP PARTITIONクエリを使用してパーティションをドロップできません。
この設定はClickHouseサーバーを再起動する必要はありません。制限を無効にする別の方法は、<clickhouse-path>/flags/force_drop_table
ファイルを作成することです。
値0
は、制限なしでパーティションをドロップできることを意味します。
この制限はテーブルのドロップやトランケートには制限をかけません。詳細については、max_table_size_to_dropを参照してください。
例
max_parts_cleaning_thread_pool_size
max_pending_mutations_execution_time_to_warn
保留中の変更が指定された値を秒で超えた場合、clickhouseサーバーは system.warnings
テーブルに警告メッセージを追加します。
例
max_pending_mutations_to_warn
保留中の変更の数が指定された値を超えた場合、clickhouseサーバーは system.warnings
テーブルに警告メッセージを追加します。
例
max_prefixes_deserialization_thread_pool_free_size
プレフィックスデシリアライズのスレッドプール内のアイドルスレッドの数が max_prefixes_deserialization_thread_pool_free_size
を超えると、ClickHouseはアイドルスレッドが占有していたリソースを解放し、プールサイズを減らします。スレッドは必要に応じて再作成できます。
max_prefixes_deserialization_thread_pool_size
ClickHouseはMergeTreeのワイドパーツからファイルプレフィックスのメタデータを並行して読み取るためにプレフィックスデシリアライズのスレッドプールのスレッドを使用します。 max_prefixes_deserialization_thread_pool_size
はプール内のスレッドの最大数を制限します。
max_remote_read_network_bandwidth_for_server
リモート読み取りの最大ネットワークデータ転送速度(バイト/秒)。
0
(デフォルト)の値は無制限を意味します。
max_remote_write_network_bandwidth_for_server
リモート書き込みの最大ネットワークデータ転送速度(バイト/秒)。
0
(デフォルト)の値は無制限を意味します。
max_replicated_fetches_network_bandwidth_for_server
max_replicated_sends_network_bandwidth_for_server
max_replicated_table_num_to_throw
レプリケートされたテーブルの数がこの値を超えた場合、サーバーは例外をスローします。
データベースエンジンの場合のみカウント:
- Atomic
- Ordinary
- Replicated
- Lazy
0
の値は制限なしを意味します。
例
max_server_memory_usage
サーバーが使用できる最大メモリ量(バイト単位)。
サーバーの最大メモリ消費量は、max_server_memory_usage_to_ram_ratio
の設定によってさらに制限されます。
特殊なケースとして、0
(デフォルト)の値はサーバーが利用可能なすべてのメモリを消費できることを意味します(max_server_memory_usage_to_ram_ratio
による制限を除く)。
max_server_memory_usage_to_ram_ratio
サーバーが使用できる最大メモリ量を、すべての使用可能なメモリに対する比率として示します。
例えば、0.9
(デフォルト)の値は、サーバーが使用可能なメモリの90%を消費できることを意味します。
低メモリシステムでのメモリ使用量を減らすことができます。
RAMとスワップが少ないホストでは、max_server_memory_usage_to_ram_ratio
を1より大きく設定する必要があるかもしれません。
サーバーの最大メモリ消費量は、max_server_memory_usage
によってさらに制限されます。
max_session_timeout
最大セッションタイムアウト(秒)。
例:
max_table_num_to_warn
添付されたテーブルの数が指定された値を超えると、ClickHouseサーバーはsystem.warnings
テーブルに警告メッセージを追加します。
例
max_table_size_to_drop
テーブルを削除する制限。
MergeTree テーブルのサイズがmax_table_size_to_drop
(バイト単位)を超える場合、DROP
クエリまたは TRUNCATE
クエリを使用して削除することはできません。
0
の値は全てのテーブルを制限なしで削除できることを意味します。
この設定はClickHouseサーバーの再起動を必要とせずに適用されます。制限を無効にする別の方法は、<clickhouse-path>/flags/force_drop_table
ファイルを作成することです。
例
max_temporary_data_on_disk_size
外部集計、結合、またはソートに使用できる最大ストレージ量。 この制限を超えるクエリは例外で失敗します。
0
の値は無制限を意味します。
参照:
max_thread_pool_free_size
グローバルスレッドプール内のアイドルスレッドの数がmax_thread_pool_free_size
を超えると、ClickHouseは一部のスレッドが占有しているリソースを解放し、プールサイズを減少させます。必要に応じてスレッドを再作成できます。
例
max_thread_pool_size
ClickHouseはクエリを処理するためにグローバルスレッドプールからスレッドを使用します。クエリを処理するためのアイドルスレッドがない場合、プールに新しいスレッドが作成されます。max_thread_pool_size
はプール内のスレッドの最大数を制限します。
例
max_unexpected_parts_loading_thread_pool_size
max_view_num_to_throw
ビューの数がこの値を超える場合、サーバーは例外を投げます。
データベースエンジンに対してのみテーブルをカウントします:
- Atomic
- Ordinary
- Replicated
- Lazy
0
の値は制限なしを意味します。
例
max_view_num_to_warn
添付されたビューの数が指定された値を超えると、ClickHouseサーバーはsystem.warnings
テーブルに警告メッセージを追加します。
例
max_waiting_queries
同時に待機するクエリの総数の制限。
待機クエリの実行は、必要なテーブルが非同期で読み込まれている間にブロックされます(async_load_databases
を参照)。
待機クエリは、以下の設定によって制御された制限がチェックされるときにはカウントされません:
max_concurrent_queries
max_concurrent_insert_queries
max_concurrent_select_queries
max_concurrent_queries_for_user
max_concurrent_queries_for_all_users
この修正は、サーバー起動後にこれらの制限に達するのを避けるために行われます。
0
(デフォルト)の値は無制限を意味します。
この設定はランタイムで変更可能であり、即座に効果を発揮します。既に実行中のクエリは変更されません。
memory_worker_correct_memory_tracker
バックグラウンドメモリワーカーがjemallocやcgroupsなどの外部ソースの情報に基づいて内部メモリトラッカーを修正すべきかどうか。
memory_worker_period_ms
バックグラウンドメモリワーカーのティック周期。これはメモリトラッカーのメモリ使用量を修正し、高いメモリ使用時に未使用ページをクリーンアップします。0に設定されている場合は、メモリ使用のソースに応じてデフォルト値が使用されます。
memory_worker_use_cgroup
merge_tree
MergeTreeのテーブルに対する詳細設定。
詳細は、MergeTreeSettings.hヘッダーファイルを参照してください。
例
merge_workload
マージと他のワークロードの間でリソースの利用と共有を調整するために使用されます。指定された値は、全てのバックグラウンドマージのworkload
設定値として使用されます。マージツリー設定によって上書きすることができます。
参照
merges_mutations_memory_usage_soft_limit
マージおよびミューテーション操作に使用することが許可されているRAMの制限を設定します。 ClickHouseが設定された制限に達した場合、新しいバックグラウンドマージまたはミューテーション操作をスケジュールしなくなりますが、すでにスケジュールされたタスクは実行し続けます。
0
の値は無制限を意味します。
例
merges_mutations_memory_usage_to_ram_ratio
デフォルトのmerges_mutations_memory_usage_soft_limit
値はmemory_amount * merges_mutations_memory_usage_to_ram_ratio
として計算されます。
参照:
metric_log
デフォルトでは無効になっています。
有効化
メトリクス履歴収集system.metric_log
を手動でオンにするには、次の内容で/etc/clickhouse-server/config.d/metric_log.xml
を作成してください:
無効化
metric_log
設定を無効にするには、次の内容で/etc/clickhouse-server/config.d/disable_metric_log.xml
というファイルを作成してください:
min_os_cpu_wait_time_ratio_to_drop_connection
接続を切断することを検討するためのOS CPU待機(OSCPUWaitMicrosecondsメトリック)とビジー(OSCPUVirtualTimeMicrosecondsメトリック)時間の間の最小比率。最小値と最大値の間でリニア補間が使用され、確率はこのポイントで0です。 サーバーのCPUオーバーロード時の動作制御の詳細を参照してください。
mlock_executable
起動後にmlockall
を実行して、最初のクエリのレイテンシを低下させ、高IO負荷下でClickHouse実行可能ファイルがページアウトされるのを防ぎます。
このオプションを有効にすることは推奨されますが、起動時間が数秒延びることになります。 この設定は、「CAP_IPC_LOCK」権限がないと機能しません。
例
mmap_cache_size
マッピングファイルのキャッシュサイズ(バイト単位)を設定します。この設定は、頻繁なオープン/クローズコールを回避することを可能にし(結果としてページフォールトが非常に高価になるため)、複数のスレッドやクエリからのマッピングを再利用します。設定値はマッピングされたリージョンの数(通常はマッピングされたファイルの数に等しい)です。
マッピングファイル内のデータ量は、次のシステムテーブルで次のメトリックを使用して監視できます:
システムテーブル | メトリック |
---|---|
system.metrics および system.metric_log | MMappedFiles および MMappedFileBytes |
system.asynchronous_metrics_log | MMapCacheCells |
system.events , system.processes , system.query_log , system.query_thread_log , system.query_views_log | CreatedReadBufferMMap , CreatedReadBufferMMapFailed , MMappedFileCacheHits , MMappedFileCacheMisses |
マッピングファイル内のデータ量は直接メモリを消費せず、クエリやサーバーのメモリ使用量にはカウントされません。なぜなら、このメモリはOSページキャッシュのように破棄可能だからです。キャッシュは、MergeTreeファミリーのテーブル内の古いパーツが削除されるときに自動的に削除されるか、SYSTEM DROP MMAP CACHE
クエリによって手動で削除できます。
この設定はランタイムで変更可能であり、即座に効果を発揮します。
mutation_workload
ミューテーションと他のワークロードの間でリソースの利用と共有を調整するために使用されます。指定された値は、全てのバックグラウンドミューテーションのworkload
設定値として使用されます。マージツリー設定によって上書きすることができます。
参照
mysql_port
MySQLプロトコルを介してクライアントと通信するためのポート。
- 正の整数はリッスンするポート番号を指定します
- 空の値は、MySQLプロトコルを介したクライアントとの通信を無効にするために使用されます。
例
openSSL
SSLクライアント/サーバー設定。
SSLのサポートはlibpoco
ライブラリによって提供されます。利用可能な構成オプションは、SSLManager.hで説明されています。デフォルト値は、SSLManager.cppに記載されています。
サーバー/クライアント設定のキー:
オプション | 説明 | デフォルト値 |
---|---|---|
privateKeyFile | PEM証明書の秘密鍵を含むファイルへのパス。そのファイルには、鍵と証明書が同時に含まれることがあります。 | |
certificateFile | PEM形式のクライアント/サーバー証明書ファイルへのパス。privateKeyFile に証明書が含まれている場合は省略できます。 | |
caConfig | 信頼されたCA証明書を含むファイルまたはディレクトリへのパス。このパスがファイルを指す場合、PEM形式であり、複数のCA証明書を含むことができます。このパスがディレクトリを指す場合は、CA証明書ごとに1つの.pemファイルが必要です。ファイル名はCAのサブジェクト名のハッシュ値で検索されます。詳細は、SSL_CTX_load_verify_locationsのmanページで見つけることができます。 | |
verificationMode | ノードの証明書を確認するための方法。詳細はContextクラスの説明にあります。可能な値:none 、relaxed 、strict 、once 。 | relaxed |
verificationDepth | 検証チェーンの最大長。検証は、証明書チェーンの長さが設定値を超えた場合に失敗します。 | 9 |
loadDefaultCAFile | OpenSSL用の組み込みCA証明書を使用するかどうか。ClickHouseは、組み込みCA証明書が/etc/ssl/cert.pem (またはディレクトリ/etc/ssl/certs )にあるか、環境変数SSL_CERT_FILE (またはSSL_CERT_DIR )で指定されたファイル(またはディレクトリ)にあると仮定します。 | true |
cipherList | サポートされているOpenSSL暗号化。 | ALL:!ADH:!LOW:!EXP:!MD5:!3DES:@STRENGTH |
cacheSessions | セッションのキャッシングを有効または無効にします。必ずsessionIdContext と組み合わせて使用してください。受け入れ可能な値:true 、false 。 | false |
sessionIdContext | サーバーが生成する各識別子を付加する一意のランダム文字列のセット。文字列の長さはSSL_MAX_SSL_SESSION_ID_LENGTH を超えてはいけません。このパラメータは、セッションのキャッシュに問題を避けるために常に推奨されます。 | $\{application.name\} |
sessionCacheSize | サーバーがキャッシュするセッションの最大数。0 の値は無制限のセッションを意味します。 | 1024*20 |
sessionTimeout | サーバー上でセッションをキャッシュするための時間(時間単位)。 | 2 |
extendedVerification | 有効にされた場合、証明書のCNまたはSANがピアのホスト名と一致することを検証します。 | false |
requireTLSv1 | TLSv1接続を要求します。受け入れ可能な値:true 、false 。 | false |
requireTLSv1_1 | TLSv1.1接続を要求します。受け入れ可能な値:true 、false 。 | false |
requireTLSv1_2 | TLSv1.2接続を要求します。受け入れ可能な値:true 、false 。 | false |
fips | OpenSSLのFIPSモードをアクティブ化します。ライブラリのOpenSSLバージョンがFIPSをサポートしている場合に限ります。 | false |
privateKeyPassphraseHandler | 秘密鍵にアクセスするためのパスフレーズを要求するクラス(PrivateKeyPassphraseHandlerのサブクラス)。例:<privateKeyPassphraseHandler> 、<name>KeyFileHandler</name> 、<options><password>test</password></options> 、</privateKeyPassphraseHandler> 。 | KeyConsoleHandler |
invalidCertificateHandler | 無効な証明書を検証するためのクラス(CertificateHandlerのサブクラス)。例:<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler> 。 | RejectCertificateHandler |
disableProtocols | 使用が許可されていないプロトコル。 | |
preferServerCiphers | クライアントが好むサーバーの暗号。 | false |
設定の例:
opentelemetry_span_log
opentelemetry_span_log
システムテーブルのための設定。
例:
os_cpu_busy_time_threshold
page_cache_free_memory_ratio
page_cache_history_window_ms
page_cache_max_size
page_cache_min_size
page_cache_policy
page_cache_shards
page_cache_size_ratio
part_log
MergeTree に関連するログイベント。例えば、データの追加やマージです。ログを使用してマージアルゴリズムをシミュレーションし、それらの特性を比較することができます。マージプロセスを視覚化できます。
クエリは system.part_log テーブルにログされ、別のファイルには記録されません。このテーブルの名前は table
パラメータで構成できます(下記参照)。
例
parts_kill_delay_period
SharedMergeTree のパーツを完全に削除するまでの期間。ClickHouse Cloud でのみ利用可能です。
parts_kill_delay_period_random_add
kill_delay_period に0からx秒の均等に分布した値を追加して、非常に多くのテーブルがある場合の雷鳴のような効果とZooKeeperの後続のDoSを回避します。ClickHouse Cloud でのみ利用可能です。
parts_killer_pool_size
共有マージツリーの時代のクリーンアップ用のスレッド。ClickHouse Cloud でのみ利用可能です。
path
データを含むディレクトリへのパス。
後ろのスラッシュは必須です。
例
postgresql_port
PostgreSQLプロトコルを介してクライアントと通信するためのポート。
- 正の整数はリッスンするポート番号を指定します
- 空の値は、MySQLプロトコルを介してクライアントとの通信を無効にするために使用されます。
例
prefetch_threadpool_pool_size
prefetch_threadpool_queue_size
prefixes_deserialization_thread_pool_thread_pool_queue_size
プレフィックスデシリアライズスレッドプールにスケジュールできる最大のジョブ数。
値が 0
の場合、制限はありません。
prepare_system_log_tables_on_startup
trueの場合、ClickHouseは起動前にすべての構成された system.*_log
テーブルを作成します。これは、特定の起動スクリプトがこれらのテーブルに依存している場合に便利です。
primary_index_cache_policy
primary_index_cache_prewarm_ratio
primary_index_cache_size
primary_index_cache_size_ratio
process_query_plan_packet
この設定により、QueryPlanパケットを読み取ることができます。このパケットは、serialize_query_planが有効になっている場合の分散クエリに送信されます。 セキュリティ上の問題が発生する可能性があるため、クエリプランのバイナリデシリアライズにバグがある場合は無効にすることをお勧めします。
例
processors_profile_log
processors_profile_log
システムテーブルの設定。
デフォルトの設定は次のとおりです。
prometheus
Prometheusからのスクレイピングデータを公開します。
設定:
endpoint
- prometheusサーバによるメトリクスのスクレイピングのためのHTTPエンドポイント。 '/' から始まります。port
-endpoint
のためのポート。metrics
- system.metrics テーブルからメトリクスを公開します。events
- system.events テーブルからメトリクスを公開します。asynchronous_metrics
- system.asynchronous_metrics テーブルから現在のメトリクス値を公開します。errors
- 最後のサーバの再起動以来発生した各エラーコードによるエラーの数を公開します。この情報は、system.errors からも取得できます。
例
チェック(127.0.0.1
を ClickHouse サーバの IP アドレスまたはホスト名に置き換えます):
proxy
HTTPおよびHTTPSリクエスト用のプロキシサーバを定義します。現在、S3ストレージ、S3テーブル関数、URL関数でサポートされています。
プロキシサーバを定義する方法は3つあります:
- 環境変数
- プロキシリスト
- リモートプロキシリゾルバ
特定のホスト用にプロキシサーバをバイパスすることも、no_proxy
を使用することでサポートされています。
環境変数
http_proxy
および https_proxy
環境変数は、指定されたプロトコル用のプロキシサーバを指定することを可能にします。システムに設定があれば、シームレスに機能するはずです。
特定のプロトコルに対してプロキシサーバが1つしかない場合、またそのプロキシサーバが変更されない場合、このアプローチが最も簡単です。
プロキシリスト
このアプローチでは、プロトコル用の1つ以上のプロキシサーバを指定することができます。複数のプロキシサーバが定義されている場合、ClickHouseはサーバ間で負荷を均等に分配し、ラウンドロビン方式で異なるプロキシを使用します。このアプローチは、プロトコルに対して複数のプロキシサーバがあり、プロキシサーバのリストが変更されない場合に最も簡単です。
設定テンプレート
以下のタブで親フィールドを選択すると、その子要素が表示されます:
- <proxy>
- <http> and <https>
フィールド | 説明 |
---|---|
<http> | 1つ以上のHTTPプロキシのリスト |
<https> | 1つ以上のHTTPSプロキシのリスト |
フィールド | 説明 |
---|---|
<uri> | プロキシのURI |
リモートプロキシリゾルバ
プロキシサーバが動的に変更される可能性があります。その場合、リゾルバのエンドポイントを定義できます。ClickHouseはそのエンドポイントに空のGETリクエストを送り、リモートリゾルバはプロキシホストを返す必要があります。ClickHouseは次のテンプレートを使用してプロキシURIを形成します: \{proxy_scheme\}://\{proxy_host\}:{proxy_port}
設定テンプレート
以下のタブで親フィールドを選択すると、その子要素が表示されます:
- <proxy>
- <http> and <https>
- <resolver>
フィールド | 説明 |
---|---|
<http> | 1つ以上のリゾルバのリスト* |
<https> | 1つ以上のリゾルバのリスト* |
フィールド | 説明 |
---|---|
<resolver> | リゾルバのためのエンドポイントとその他の詳細 |
複数の <resolver>
要素を持つことができますが、指定されたプロトコルについて最初の <resolver>
のみが使用されます。それ以外の <resolver>
要素は無視されます。これは、負荷分散(必要に応じて)がリモートリゾルバによって実装されるべきであることを意味します。
フィールド | 説明 |
---|---|
<endpoint> | プロキシリゾルバのURI |
<proxy_scheme> | 最終プロキシURIのプロトコル。http またはhttps のいずれかです。 |
<proxy_port> | プロキシリゾルバのポート番号 |
<proxy_cache_time> | リゾルバからの値をClickHouseがキャッシュすべき時間(秒単位)。この値を0 に設定すると、ClickHouseはすべてのHTTPまたはHTTPSリクエストに対してリゾルバに連絡します。 |
優先順位
プロキシ設定は次の順序で決定されます。
順序 | 設定 |
---|---|
1. | リモートプロキシリゾルバ |
2. | プロキシリスト |
3. | 環境変数 |
ClickHouseはリクエストプロトコルに最も優先度の高いリゾルバタイプを確認します。定義されていない場合は、次に優先度の高いリゾルバタイプを確認し、環境リゾルバに到達するまで続けます。これにより、リゾルバタイプの混合も可能です。
query_cache
クエリキャッシュの設定。
次の設定が利用可能です。
設定 | 説明 | デフォルト値 |
---|---|---|
max_size_in_bytes | 最大キャッシュサイズ(バイト単位)。 0 はクエリキャッシュが無効であることを意味します。 | 1073741824 |
max_entries | キャッシュに格納される SELECT クエリ結果の最大数。 | 1024 |
max_entry_size_in_bytes | キャッシュに保存される可能性のある SELECT クエリ結果の最大サイズ(バイト単位)。 | 1048576 |
max_entry_size_in_rows | キャッシュに保存される可能性のある SELECT クエリ結果の最大行数。 | 30000000 |
- 設定を変更すると、即座に効果が現れます。
- クエリキャッシュのデータはDRAMに割り当てられます。メモリが不足している場合、
max_size_in_bytes
に小さな値を設定するか、クエリキャッシュ全体を無効にしてください。
例
query_condition_cache_policy
query_condition_cache_size
クエリ条件キャッシュの最大サイズ。
この設定はランタイムで変更可能で、すぐに効果が現れます。
query_condition_cache_size_ratio
query_log
log_queries=1 設定で受信したクエリをログするための設定。
クエリは system.query_log テーブルにログされ、別のファイルには記録されません。このテーブルの名前は table
パラメータで変更できます(下記参照)。
テーブルが存在しない場合、ClickHouseはそれを作成します。ClickHouseサーバが更新されたときにクエリログの構造が変更された場合、古い構造を持つテーブルは名前が変更され、新しいテーブルが自動的に作成されます。
例
query_masking_rules
クエリおよびすべてのログメッセージに適用される正規表現ベースのルールで、サーバーログ、system.query_log
、system.text_log
、system.processes
テーブル、およびクライアントに送信されるログに保存されます。これにより、SQLクエリから名前、電子メール、個人識別子、クレジットカード番号などの機密データの漏洩を防ぐことができます。
例
設定フィールド:
設定 | 説明 |
---|---|
name | ルールの名前(オプション) |
regexp | RE2互換の正規表現(必須) |
replace | 機密データの置換文字列(オプション。デフォルトは六つのアスタリスク) |
マスキングルールはクエリ全体に適用され(感情的/解析不可能なクエリから機密データが漏れないように)、system.events
テーブルには、クエリマスキングルール一致数を示すカウンター QueryMaskingRulesMatch
があります。
分散クエリの場合、各サーバは個別に設定する必要があります。さもなければ、他のノードに渡されたサブクエリはマスキングなしで保存されます。
query_metric_log
デフォルトでは無効です。
有効化
手動でメトリクス履歴収集を有効にするには、system.query_metric_log
、次の内容の /etc/clickhouse-server/config.d/query_metric_log.xml
を作成します。
無効化
query_metric_log
設定を無効にするには、次の内容のファイル /etc/clickhouse-server/config.d/disable_query_metric_log.xml
を作成する必要があります。
query_thread_log
log_query_threads=1 設定で受信したクエリスレッドをログするための設定。
クエリは system.query_thread_log テーブルにログされ、別のファイルには記録されません。このテーブルの名前は table
パラメータで変更できます(下記参照)。
テーブルが存在しない場合、ClickHouseはそれを作成します。ClickHouseサーバが更新されたときにクエリスレッドログの構造が変更された場合、古い構造を持つテーブルは名前が変更され、新しいテーブルが自動的に作成されます。
例
query_views_log
log_query_views=1 設定で受信したクエリに依存するビュー(ライブ、マテリアライズなど)をログするための設定。
クエリは system.query_views_log テーブルにログされ、別のファイルには記録されません。このテーブルの名前は table
パラメータで変更できます(下記参照)。
テーブルが存在しない場合、ClickHouseはそれを作成します。ClickHouseサーバが更新されたときにクエリビューのログの構造が変更された場合、古い構造を持つテーブルは名前が変更され、新しいテーブルが自動的に作成されます。
例
remap_executable
巨大なページを使用して機械コード("テキスト")のメモリを再割り当てする設定。
この機能は非常に実験的です。
例
remote_servers
分散 テーブルエンジンおよび cluster
テーブル関数で使用されるクラスターの設定。
例
incl
属性の値については、"設定ファイル" セクションを参照してください。
関連する内容
remote_url_allow_hosts
URL関連のストレージエンジンとテーブル関数で使用を許可されているホストのリスト。
\<host\>
xml タグでホストを追加する際は:
- URL と同じように正確に指定する必要があります。名前はDNS解決の前にチェックされます。たとえば:
<host>clickhouse.com</host>
- ポートがURLで明示的に指定されている場合、ホスト:ポートが全体としてチェックされます。たとえば:
<host>clickhouse.com:80</host>
- ポートなしでホストが指定されている場合は、ホストの任意のポートが許可されます。たとえば、
<host>clickhouse.com</host>
が指定されている場合、clickhouse.com:20
(FTP)、clickhouse.com:80
(HTTP)、clickhouse.com:443
(HTTPS) などが許可されます。 - ホストがIPアドレスとして指定されている場合は、URLに指定された通りにチェックされます。たとえば:[2a02:6b8🅰️:a]。
- リダイレクトがあり、リダイレクトのサポートが有効になっている場合、すべてのリダイレクト(locationフィールド)がチェックされます。
例えば:
replica_group_name
レプリケートデータベースのレプリカグループ名。
レプリケートデータベースによって作成されたクラスターは、同じグループ内のレプリカで構成されます。 DDLクエリは、同じグループ内のレプリカを待機します。
デフォルトでは空です。
例
replicated_fetches_http_connection_timeout
http_connection_timeout
から継承されます。
replicated_fetches_http_receive_timeout
http_receive_timeout
から継承されます。
replicated_fetches_http_send_timeout
http_send_timeout
から継承されます。
replicated_merge_tree
ReplicatedMergeTree テーブルの微調整。この設定にはより高い優先順位があります。
詳細については、MergeTreeSettings.h ヘッダーファイルを参照してください。
例
restore_threads
s3queue_log
s3queue_log
システムテーブルの設定。
デフォルトの設定は次のとおりです。
send_crash_reports
ClickHouse コア開発者チームへのクラッシュレポート送信の設定。
特にプレプロダクション環境での有効化は非常に感謝されます。
キー:
キー | 説明 |
---|---|
enabled | この機能を有効にするためのブールフラグ。デフォルトは true 。クラッシュレポートを送信しないには false に設定します。 |
send_logical_errors | LOGICAL_ERROR は assert のようなもので、ClickHouseのバグです。このブールフラグはこの例外を送信することを有効にします(デフォルト:true )。 |
endpoint | クラッシュレポート送信のためのエンドポイントURLを上書きできます。 |
推奨利用法
series_keeper_path
generateSerialID
関数によって生成された自動インクリメント番号を持つKeeper内のパス。各シリーズはこのパスの下にノードになります。
show_addresses_in_stack_traces
shutdown_wait_backups_and_restores
shutdown_wait_unfinished
shutdown_wait_unfinished_queries
ssh_server
ホスト鍵の公開部分は、最初の接続時にSSHクライアント側のknown_hostsファイルに書き込まれます。
ホスト鍵設定はデフォルトでは無効です。 ホスト鍵設定のコメントを解除し、関連するssh鍵へのパスを提供して有効にします。
例
startup_mv_delay_ms
storage_configuration
ストレージのマルチディスク設定を可能にします。
ストレージ設定は次の構造に従います。
ディスクの設定
disks
の設定は、以下の構造に従います。
上記のサブタグは、disks
に対する次の設定を定義します:
設定 | 説明 |
---|---|
<disk_name_N> | ユニークである必要があるディスクの名前。 |
path | サーバデータが保存されるパス(data および shadow カタログ)。スラッシュで終了する必要があります。 |
keep_free_space_bytes | ディスク上に保留するための自由なスペースのサイズ。 |
ディスクの順序は重要ではありません。
ポリシーの設定
上記のサブタグは policies
の以下の設定を定義します:
設定 | 説明 |
---|---|
policy_name_N | ポリシーの名前。ポリシー名は一意でなければなりません。 |
volume_name_N | ボリューム名。ボリューム名は一意でなければなりません。 |
disk | ボリューム内にあるディスク。 |
max_data_part_size_bytes | このボリューム内のディスクのいずれかに存在できるデータチャンクの最大サイズ。マージの結果、チャンクサイズが max_data_part_size_bytes より大きくなることが予想される場合、チャンクは次のボリュームに書き込まれます。基本的にこの機能により、新しい/小さなチャンクをホット(SSD)ボリュームに格納し、大きなサイズに達した際にそれらをコールド(HDD)ボリュームに移動できます。このオプションはポリシーにボリュームが1つだけの場合には使用しないでください。 |
move_factor | ボリュームの利用可能な空きスペースの割合。スペースが減少した場合、次のボリュームへのデータ転送が始まります。転送のために、チャンクは大きい順にソートされ、move_factor 条件を満たす総サイズのチャンクが選択されます。すべてのチャンクの合計サイズが不十分な場合、すべてのチャンクが移動されます。 |
perform_ttl_move_on_insert | 挿入時に期限切れの TTL を持つデータを移動しないようにします。デフォルト(有効な場合)は、TTL に従って既に期限切れのデータを挿入すると、それはすぐに移動ルールで指定されたボリューム/ディスクに移動されます。この場合、ターゲットボリューム/ディスクが遅い(例:S3)と、挿入が大幅に遅くなる可能性があります。無効にすると、期限切れのデータ部分はデフォルトのボリュームに書き込まれ、その後すぐに期限切れの TTL に対して指定されたボリュームに移動されます。 |
load_balancing | ディスクのバランスポリシー。round_robin または least_used 。 |
least_used_ttl_ms | すべてのディスクの利用可能なスペースを更新するためのタイムアウト(ミリ秒単位)。0 は常に更新、-1 は決して更新しないことを意味します。デフォルト値は 60000 です。ディスクが ClickHouse のみで使用され、ファイルシステムが動的にサイズ変更されることがない場合は、-1 の値を使用できます。他の場合には推奨されません。最終的に不正確なスペース割り当てにつながる可能性があるためです。 |
prefer_not_to_merge | このボリュームのデータ部分のマージを無効にします。この設定は潜在的に有害であり、遅延を引き起こす可能性があります。この設定が有効になると(こうするべきではありません)、このボリュームでのデータのマージが禁止され、ClickHouse が遅いディスクとどのようにインタラクトするかを制御します。この設定は基本的に使用しないことをお勧めします。 |
volume_priority | ボリュームが満たされる優先順位(順序)を定義します。値が小さいほど優先順位が高くなります。パラメータの値は自然数で、1からNまで(Nは指定された最大パラメータ値)の範囲をカバーし、ギャップを持ってはいけません。 |
volume_priority
の場合:
- すべてのボリュームがこのパラメータを持っている場合、指定された順序で優先されます。
- 一部のボリュームのみがこのパラメータを持つ場合、持たないボリュームは最低の優先順位になります。持っているボリュームはタグの値に従って優先され、残りのボリュームの優先順位は設定ファイル内の相対的な記述の順序によって決まります。
- ボリュームがこのパラメータを持たない場合、その順序は設定ファイルにおける記述の順序によって決まります。
- ボリュームの優先度は同一であってはならない場合があります。
storage_connections_soft_limit
storage_connections_store_limit
0
に設定します。この制限はストレージの接続に適用されます。
storage_connections_warn_limit
storage_metadata_write_full_object_key
storage_shared_set_join_use_inner_uuid
table_engines_require_grant
true に設定すると、特定のエンジンを使用してテーブルを作成するにはユーザーに権限が必要になります。例:GRANT TABLE ENGINE ON TinyLog to user
。
デフォルトでは、後方互換性のために特定のテーブルエンジンでテーブルを作成することは権限を無視しますが、これを true に設定することでこの動作を変更できます。
tables_loader_background_pool_size
バックグラウンドプールで非同期ロードジョブを実行するスレッドの数を設定します。バックグラウンドプールは、サーバーが起動した後、テーブルを待機しているクエリがない場合に、テーブルを非同期にロードするために使用されます。テーブルの数が多い場合、バックグラウンドプールのスレッド数を少なく保つと、同時クエリの実行のために CPU リソースが予約されることがあります。
0
の値は、すべての利用可能な CPU が使用されることを意味します。
tables_loader_foreground_pool_size
フォアグラウンドプールでロードジョブを実行するスレッドの数を設定します。フォアグラウンドプールは、サーバーがポートでリッスンを開始する前にテーブルを同期的にロードしたり、待機しているテーブルをロードするために使用されます。フォアグラウンドプールはバックグラウンドプールよりも優先度が高いため、フォアグラウンドプールで実行中のジョブがある間は、バックグラウンドプールでジョブは開始されません。
0
の値は、すべての利用可能な CPU が使用されることを意味します。
tcp_port
TCP プロトコルを介してクライアントと通信するためのポート。
例
tcp_port_secure
クライアントとの安全な通信のための TCP ポート。 OpenSSL 設定と共に使用します。
デフォルト値
tcp_ssh_port
埋め込みクライアントを使用してインタラクティブにクエリを実行するためにユーザーが接続できる SSH サーバーのポート。
例:
temporary_data_in_cache
このオプションを使用すると、一時データは特定のディスクのキャッシュに保存されます。
このセクションでは、cache
タイプのディスク名を指定する必要があります。その場合、キャッシュと一時データは同じスペースを共有し、ディスクキャッシュは一時データを作成するために追い出される可能性があります。
tmp_path
、tmp_policy
、 temporary_data_in_cache
のいずれか1つのオプションのみを使用して、一時データストレージを構成できます。
例
local_disk
のキャッシュと一時データは、tiny_local_cache
によって管理されるファイルシステム上の /tiny_local_cache
に保存されます。
text_log
テキストメッセージをログ記録するための text_log システムテーブルの設定。
さらに:
設定 | 説明 | デフォルト値 |
---|---|---|
level | テーブルに保存される最大メッセージレベル(デフォルトは Trace )。 | Trace |
例
thread_pool_queue_size
グローバルスレッドプールにスケジュールできるジョブの最大数。キューサイズを増加させるとメモリ使用量が増加します。この値は max_thread_pool_size
と等しく保つことをお勧めします。
0
の値は無制限を意味します。
例
threadpool_writer_pool_size
threadpool_writer_queue_size
throw_on_unknown_workload
クエリ設定 'workload' で未知の WORKLOAD にアクセスした際の動作を定義します。
true
の場合、未知の WORKLOAD にアクセスしようとするクエリから RESOURCE_ACCESS_DENIED 例外がスローされます。これは、WORKLOAD 階層が確立され、WORKLOAD デフォルトが含まれた後、すべてのクエリに対してリソーススケジューリングを強制するのに役立ちます。false
(デフォルト)の場合、未知の WORKLOAD を指す 'workload' 設定を持つクエリに対し、リソーススケジューリングなしで無制限にアクセスすることが提供されます。これは WORKLOAD の階層を設定している間重要です。
例
関連情報
timezone
サーバーのタイムゾーン。
UTC タイムゾーンまたは地理的な場所を示す IANA 識別子として指定します(例:Africa/Abidjan)。
タイムゾーンは、String と DateTime フォーマット間の変換に必要であり、DateTime フィールドがテキストフォーマット(画面やファイルに出力)で出力されるときや、文字列から DateTime を取得するときに使用されます。さらに、タイムゾーンは、入力パラメータでタイムゾーンが提供されなかった場合に、時刻や日付で動作する関数に使用されます。
例
関連情報
tmp_path
大規模なクエリを処理するための一時データをローカルファイルシステムに保存するパス。
- 一時データストレージを構成するために使用できるのは
tmp_path
、tmp_policy
、temporary_data_in_cache
のいずれか1つのオプションのみです。 - トレーリングスラッシュは必須です。
例
tmp_policy
一時データを持つストレージのポリシー。詳細については、MergeTree テーブルエンジン ドキュメントを参照してください。
- 一時データストレージを構成するために使用できるのは
tmp_path
、tmp_policy
、temporary_data_in_cache
のいずれか1つのオプションのみです。 move_factor
、keep_free_space_bytes
、max_data_part_size_bytes
は無視されます。- ポリシーには正確に 1つのボリューム と ローカル ディスクが必要です。
例
/disk1
が満杯になると、一時データは /disk2
に保存されます。
top_level_domains_list
各エントリが <name>/path/to/file</name>
形式のカスタムトップレベルドメインのリストを定義します。
例えば:
その他参照
- 関数
cutToFirstSignificantSubdomainCustom
などが、カスタム TLD リスト名を受け取り、最初の重要なサブドメインまでのトップレベルサブドメインを含むドメインの部分を返します。
total_memory_profiler_sample_max_allocation_size
total_memory_profiler_sample_min_allocation_size
total_memory_profiler_step
total_memory_tracker_sample_probability
ランダムな割当てと解放を収集し、指定された確率で trace_type
が MemorySample
の system.trace_log システムテーブルに書き込みます。この確率は、割当てのサイズに関係なく、すべての割当てまたは解放に対するものです。サンプリングは、追跡されていないメモリが追跡されていないメモリの制限を超えるときにのみ発生します(デフォルト値は 4
MiB です)。 total_memory_profiler_step
を引き下げると、このしきい値を下げることができます。total_memory_profiler_step
を 1
に設定すると、非常に詳細なサンプリングが行われます。
可能な値:
- 正の整数。
0
— ランダムな割当てと解放のsystem.trace_log
システムテーブルへの書き込みが無効です。
trace_log
trace_log システムテーブルの操作に関する設定。
デフォルトのサーバー構成ファイル config.xml
には、以下の設定セクションが含まれています:
uncompressed_cache_policy
uncompressed_cache_size
MergeTree ファミリーのテーブルエンジンによって使用される未圧縮データの最大サイズ(バイト単位)。
サーバーには共有キャッシュがあります。メモリは必要に応じて割り当てられます。use_uncompressed_cache
オプションが有効な場合、キャッシュが使用されます。
未圧縮キャッシュは、特定のケースで非常に短いクエリに対して有利です。
0
の値は無効を意味します。
この設定は実行時に変更可能であり、即座に効果を発揮します。
uncompressed_cache_size_ratio
url_scheme_mappers
短縮または記号化された URL プレフィックスを完全な URL に変換するための設定。
例:
use_minimalistic_part_header_in_zookeeper
ZooKeeper 内のデータパートヘッダーのストレージ方法。この設定は MergeTree
ファミリーにのみ適用されます。次のように指定できます:
config.xml
ファイルの merge_tree セクションでグローバルに
ClickHouse はこの設定をサーバー上のすべてのテーブルに対して使用します。設定はいつでも変更できます。既存のテーブルは設定が変更されると動作が変わります。
各テーブルのために
テーブルを作成するときに、対応する エンジン設定 を指定します。この設定を持つ既存のテーブルの動作は、グローバル設定が変更されても変わりません。
可能な値
0
— 機能はオフです。1
— 機能はオンです。
use_minimalistic_part_header_in_zookeeper = 1
の場合、replicated テーブルは、1つの znode
を使用してデータパートのヘッダーをコンパクトに格納します。テーブルに多くのカラムがある場合、このストレージ方法は ZooKeeper に保存されるデータのボリュームを大幅に削減します。
use_minimalistic_part_header_in_zookeeper = 1
を適用した後は、この設定をサポートしていないバージョンに ClickHouse サーバーをダウングレードすることはできません。クラスター内のサーバーがアップグレードされる際には注意してください。一度にすべてのサーバーをアップグレードしない方が安全です。ClickHouse の新しいバージョンは、テスト環境で、またはクラスターの数台のサーバーでテストすることをお勧めします。
この設定で既に保存されているデータパートヘッダーは、以前の(非コンパクトな)表現に復元することはできません。
user_defined_executable_functions_config
実行可能なユーザー定義関数の設定ファイルへのパス。
パス:
- 絶対パスまたはサーバー設定ファイルに対する相対パスを指定します。
- パスにはワイルドカード * および ? を含めることができます。
その他参照:
例
user_defined_path
ユーザー定義ファイルが格納されているディレクトリ。SQL ユーザー定義関数 SQL ユーザー定義関数 に使用されます。
例
user_directories
設定ファイルのセクションで、次の設定が含まれています:
- 定義済みユーザーの設定ファイルへのパス。
- SQL コマンドにより作成されたユーザーが格納されるフォルダーへのパス。
- SQL コマンドによって作成されたユーザーが保存され、レプリケートされる ZooKeeper ノードのパス(実験的)。
このセクションが指定されている場合、users_config および access_control_path のパスは使用されません。
user_directories
セクションには任意の数のアイテムを含めることができ、アイテムの順序は優先度を意味します(アイテムが高いほど優先順位が高い)。
例
ユーザー、ロール、行ポリシー、クォータ、およびプロファイルも ZooKeeper に保存できます:
メモリ内に情報を保存するセクション memory
—ディスクに書き込まないことを意味し、LDAPサーバーに情報を保存するセクション ldap
—はローカルに定義されていないユーザーのリモートユーザーディレクトリを追加します。
LDAP サーバーをリモートユーザーディレクトリとして追加するには、次の設定を持つ単一の ldap
セクションを定義します:
設定 | 説明 |
---|---|
server | ldap_servers 設定セクションで定義された LDAP サーバー名の1つ。このパラメータは必須で、空にすることはできません。 |
roles | LDAP サーバーから取得した各ユーザーに割り当てられるローカルに定義された役割のリストを含むセクション。ロールが指定されていない場合、ユーザーは認証後に何のアクションも実行できません。リストされたロールのいずれかが認証時にローカルで定義されていない場合、認証試行は失敗します。 |
例
user_files_path
ユーザーファイルが格納されているディレクトリ。テーブル関数 file()、fileCluster() に使用されます。
例
user_scripts_path
ユーザースクリプトファイルが格納されているディレクトリ。実行可能なユーザー定義関数 実行可能なユーザー定義関数 に使用されます。
例
タイプ:
デフォルト:
users_config
以下を含むファイルへのパス:
- ユーザーの設定。
- アクセス権。
- 設定プロフィール。
- クォータ設定。
例
validate_tcp_client_information
デフォルトでは、false
です:
vector_similarity_index_cache_max_entries
vector_similarity_index_cache_policy
vector_similarity_index_cache_size
この設定は実行時に変更可能であり、即座に影響を与えます。
wait_dictionaries_load_at_startup
この設定は、dictionaries_lazy_load
がfalse
の場合の動作を指定します。
(dictionaries_lazy_load
がtrue
の場合、この設定は何も影響しません。)
wait_dictionaries_load_at_startup
がfalse
の場合、サーバーは起動時にすべての辞書を読み込み始め、接続を受け付けながら読み込みを行います。
辞書がクエリで初めて使用されると、その辞書がまだ読み込まれていない場合は、クエリは辞書が読み込まれるまで待機します。
wait_dictionaries_load_at_startup
をfalse
に設定すると、ClickHouseの起動が速くなる可能性がありますが、一部のクエリは遅く実行される可能性があります
(なぜなら、一部の辞書が読み込まれるまで待たなければならないからです)。
wait_dictionaries_load_at_startup
がtrue
の場合、サーバーは起動時にすべての辞書の読み込みが完了するまで(成功または失敗にかかわらず)待機し、その後に接続を受け付けます。
例
workload_path
すべての CREATE WORKLOAD
および CREATE RESOURCE
クエリのストレージとして使用されるディレクトリ。デフォルトでは、サーバーの作業ディレクトリの下にある /workload/
フォルダが使用されます。
例
参照
workload_zookeeper_path
すべての CREATE WORKLOAD
および CREATE RESOURCE
クエリのストレージとして使用されるZooKeeperノードへのパス。同一性を保つため、すべてのSQL定義はこの単一のznodeの値として保存されます。デフォルトではZooKeeperは使用されず、定義はディスクに保存されます。
例
参照
zookeeper
ClickHouseがZooKeeperクラスタと対話できるようにする設定を含みます。ClickHouseは、レプリケートされたテーブルを使用する際にレプリカのメタデータを保存するためにZooKeeperを使用します。レプリケートされたテーブルが使用されない場合、このパラメータセクションは省略できます。
以下の設定はサブタグによって構成できます:
設定 | 説明 |
---|---|
node | ZooKeeperのエンドポイント。複数のエンドポイントを設定できます。例えば、<node index="1"><host>example_host</host><port>2181</port></node> のように。index 属性は、ZooKeeperクラスタへの接続を試みる際のノードの順序を指定します。 |
session_timeout_ms | クライアントセッションの最大タイムアウト(ミリ秒単位)。 |
operation_timeout_ms | 1つの操作の最大タイムアウト(ミリ秒単位)。 |
root (オプション) | ClickHouseサーバーによって使用されるznodeのルートとして使用されるznode。 |
fallback_session_lifetime.min (オプション) | プライマリが利用できない場合にフォールバックノードへのZooKeeperセッションの最小寿命(負荷分散)。秒単位で設定します。デフォルト:3時間。 |
fallback_session_lifetime.max (オプション) | プライマリが利用できない場合にフォールバックノードへのZooKeeperセッションの最大寿命(負荷分散)。秒単位で設定します。デフォルト:6時間。 |
identity (オプション) | 要求されたznodeにアクセスするためにZooKeeperが必要とするユーザー名とパスワード。 |
use_compression (オプション) | trueに設定するとKeeperプロトコルで圧縮を有効にします。 |
zookeeper_load_balancing
設定(オプション)もあり、ZooKeeperノード選択のアルゴリズムを選択できます:
アルゴリズム名 | 説明 |
---|---|
random | ZooKeeperノードのいずれかを無作為に選択します。 |
in_order | 最初のZooKeeperノードを選択し、利用できない場合は次、そしてその次へと選択します。 |
nearest_hostname | サーバーのホスト名に最も似ているZooKeeperノードを選択します。ホスト名は名前の接頭辞で比較されます。 |
hostname_levenshtein_distance | nearest_hostnameと同じですが、ホスト名をレーベンシュタイン距離の方法で比較します。 |
first_or_random | 最初のZooKeeperノードを選択し、利用できない場合は残りのZooKeeperノードから無作為に選択します。 |
round_robin | 最初のZooKeeperノードを選択し、再接続が発生した場合は次のノードを選択します。 |
設定例
参照