サーバー設定
このセクションには、サーバー設定の説明が含まれています。これらはセッションまたはクエリレベルで変更できない設定です。
ClickHouseの設定ファイルに関する詳細は、"設定ファイル" を参照してください。
他の設定については、""設定"" セクションで説明されています。設定を学習する前に、設定ファイル セクションを読み、置換(incl
および optional
属性)の使用について注意してください。
abort_on_logical_error
access_control_improvements
アクセス制御システムのオプションの改善に関する設定。
設定 | 説明 | デフォルト |
---|---|---|
users_without_row_policies_can_read_rows | 緩和された行ポリシーのないユーザーがまだ行を SELECT クエリを使用して読み取れるかどうかを設定します。たとえば、2人のユーザーAとBがいて、行ポリシーがAのためだけに定義されている場合、この設定がtrueであれば、ユーザーBはすべての行を見ることができます。この設定がfalseの場合、ユーザーBは行を見ません。 | true |
on_cluster_queries_require_cluster_grant | ON CLUSTER クエリが CLUSTER 権限を必要とするかどうかを設定します。 | true |
select_from_system_db_requires_grant | SELECT * FROM system.<table> が権限を必要とし、任意のユーザーによって実行できるかどうかを設定します。trueに設定すると、このクエリは 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> が権限を必要とし、任意のユーザーによって実行できるかどうかを設定します。trueに設定すると、このクエリは 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
SQLコマンドによって作成されたユーザーおよびロールの構成をClickHouseサーバーが保存するフォルダへのパス。
参照
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
allowed_disks_for_table_engines
Iceberg での使用が許可されているディスクのリスト。
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 システムテーブルの設定。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
例
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
を作成してください。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
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
。
次のマージまたはミューテーションをバックグラウンドスレッドプールによって実行するアルゴリズムの選択方法。ポリシーは、サーバーの再起動なしで実行時に変更できます。
後方互換性のために default
プロファイルから適用されることがあります。
可能な値:
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
。number_of_free_entries_in_pool_to_execute_optimize_entire_partition
例
background_schedule_pool_max_parallel_tasks_per_type_ratio
background_schedule_pool_size
backup_log
BACKUP
および RESTORE
操作のログ記録用の backup_log システムテーブルの設定。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
例
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
認証タイプのワークファクター。
ワークファクターは、ハッシュを計算し、パスワードを確認するために必要な計算量と時間を定義します。
高頻度認証を持つアプリケーションの場合、bcryptの計算オーバーヘッドを考慮して、代替の認証方法を検討してください。
blob_storage_log
blob_storage_log
システムテーブルの設定です。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
例:
builtin_dictionaries_reload_interval
組み込み辞書の再読み込み間隔(秒単位)。
ClickHouseは、x秒ごとに組み込み辞書を再読み込みします。これにより、サーバーを再起動することなく、「その場で」辞書を編集できます。
例
cache_size_to_ram_max_ratio
cannot_allocate_thread_fault_injection_probability
cgroups_memory_usage_observer_wait_time
cgroupsでの対応するしきい値によって、サーバーの最大許可メモリ消費が調整される秒単位の間隔。
cgroupオブザーバーを無効にするには、この値を 0
に設定してください。
compiled_expression_cache_elements_size
compiled_expression_cache_size
compression
MergeTree-engineテーブルのデータ圧縮設定。
ClickHouseの使用を始めたばかりの場合は、これを変更しないことをお勧めします。
設定テンプレート:
<case>
のフィールド:
min_part_size
– データパートの最小サイズ。min_part_size_ratio
– データパートサイズとテーブルサイズの比率。method
– 圧縮方法。受け入れられる値:lz4
、lz4hc
、zstd
、deflate_qpl
。level
– 圧縮レベル。 コーデックを参照してください。
複数の <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スロットを必要としないround_robin
の変種です。このようにすると、max_threads
= 1 のクエリはスロットを必要とせず、不公平にすべてのスロットを割り当てることはありません。
concurrent_threads_soft_limit_num
リモートサーバーからデータを取得するためのスレッドを除く、すべてのクエリに対して実行を許可される最大のクエリ処理スレッド数。これはハードリミットではありません。制限に達した場合、クエリは実行するために少なくとも1スレッドを取得します。実行中に、より多くのスレッドを取得できればクエリは希望のスレッド数にスケールアップできます。
値が 0
(デフォルト)は無制限です。
concurrent_threads_soft_limit_ratio_to_cores
concurrent_threads_soft_limit_num
と同様ですが、コアに対する比率です。
config_reload_interval_ms
core_dump
コアダンプファイルのサイズに対するソフトリミットを構成します。
ハードリミットはシステムツールを通じて構成されています。
例
cpu_slot_preemption
CPUリソース(マスタースレッドとワーカー スレッド)の負荷スケジューリングがどのように行われるかを定義します。
true
(推奨)の場合、会計は実際に消費されたCPU時間に基づいて行われます。競合するワークロードに対して適正な量のCPU時間が割り当てられます。スロットは限られた時間だけ割り当てられ、期限が切れた後に再リクエストされます。スロットのリクエストはCPUリソースの過負荷が発生した場合、スレッドの実行をブロックする可能性がある、すなわち、前方排除が起こり得ます。これにより、CPU時間の公平性が確保されます。false
(デフォルト)の場合、会計は割り当てられたCPUスロットの数に基づいて行われます。競合するワークロードに対して適正な量のCPUスロットが割り当てられます。スレッドが開始するとスロットが割り当てられ、継続的に保持され、スレッドが実行を終えると解放されます。クエリ実行のために割り当てられるスレッド数は1からmax_threads
に増加するだけで、減少することはありません。これは長期間実行するクエリに有利であり、ショートクエリに対してCPUストベーションを引き起こす可能性があります。
例
参照
cpu_slot_preemption_timeout_ms
ワーカー スレッドが前方排除の間に、新しいCPUスロットを取得するのを待機することができるミリ秒の数を定義します。このタイムアウト後、スレッドが新しいCPUスロットを取得できなかった場合、それは終了し、クエリは動的に同時操作しているスレッドの数が少なくなるようにスケールダウンします。マスタースレッドは決してダウンスケールされませんが、無限に前方排除される可能性があります。cpu_slot_preemption
が有効になっており、CPUリソースがワーカー スレッド用に設定されている場合にのみ意味があります。
例
参照
cpu_slot_quantum_ns
スレッドがCPUスロットを取得した後、新しいCPUスロットをリクエストする前に消費できるCPUナノ秒数を定義します。cpu_slot_preemption
が有効になっており、CPUリソースがマスタースレッドまたはワーカー スレッド用に設定されている場合にのみ意味があります。
例
参照
crash_log
crash_log システムテーブル操作の設定。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
デフォルトのサーバー構成ファイル 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サーバーによって使用されていないサブディレクトリがある場合、そのディレクトリが最後に修正されてから、database_catalog_unused_dir_hide_timeout_sec
秒が経過すると、タスクはこのディレクトリを「隠す」ためにすべてのアクセス権を削除します。これは ClickHouse サーバーが store/
内に存在することを期待しないディレクトリにも機能します。
値が 0
は「即時」を意味します。
database_catalog_unused_dir_rm_timeout_sec
store/
ディレクトリからゴミをクリーンアップするタスクのパラメータです。
もしクリックハウスサーバーによって使用されていないサブディレクトリがあり、以前に「隠されていた」
(database_catalog_unused_dir_hide_timeout_secを参照)
このディレクトリが最後の database_catalog_unused_dir_rm_timeout_sec
秒間変更されていなければ、タスクはこのディレクトリを削除します。
これはクリックハウスサーバーが store/
内で見ることを期待していないディレクトリにも適用されます。
0
の値は「決してない」を意味します。デフォルト値は30日です。
database_replicated_allow_detach_permanently
dead_letter_queue
dead_letter_queue
システムテーブルの設定。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
デフォルトの設定は以下の通りです。
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
(/sql-reference/statements/grant#displaysecretsinshowandselect) 権限を持っている必要があります。
可能な値:
0
— 無効。1
— 有効。
distributed_cache_apply_throttling_settings_from_client
distributed_cache_keep_up_free_connections_ratio
distributed_cache_keep_up_free_connections_ratio * max_connections
を下回ると、最も古いアクティビティの接続が閉じられ、数が制限を超えるまで続きます。
distributed_ddl
クラスター上で distributed ddl queries(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
drop_distributed_cache_pool_size
drop_distributed_cache_queue_size
enable_azure_sdk_logging
encryption
encryption codecs に使用するキーを取得するためのコマンドを構成します。キー(またはキー)は環境変数内に書き込むか、設定ファイルに設定する必要があります。
キーは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
を作成する必要があります。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
format_parsing_thread_pool_queue_size
入力を解析するためにスレッドプールでスケジュール可能な最大ジョブ数です。
0
の値は無制限を意味します。
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: プレフィックスを使用してRegex一致を使えます。 |
methods | リクエストメソッドに一致させるために、複数のメソッドをコンマで分けることができます(オプション)。 |
headers | リクエストヘッダーに一致させるために、各子要素(子要素の名前はヘッダー名)を一致させます。オプションで regex: プレフィックスを使用できます。 |
handler | リクエストハンドラ |
empty_query_string | URLにクエリストリングがないことを確認します |
handler
には次の設定が含まれ、サブタグで構成できます:
サブタグ | 定義 |
---|---|
url | リダイレクトの場所 |
type | サポートされているタイプ:static、dynamic_query_handler、predefined_query_handler、redirect |
status | staticタイプで使用、レスポンスのステータスコード |
query_param_name | dynamic_query_handlerタイプで使用、HTTPリクエストパラメータ内の <query_param_name> 値に対応する値を抽出して実行します。 |
query | predefined_query_handlerタイプで使用、ハンドラが呼び出されるときにクエリを実行します。 |
content_type | staticタイプで使用、レスポンスのコンテンツタイプ |
response_content | staticタイプで使用、クライアントに送信されるレスポンスコンテンツ。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
アイスバーグメタデータキャッシュ内の保護キューのサイズ(SLRUポリシーの場合)、キャッシュの全体的なサイズに対する比率です。
ignore_empty_sql_security_in_create_view_query
true
の場合、ClickHouseは CREATE VIEW
クエリの空のSQLセキュリティステートメントにデフォルトを書き込まない。
この設定は移行期間のみに必要であり、24.4で廃止されます。
include_from
置換が含まれるファイルのパスです。XML形式とYAML形式の両方がサポートされています。
詳細については、"Configuration files" のセクションを参照してください。
例
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
の値は無制限を意味します。
jemalloc_collect_global_profile_samples_in_trace_log
jemalloc_enable_background_threads
jemalloc_enable_global_profiler
jemalloc_flush_profile_interval_bytes
jemallocプロファイルのフラッシュは、全体のピークメモリ使用量がjemalloc_flush_profile_interval_bytesによって増加した後に行われます。
jemalloc_flush_profile_on_memory_exceeded
全体のメモリ超過エラーが発生したときにjemallocプロファイルのフラッシュが行われます。
jemalloc_max_background_threads_num
作成するjemallocバックグラウンドスレッドの最大数で、0を設定するとjemallocのデフォルトの値を使用します。
keep_alive_timeout
ClickHouseが接続を閉じる前にHTTPプロトコルでの受信リクエストを待機する秒数です。
例
keeper_hosts
動的設定。ClickHouseが接続できる可能性のある[Zoo]Keeperホストのセットを含みます。 <auxiliary_zookeepers>
の情報は公開されません。
keeper_multiread_batch_size
ldap_servers
LDAP サーバーとその接続パラメータをここにリストします:
- 「password」ではなく「ldap」認証メカニズムを指定された専用ローカルユーザーの認証者として使用するため
- リモートユーザーディレクトリとして使用するため
以下の設定はサブタグで構成できます:
設定 | 説明 |
---|---|
host | LDAP サーバーのホスト名または IP。これは必須のパラメータで空にはできません。 |
port | LDAP サーバーのポート。enable_tls が true に設定されている場合、デフォルトは 636 です。それ以外は 389 です。 |
bind_dn | バインドに使用される DN を構築するためのテンプレート。結果として得られる DN は、各認証attemptの際にテンプレートのすべての\{user_name\} サブストリングを実際のユーザー名に置き換えることによって構築されます。 |
user_dn_detection | バインドされたユーザーの実際のユーザー DN を検出するための LDAP 検索パラメータのセクション。これは主にサーバーが Active Directory の場合、さらなる役割マッピングのための検索フィルタに使用されます。 \{user_dn\} サブストリングが指定できる場所で使用される結果のユーザー DN が適用されます。デフォルトでは、ユーザー DN はバインド DN と等しく設定されますが、検索が実行されると、実際の検出されたユーザー DN 値で更新されます。 |
verification_cooldown | 成功したバインド試行の後、LDAP サーバーに連絡せずに、連続するすべてのリクエストに対してユーザーが正常に認証されたと見なされる時間(秒単位)。デフォルトは 0 (キャッシングを無効にし、各認証リクエストごとに LDAP サーバーに連絡するよう強制)。 |
enable_tls | LDAP サーバーへの安全な接続を使用するためのフラグ。プレーンテキスト (ldap:// ) プロトコルのために no を指定(推奨されません)。SSL/TLS (ldaps:// ) プロトコルのために yes を指定(推奨、デフォルト)。レガシー StartTLS プロトコルのために starttls を指定(プレーンテキスト (ldap:// ) プロトコルを TLS にアップグレード)。 |
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 を構築するためのテンプレート。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
logger
ログメッセージの場所と形式。
キー:
キー | 説明 |
---|---|
level | ログレベル。許容される値: none (ログオフ)、fatal 、critical 、error 、warning 、notice 、information ,debug 、trace 、test |
log | ログファイルへのパス。 |
errorlog | エラーログファイルへのパス。 |
size | ローテーションポリシー:ログファイルの最大サイズ(バイト単位)。ログファイルのサイズがこのしきい値を超えると、ファイル名が変更されアーカイブされ、新しいログファイルが作成されます。 |
count | ローテーションポリシー:Clickhouse が保持する履歴ログファイルの最大数。 |
stream_compress | LZ4 を使用してログメッセージを圧縮します。1 または true に設定して有効にします。 |
console | コンソールへのロギングを有効にします。1 または true に設定して有効にします。デーモンモードで Clickhouse が実行されていない場合はデフォルトで 1 、それ以外は 0 です。 |
console_log_level | コンソール出力のログレベル。デフォルトは level 。 |
formatting.type | コンソール出力のログ形式。現在は json のみがサポートされています。 |
use_syslog | ログ出力を syslog にも転送します。 |
syslog_level | syslog にログを記録するためのログレベル。 |
async | true (デフォルト)の場合、ロギングは非同期に行われます(出力チャネルごとに1つのバックグラウンドスレッド)。さもなければ、LOG を呼び出しているスレッド内でロギングされます。 |
async_queue_max_size | 非同期ロギングを使用する場合、フラッシュ待ちのメッセージの最大数。余分なメッセージはドロップされます。 |
startup_level | サーバー起動時にルートロガーレベルを設定するために使用する起動レベル。起動後、ログレベルは level 設定に元に戻ります。 |
shutdown_level | シャットダウン時にルートロガーレベルを設定するために使用するシャットダウンレベル。 |
ログ形式仕様
log
と errorLog
パスのファイル名は、結果のファイル名のための以下の形式指定子をサポートします(ディレクトリ部分はサポートされません)。
「例」列に 2023-07-06 18:32:07
での出力を示します。
指定子 | 説明 | 例 |
---|---|---|
%% | リテラル % | % |
%n | 改行文字 | |
%t | 水平タブ文字 | |
%Y | 10進数で表された年(例:2017) | 2023 |
%y | 年の最後の 2 桁を 10 進数で表す(範囲 [00,99]) | 23 |
%C | 年の最初の 2 桁を 10 進数で示す(範囲 [00,99]) | 20 |
%G | 4 桁の ISO 8601 週ベースの年、すなわち指定された週を含む年です。通常は %V と一緒に使用します。 | 2023 |
%g | 最後の 2 桁の ISO 8601 週ベースの年、すなわち指定された週を含む年。 | 23 |
%b | 省略形の月名(ロケール依存)、例: Oct | Jul |
%h | %b の同義語 | Jul |
%B | フルの月名(ロケール依存)、例: October | July |
%m | 10進数で表された月(範囲 [01,12]) | 07 |
%U | 年の週番号(日曜日が週の最初の日)(範囲 [00,53]) | 27 |
%W | 年の週番号(月曜日が週の最初の日)(範囲 [00,53]) | 27 |
%V | ISO 8601 週番号(範囲 [01,53]) | 27 |
%j | 年の 10 進数で表された日(範囲 [001,366]) | 187 |
%d | 日付(月日)を 0 パディングされた 10 進数で表した数字(範囲 [01,31])。 1 桁は 0 で前置されます。 | 06 |
%e | 日付(月日)をスペースでパディングされた 10 進数で表した数字(範囲 [1,31])。1 桁はスペースで前置されます。 | 6 |
%a | 省略形の曜日名(ロケール依存)、例: Fri | Thu |
%A | フルの曜日名(ロケール依存)、例: Friday | Thursday |
%w | 曜日を整数で示す(日曜日は0)(範囲 [0-6]) | 4 |
%u | 曜日を 10 進数で示す(月曜日は1)(ISO 8601 形式)(範囲 [1-7]) | 4 |
%H | 24 時間制の時を 10 進数で表した数字(範囲 [00-23]) | 18 |
%I | 12 時間制の時を 10 進数で表した数字(範囲 [01,12]) | 06 |
%M | 分を 10 進数で表した数字(範囲 [00,59]) | 32 |
%S | 秒を 10 進数で表した数字(範囲 [00,60]) | 07 |
%c | 標準の日付と時刻の文字列(ロケール依存)、例:Sun Oct 17 04:41:13 2010 | Thu Jul 6 18:32:07 2023 |
%x | ローカライズされた日付表現(ロケール依存) | 07/06/23 |
%X | ローカライズされた時刻表現、例: 18:40:20 または 6:40:20 PM (ロケール依存) | 18:32:07 |
%D | 短い MM/DD/YY 日付(%m/%d/%y と同等) | 07/06/23 |
%F | 短い YYYY-MM-DD 日付(%Y-%m-%d と同等) | 2023-07-06 |
%r | ローカライズされた 12 時間形式の時刻(ロケール依存) | 06:32:07 PM |
%R | "%H:%M" と同等 | 18:32 |
%T | "%H:%M:%S" と同等(ISO 8601 時刻形式) | 18:32:07 |
%p | ローカライズされた a.m. または p.m. 指示(ロケール依存) | PM |
%z | UTC からのオフセットを ISO 8601 形式で(例:-0430)、またはタイムゾーン情報が利用できない場合は文字がない | +0800 |
%Z | ロケール依存のタイムゾーン名または省略形、またはタイムゾーン情報が利用できない場合は文字がない | Z AWST |
例
コンソールにのみログメッセージを出力するには:
レベルごとのオーバーライド
個々のログ名のログレベルをオーバーライドできます。たとえば、「Backup」および「RBAC」のロガーのすべてのメッセージをミュートするには。
syslog
ログメッセージを追加で syslog に書き込むには:
<syslog>
のためのキー:
キー | 説明 |
---|---|
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
同時挿入クエリの総数に対する制限。
値が 0
(デフォルト)は無制限を意味します。
この設定は実行時に変更でき、直ちに効果を発揮します。すでに実行中のクエリは変わりません。
max_concurrent_queries
同時に実行されるクエリの総数に対する制限。INSERT
および SELECT
クエリの制限、およびユーザーの最大クエリ数も考慮する必要があります。
また、参照してください:
値が 0
(デフォルト)は無制限を意味します。
この設定は実行時に変更でき、直ちに効果を発揮します。すでに実行中のクエリは変わりません。
max_concurrent_select_queries
同時に選択されるクエリの総数の制限。
値が 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_distributed_cache_read_bandwidth_for_server
max_distributed_cache_write_bandwidth_for_server
max_entries_for_hash_table_stats
max_fetch_partition_thread_pool_size
max_format_parsing_thread_pool_free_size
入力を解析するためにスレッドプール内に保持すべき最大のアイドル待機スレッド数です。
max_format_parsing_thread_pool_size
入力を解析するために使用する最大のスレッド数の合計です。
max_io_thread_pool_free_size
IOスレッドプール内のアイドルスレッドの数がmax_io_thread_pool_free_size
を超えると、ClickHouseはアイドルスレッドによって占有されているリソースを解放し、プールサイズを減少させます。必要に応じて再度スレッドを作成できます。
max_io_thread_pool_size
ClickHouseはIOスレッドプールからスレッドを使用していくつかのIO操作(例:S3との相互作用)を行います。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_named_collection_num_to_throw
名前付きコレクションの数がこの値を超えると、サーバーは例外をスローします。
0
の値は制限がないことを意味します。
例
max_named_collection_num_to_warn
名前付きコレクションの数が指定した値を超えると、ClickHouseサーバーはsystem.warnings
テーブルに警告メッセージを追加します。
例
max_open_files
最大オープンファイル数です。
getrlimit()
関数が不正確な値を返すため、macOSでこのオプションを使用することを推奨します。
例
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
ファイルを作成することです。
例
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のWideパーツのファイルプレフィックスからカラムとサブカラムのメタデータを並行して読み取ります。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_throw
テーブルの数がこの値を超えると、サーバーは例外をスローします。
次のテーブルはカウントされません:
- view
- remote
- dictionary
- system
データベースエンジンのためにカウントされるテーブルのみ:
- Atomic
- Ordinary
- Replicated
- Lazy
0
の値は制限がないことを意味します。
例
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
メモリトラッキングを修正するために現在の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
を作成する必要があります:
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
min_os_cpu_wait_time_ratio_to_drop_connection
接続を削除するために考慮されるOS CPU待機(OSCPUWaitMicrosecondsメトリック)とビジー(OSCPUVirtualTimeMicrosecondsメトリック)間の最小比率です。最小値と最大値の比率の間の線形補間が確率を計算するために使用され、この時点での確率は0です。 詳細については、サーバーのCPUオーバーロード時の動作制御を参照してください。
mlock_executable
高IO負荷の下でClickHouse実行可能ファイルがページアウトされるのを防ぐために、サーバー起動後にmlockall
を実行して最初のクエリのレイテンシを低下させます。
このオプションを有効にすることは推奨されますが、起動時間が数秒遅くなる可能性があります。 この設定は「CAP_IPC_LOCK」機能がないと動作しないことに注意してください。
例
mmap_cache_size
この設定は、頻繁なオープン/クローズ呼び出しを避け、複数のスレッドやクエリからのマッピングを再利用することを可能にします。設定値はマッピングされた領域の数(通常、マッピングされたファイルの数と等しい)です。
マッピングされたファイル内のデータ量は、以下のシステムテーブルで次のメトリックを使用して監視できます:
MMappedFiles
/MMappedFileBytes
/MMapCacheCells
はsystem.metrics
、system.metric_log
内CreatedReadBufferMMap
/CreatedReadBufferMMapFailed
/MMappedFileCacheHits
/MMappedFileCacheMisses
はsystem.events
、system.processes
、system.query_log
、system.query_thread_log
、system.query_views_log
内
マッピングされたファイル内のデータ量は直接メモリを消費せず、クエリやサーバーのメモリ使用量にはカウントされません — これはこのメモリがOSページキャッシュに似ていて破棄可能だからです。このキャッシュは、MergeTreeファミリーのテーブルで古い部分が削除されると自動的に削除され、SYSTEM DROP MMAP CACHE
クエリを通じて手動で削除することもできます。
この設定はランタイムに変更可能で、即座に有効になります。
mutation_workload
ミューテーションと他のワークロード間でリソースの使用および共有を調整するために使用されます。指定された値は、すべてのバックグラウンドミューテーションのworkload
設定値として使用されます。マージツリー設定によって上書き可能です。
参考
mysql_port
MySQLプロトコルを介してクライアントと通信するためのポートです。
- 正の整数はリッスンするポート番号を指定します
- 空の値はMySQLプロトコルを介したクライアントとの通信を無効にします。
例
mysql_require_secure_transport
trueに設定された場合、mysql_portを介してクライアントとの安全な通信が必要です。--ssl-mode=none
オプションでの接続は拒否されます。これをOpenSSL設定と一緒に使用してください。
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のマニュアルをご覧ください。 | |
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
システムテーブルの設定。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
例:
os_cpu_busy_time_threshold
OSが有用な作業を行っていると見なすためのマイクロ秒単位のOS CPUビジータイムの閾値(OSCPUVirtualTimeMicrosecondsメトリック)で、この値未満のビジータイムはCPUオーバーロードとは見なされません。
os_threads_nice_value_distributed_cache_tcp_handler
分散キャッシュTCPハンドラーのスレッドのLinuxニース値。低い値は高いCPU優先度を意味します。
CAP_SYS_NICE機能が必要です。それ以外は、無効になります。
可能な値: -20から19。
os_threads_nice_value_merge_mutate
マージとミューテーションスレッドのLinuxニース値。低い値は高いCPU優先度を意味します。
CAP_SYS_NICE機能が必要です。それ以外は、無効になります。
可能な値: -20から19。
os_threads_nice_value_zookeeper_client_send_receive
ZooKeeperクライアントでの送受信スレッドのLinuxニース値。低い値は高いCPU優先度を意味します。
CAP_SYS_NICE機能が必要です。それ以外は、無効になります。
可能な値: -20から19。
page_cache_free_memory_ratio
ユーザースペースページキャッシュから解放するために保持するメモリ制限の割合。Linuxのmin_free_kbytes設定に類似しています。
page_cache_history_window_ms
解放されたメモリがユーザースペースページキャッシュで使用できる前の遅延時間。
page_cache_max_size
ユーザースペースページキャッシュの最大サイズ。キャッシュを無効にするには0に設定します。page_cache_min_sizeより大きい場合、キャッシュサイズはこの範囲内で継続的に調整され、利用可能なメモリのほとんどを使用しつつ、合計メモリ使用量を制限(max_server_memory_usage[_to_ram_ratio])内に保ちます。
page_cache_min_size
ユーザースペースページキャッシュの最小サイズ。
page_cache_policy
ユーザースペースページキャッシュポリシー名。
page_cache_shards
ミューテックス競合を減らすために、この数のシャードにユーザースペースページキャッシュをストライプします。実験的であり、パフォーマンスの改善は期待できません。
page_cache_size_ratio
ユーザースペースページキャッシュ内の保護されたキューのサイズをキャッシュの全体のサイズに対して表します。
part_log
MergeTreeに関連するイベントをロギングします。例えば、データの追加やマージです。ログを利用してマージアルゴリズムをシミュレーションし、その特性を比較することができます。マージプロセスを視覚化できます。
クエリはsystem.part_logテーブルにログされ、別のファイルには保存されません。このテーブルの名前は table
パラメータで設定できます(以下を参照)。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
例
parts_kill_delay_period
SharedMergeTree用のパーツを完全に削除するための期間。ClickHouse Cloudでのみ利用可能です。
parts_kill_delay_period_random_add
非常に大きなテーブル数の場合、thundering herd 効果とZooKeeperのその後のDoSを回避するためにkill_delay_periodに0からx秒までの均一に分布した値を追加します。ClickHouse Cloudでのみ利用可能です。
parts_killer_pool_size
共有マージツリーの時代遅れのスレッドのクリーンアップ用スレッド。ClickHouse Cloudでのみ利用可能です。
path
データを含むディレクトリへのパス。
末尾のスラッシュは必須です。
例
postgresql_port
PostgreSQLプロトコルを介してクライアントと通信するためのポート。
- 正の整数はリッスンするポート番号を指定します。
- 空の値はPostgreSQLプロトコルを介したクライアントとの通信を無効にするために使用されます。
例
postgresql_require_secure_transport
trueに設定されている場合、クライアントとの安全な通信が必要です postgresql_port 従来の接続は sslmode=disable
のオプションが拒否されます。OpenSSL 設定と一緒に使用します。
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
主インデックス(MergeTreeファミリのインデックス)のためのキャッシュの最大サイズ。
primary_index_cache_size_ratio
主インデックスキャッシュ内の保護されたキューのサイズ(SLRUポリシーの場合)をキャッシュの全サイズに対して表します。
process_query_plan_packet
この設定はクエリプランパケットの読み取りを可能にします。このパケットは、serialize_query_planが有効なときに分散クエリのために送信されます。 デフォルトでは無効であり、これはクエリプランのバイナリデシリアライズにおけるバグによる可能性のあるセキュリティ問題を避けるためです。
例
processors_profile_log
processors_profile_log
システムテーブルの設定。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
デフォルト設定は次の通りです:
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
パラメータで変更できます(以下を参照)。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
テーブルが存在しない場合、ClickHouseはテーブルを作成します。ClickHouseサーバーが更新されたときにクエリログの構造が変更された場合、古い構造のテーブルは名前が変更され、新しいテーブルが自動的に作成されます。
例
query_masking_rules
サーバーログに保存する前にクエリおよびすべてのログメッセージに適用される正規表現ベースのルール、system.query_log
、system.text_log
、system.processes
テーブル、クライアントに送信されるログに適用されます。これにより、名前、メールアドレス、個人識別子、クレジットカード番号などのSQLクエリからの機密データ漏洩を防ぐことができます。
例
設定フィールド:
設定 | 説明 |
---|---|
name | ルールの名前(オプション) |
regexp | RE2互換の正規表現(必須) |
replace | 機密データのための置換文字列(オプション、デフォルトは6つのアスタリスク) |
マスキングルールはクエリ全体に適用されます(不正な/解析できないクエリからの機密データの漏洩を防ぐため)。
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
で以下の内容を含めます。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
query_thread_log
log_query_threads=1設定で受信したクエリのスレッドをロギングするための設定。
クエリは system.query_thread_log テーブルにログされ、別のファイルには保存されません。このテーブルの名前は table
パラメータで変更できます(以下を参照)。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
テーブルが存在しない場合、ClickHouseはテーブルを作成します。ClickHouseサーバーが更新されたときにクエリスレッドログの構造が変更された場合、古い構造のテーブルは名前が変更され、新しいテーブルが自動的に作成されます。
例
query_views_log
クエリ受信に依存するビュー(ライブ、マテリアライズなど)をログに記録する設定です。これは log_query_views=1 設定を使用します。
クエリは、system.query_views_log テーブルにログされ、別のファイルには保存されません。table
パラメータでテーブルの名前を変更できます(以下参照)。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
テーブルが存在しない場合、ClickHouse がそれを作成します。ClickHouse サーバーが更新された際にクエリビューのログの構造が変更された場合、古い構造のテーブルは名前が変更され、新しいテーブルが自動的に作成されます。
例
remap_executable
巨大ページを使用して機械コード(「テキスト」)のメモリを再割り当てするための設定です。
この機能は非常に実験的です。
例:
remote_servers
Distributed テーブルエンジンと cluster
テーブル関数によって使用されるクラスタの設定です。
例
incl
属性の値については、"Configuration files" セクションを参照してください。
関連情報
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]。
- リダイレクトがある場合でリダイレクトのサポートが有効な場合は、各リダイレクト(ロケーションフィールド)がチェックされます。
例:
replica_group_name
データベース Replicated のレプリカグループ名です。
Replicatedデータベースによって作成されたクラスタは、同じグループのレプリカで構成されます。 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
s3_max_redirects
s3_retry_attempts
Aws::Client::RetryStrategy の設定です。Aws::Client 自身がリトライを行い、0 はリトライなしを意味します。
s3queue_disable_streaming
テーブルが作成され、それに接続されたマテリアライズドビューがあっても S3Queue でのストリーミングを無効にします。
s3queue_log
s3queue_log
システムテーブルのための設定です。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
デフォルトの設定は以下です:
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
真に設定された場合、ClickHouse はシャットダウン前に実行中のクエリが終了するまで待ちます。
skip_binary_checksum_checks
ClickHouse バイナリチェックサム整合性チェックをスキップします。
ssh_server
ホストキーの公開部分は最初の接続時に SSH クライアント側の known_hosts ファイルに書き込まれます。
ホストキーの設定はデフォルトで無効になっています。 ホストキーの設定をコメント解除し、関連する ssh キーのパスを提供すると、有効化されます:
例:
startup_mv_delay_ms
storage_configuration
ストレージのマルチディスク構成を許可します。
ストレージ構成は以下の構造に従います:
Configuration of disks
disks
の構成は以下の構造に従います:
上記のサブタグは disks
のための以下の設定を定義します:
設定 | 説明 |
---|---|
<disk_name_N> | ディスクの名前、ユニークである必要があります。 |
path | サーバーデータが保存されるパス(data およびshadow カタログ)。/ で終わる必要があります。 |
keep_free_space_bytes | ディスク上に予約される自由空間のサイズです。 |
ディスクの順序は重要ではありません。
Configuration of policies
上記のサブタグは policies
のための以下の設定を定義します:
設定 | 説明 |
---|---|
policy_name_N | ポリシー名。ポリシー名は一意でなければなりません。 |
volume_name_N | ボリューム名。ボリューム名も一意でなければなりません。 |
disk | ボリューム内にあるディスクです。 |
max_data_part_size_bytes | このボリューム内の任意のディスクに存在できるデータの最大 chunk サイズ。このマージの結果、chunk サイズが max_data_part_size_bytes よりも大きくなる場合、その chunk は次のボリュームに書き込まれます。この機能により、新しくて小さな chunks をホット(SSD)ボリュームに保存し、大きなサイズに達するとコールド(HDD)ボリュームに移動することができます。そのポリシーにボリュームが一つだけの場合はこのオプションを使用しないでください。 |
move_factor | ボリューム上の利用可能な空き容量の割合。空き容量が少なくなると、データは次のボリュームに転送され始めます。転送のため、chunks はサイズが大きい順に整列され(降順)選択され、move_factor 条件を満たす十分なサイズの合計のchunk が選ばれます。合計のサイズが不十分な場合は、すべてのchunk が移動されます。 |
perform_ttl_move_on_insert | 挿入時に有効期限の切れたデータを移動しないようにします。デフォルト(有効な場合)、寿命ルールに従ってすでに期限切れのデータの一部を挿入した場合、それは指定されたボリューム/ディスクに即座に移動されます。ターゲットボリューム/ディスクが遅い場合は、挿入が著しく遅くなる可能性があります(例: S3)。無効にした場合、有効期限が切れたデータの部分はデフォルトボリュームに書き込まれ、次にルールで指定されたボリュームに移動されます。 |
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
storage_connections_warn_limit
storage_metadata_write_full_object_key
storage_shared_set_join_use_inner_uuid
有効にすると、SharedSet と SharedJoin の作成時に内部 UUID が生成されます。ClickHouse Cloud のみ。
table_engines_require_grant
真に設定されている場合、ユーザーは特定のエンジンでテーブルを作成するために許可が必要です。例:GRANT TABLE ENGINE ON TinyLog to user
。
デフォルトでは、後方互換性のために特定のテーブルエンジンでテーブルを作成する際に許可を無視しますが、これを真に設定することでこの動作を変更できます。
tables_loader_background_pool_size
バックグラウンドプールで非同期読み込みジョブを実行するスレッドの数を設定します。バックグラウンドプールは、サーバーが起動した後、テーブルの待機クエリが存在しない場合にテーブルを非同期に読み込むために使用されます。テーブルが多い場合、バックグラウンドプールでのスレッド数を低く保つことは、同時クエリ実行のためにCPUリソースを予約するために有益です。
値が 0
の場合、すべての利用可能なCPUが使用されます。
tables_loader_foreground_pool_size
フォアグラウンドプールでの読み込みジョブを実行するスレッドの数を設定します。フォアグラウンドプールは、サーバーがポートのリスニングを開始する前にテーブルを同期的に読み込むために使用され、待機しているテーブルの読み込みにも使用されます。フォアグラウンドプールはバックグラウンドプールよりも優先度が高いです。つまり、フォアグラウンドプールで実行中のジョブがある限り、バックグラウンドプールではジョブが開始されません。
値が 0
の場合、すべての利用可能なCPUが使用されます。
tcp_close_connection_after_queries_num
tcp_close_connection_after_queries_seconds
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
。
例
local_disk
のキャッシュと一時データは、ファイルシステム上で tiny_local_cache
に保存され、tiny_local_cache
によって管理されます。
temporary_data_in_distributed_cache
text_log
テキストメッセージをログに記録するための text_log システムテーブルの設定です。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
さらに:
設定 | 説明 | デフォルト値 |
---|---|---|
level | テーブルに保存される最大メッセージレベル(デフォルトは Trace ) | Trace |
例
thread_pool_queue_size
グローバルスレッドプールでスケジュール可能なジョブの最大数。キューサイズを増加させると、メモリ使用量が大きくなります。この値は max_thread_pool_size
と等しく保つことが推奨されます。
値が 0
の場合、無制限です。
例
threadpool_local_fs_reader_pool_size
local_filesystem_read_method = 'pread_threadpool'
の場合にローカルファイルシステムから読むためのスレッドプール内のスレッド数です。
threadpool_local_fs_reader_queue_size
threadpool_remote_fs_reader_pool_size
remote_filesystem_read_method = 'threadpool'
の場合にリモートファイルシステムから読むために使用されるスレッドプールのスレッド数です。
threadpool_remote_fs_reader_queue_size
threadpool_writer_pool_size
threadpool_writer_queue_size
throw_on_unknown_workload
クエリ設定 'workload' で不明な WORKLOAD にアクセスする際の動作を定義します。
true
の場合、不明なワークロードにアクセスしようとするクエリから RESOURCE_ACCESS_DENIED 例外がスローされます。WORKLOAD 階層が確立され、 WORKLOAD デフォルトを含むよう力を入れるのに便利です。false
(デフォルト)の場合、不明な WORKLOAD に指し示されているクエリに対して無制限のアクセスが提供され、リソーススケジューリングは行われません。これは、WORKLOAD 階層を設定する際に重要です。
例
関連情報
timezone
サーバーのタイムゾーンです。
UTCタイムゾーンまたは地理的な場所のためのIANA識別子として指定されます(例:Africa/Abidjan)。
タイムゾーンは、DateTime フィールドがテキスト形式(画面またはファイルに印刷)で出力される際や、文字列から DateTime を取得する際の文字列と DateTime フォーマット間の変換に必要です。さらに、タイムゾーンは、入力パラメータでタイムゾーンを受け取らなかった場合に時間と日付で動作する関数で使用されます。
例
関連情報
tmp_path
大規模なクエリを処理するための一時データをローカルファイルシステムに保存するためのパスです。
- 一時データストレージを構成するには、単一のオプションしか使用できません:
tmp_path
、tmp_policy
、temporary_data_in_cache
。 - スラッシュは必須です。
例
tmp_policy
一時データを持つストレージポリシー。tmp
プレフィックスを持つすべてのファイルは開始時に削除されます。
オブジェクトストレージを tmp_policy
として使用する際の推奨:
- 各サーバーで別の
bucket:path
を使用 metadata_type=plain
を使用- このバケットのTTLを設定することもできます
- 一時データストレージを構成するには、単一のオプションしか使用できません:
tmp_path
、tmp_policy
、temporary_data_in_cache
。 move_factor
,keep_free_space_bytes
,max_data_part_size_bytes
は無視されます。- ポリシーは厳密に 1つのボリューム を持たなければなりません。
詳細については、MergeTree Table Engine ドキュメントを参照してください。
例
/disk1
がいっぱいになると、一時データは /disk2
に保存されます。
top_level_domains_list
各エントリが <name>/path/to/file</name>
形式のカスタムトップレベルドメインのリストを定義します。
例えば:
関連情報:
- 関数
cutToFirstSignificantSubdomainCustom
およびその変種は、カスタム TLD リスト名を受け取り、最初の重要なサブドメインまでのトップレベルサブドメインを含むドメインの部分を返します。
total_memory_profiler_sample_max_allocation_size
total_memory_profiler_sample_probability
に等しい確率で収集します。0は無効を意味します。この閾値が期待通りに機能するように、max_untracked_memory
を 0 に設定することをお勧めします。
total_memory_profiler_sample_min_allocation_size
total_memory_profiler_sample_probability
に等しい確率で収集します。0は無効を意味します。この閾値が期待通りに機能するように、max_untracked_memory
を 0 に設定することをお勧めします。
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
に設定して、追加の細かいサンプリングを行うこともできます。
可能な値:
- 正の double。
0
—system.trace_log
システムテーブルへのランダムな割り当ておよび解放の書き込みが無効になっています。
trace_log
trace_log システムテーブルの操作設定です。
以下の設定はサブタグによって構成できます:
設定 | 説明 | デフォルト | 注釈 |
---|---|---|---|
database | データベースの名前。 | ||
table | システムテーブルの名前。 | ||
engine | システムテーブルのための MergeTree エンジン定義。 | partition_by または order_by が定義されている場合は使用できません。指定がない場合はデフォルトで MergeTree が選択されます。 | |
partition_by | システムテーブルのための カスタムパーティショニングキー。 | システムテーブルにエンジンが指定されている場合は、partition_by パラメータを 'engine' の中で直接指定する必要があります。 | |
ttl | テーブルの TTL を指定します。 | システムテーブルにエンジンが指定されている場合は、ttl パラメータを 'engine' の中で直接指定する必要があります。 | |
order_by | システムテーブルのための カスタムソートキー。エンジンが定義されている場合は使用できません。 | システムテーブルにエンジンが指定されている場合は、order_by パラメータを 'engine' の中で直接指定する必要があります。 | |
storage_policy | テーブルに使用するストレージポリシーの名前(オプション)。 | システムテーブルにエンジンが指定されている場合は、storage_policy パラメータを 'engine' の中で直接指定する必要があります。 | |
settings | MergeTree の動作を制御する 追加パラメータ(オプション)。 | システムテーブルにエンジンが指定されている場合は、settings パラメータを 'engine' の中で直接指定する必要があります。 | |
flush_interval_milliseconds | メモリからテーブルへのデータフラッシュの間隔。 | 7500 | |
max_size_rows | ログの最大行数。フラッシュされていないログの量が max_size に達すると、ログがディスクにダンプされます。 | 1048576 | |
reserved_size_rows | ログのために事前に確保されたメモリサイズ(行数)。 | 8192 | |
buffer_size_rows_flush_threshold | 行数のしきい値。しきい値に達すると、バックグラウンドでディスクへのログのフラッシュが開始されます。 | max_size_rows / 2 | |
flush_on_crash | クラッシュが発生した場合にログをディスクにダンプするかどうかを設定します。 | false |
デフォルトのサーバー構成ファイル config.xml
には、以下の設定セクションが含まれています:
uncompressed_cache_policy
uncompressed_cache_size
MergeTree 系のテーブルエンジンによって使用される非圧縮データの最大サイズ(バイト単位)です。
サーバー用に共有されたキャッシュが1つあります。メモリは要求に応じて割り当てられます。オプション 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 テーブルは、データ部分のヘッダーを単一の znode
を使用してコンパクトに保存します。テーブルに多くのカラムが含まれている場合、このストレージ方法は ZooKeeper に保存されるデータ量を大幅に削減します。
use_minimalistic_part_header_in_zookeeper = 1
を適用した後、この設定をサポートしていないバージョンに ClickHouse サーバーをダウングレードすることはできません。クラスタ内のサーバーのアップグレード時には注意が必要です。すべてのサーバーを一度にアップグレードするのは避けるべきです。テスト環境で新しいバージョンの ClickHouse をテストするか、クラスタのごく一部のサーバーで試す方が安全です。
この設定で既に保存されたデータ部分ヘッダーは、以前の(非圧縮)表現に復元することはできません。
user_defined_executable_functions_config
ユーザー定義の実行可能関数のための設定ファイルへのパス。
パス:
- 絶対パスまたはサーバー設定ファイルに対する相対パスを指定します。
- パスにはワイルドカード * および ? を含めることができます。
参照:
例
user_defined_path
ユーザー定義ファイルのディレクトリ。SQLのユーザー定義関数 SQL User Defined Functions に使用されます。
例
user_directories
設定ファイルのセクションで、以下の設定を含みます:
- 定義済みユーザーを含む設定ファイルへのパス。
- SQLコマンドで作成されたユーザーが格納されるフォルダへのパス。
- SQLコマンドで作成されたユーザーが保存され、レプリケーションされるZooKeeperノードパス(実験的)。
このセクションが指定されている場合、users_configおよびaccess_control_pathからのパスは使用されません。
user_directories
セクションは任意の数の項目を含むことができ、項目の順序はその優先順位を意味します(上位の項目ほど優先順位が高い)。
例
ユーザー、ロール、行ポリシー、クォータ、およびプロファイルはZooKeeperにも保存できます:
また、memory
セクション — メモリ内のみに情報を保存し、ディスクには書き込まないことを意味し、ldap
セクション — ローカルに定義されていないユーザーのリモートユーザーディレクトリとしてLDAPサーバーに情報を保存することを定義できます。
ローカルに定義されていないユーザーのリモートユーザーディレクトリとしてLDAPサーバーを追加するには、以下の設定の単一のldap
セクションを定義します:
設定 | 説明 |
---|---|
server | ldap_servers 設定セクションで定義されたLDAPサーバーのいずれかの名前。このパラメータは必須であり、空ではいけません。 |
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
この設定は実行時に変更可能で、即座に効果を持ちます。
vector_similarity_index_cache_size_ratio
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 | 一つの操作の最大タイムアウト(ミリ秒単位)。 |
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ノードを選択し、再接続が発生した場合は次のノードを選択します。 |
例の設定
関連情報