ClickHouse/docs/ja/operations/server-configuration-parameters/settings.md
2024-11-18 11:58:58 +09:00

148 KiB
Raw Blame History

slug sidebar_position sidebar_label description
/ja/operations/server-configuration-parameters/settings 57 グローバルサーバー設定 このセクションには、セッションまたはクエリレベルで変更できないサーバー設定の説明が含まれています。

グローバルサーバー設定

このセクションには、セッションまたはクエリレベルで変更できないサーバー設定の説明が含まれています。

これらの設定はClickHouseサーバーのconfig.xmlファイルに保存されています。

その他の設定は「設定」セクションに説明されています。

設定を学ぶ前に、設定ファイルセクションを読み、置換の使用(inclおよびoptional属性)に注意してください。

allow_use_jemalloc_memory

jemallocメモリを使用することを許可します。

タイプ: Bool

デフォルト: 1

asynchronous_heavy_metrics_update_period_s

非同期メトリックを更新する期間(秒単位)。

タイプ: UInt32

デフォルト: 120

asynchronous_metrics_update_period_s

非同期メトリックを更新する期間(秒単位)。

タイプ: UInt32

デフォルト: 1

auth_use_forwarded_address

プロキシを介して接続されたクライアントの認証に元のアドレスを使用します。

:::note この設定は、転送されたアドレスが容易に偽装される可能性があるため、特に注意して使用する必要があります。したがって、そのような認証を受け入れるサーバーは、信頼できるプロキシ経由でのみアクセスされるべきです。 :::

タイプ: Bool

デフォルト: 0

background_buffer_flush_schedule_pool_size

バックグラウンドでBufferエンジンテーブルのフラッシュ操作を実行するために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 16

background_common_pool_size

バックグラウンドで*MergeTreeエンジンテーブルのさまざまな操作主にガベージコレクションを実行するために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 8

background_distributed_schedule_pool_size

分散送信を実行するために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 16

background_fetches_pool_size

バックグラウンドで*MergeTreeエンジンテーブルの他のレプリカからデータパーツをフェッチするために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 16

background_merges_mutations_concurrency_ratio

スレッド数とバックグラウンドのマージおよびミューテーションを並行して実行することができる数の比率を設定します。例えば、この比率が2に等しく、background_pool_sizeが16に設定されている場合、ClickHouseはバックグラウンドで32個のマージを同時に実行できます。これは、バックグラウンド操作が一時停止して延期される可能性があるため可能です。小さなマージにより高い実行優先順位を与えるために必要です。この比率を増やすことは実行時にのみ可能です。これを下げるには、サーバーを再起動する必要があります。background_pool_size設定と同様に、後方互換性のためにdefaultプロファイルからbackground_merges_mutations_concurrency_ratioを適用することができます。

タイプ: Float

デフォルト: 2

background_merges_mutations_scheduling_policy

バックグラウンドマージとミューテーションのスケジューリングを行う方針。可能な値はround_robinshortest_task_firstです。

バックグラウンドスレッドプールによって実行される次のマージまたはミューテーションを選択するために使用されるアルゴリズム。ポリシーは、サーバーを再起動せずに実行時に変更可能です。後方互換性のためにdefaultプロファイルから適用できます。

可能な値:

  • 「round_robin」— すべての同時マージとミューテーションは、枯渇のない操作を保証するためにラウンドロビン順に実行されます。小さなマージは、単にマージするブロックが少ないため、より大きなものよりも早く完了します。
  • 「shortest_task_first」— 常に小さなマージまたはミューテーションを実行します。マージとミューテーションは、結果のサイズに基づいて優先順位が割り当てられます。小さいサイズのマージは、大きなものに対して厳密に優先されます。このポリシーは、小さなパーツを可能な限り早くマージすることを保証しますが、INSERTsで過度に負荷がかかると、大きなマージが無期限に遅れる可能性があります。

タイプ: String

デフォルト: round_robin

background_message_broker_schedule_pool_size

メッセージストリーミングのバックグラウンド操作を実行するために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 16

background_move_pool_size

バックグラウンドで*MergeTreeエンジンテーブルのデータパーツを他のディスクまたはボリュームに移動するために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 8

background_pool_size

MergeTreeエンジンを持つテーブルのバックグラウンドマージとミューテーションを実行するスレッド数を設定します。このスレッド数を実行時に増やすことだけが可能です。スレッド数を減らすには、サーバーを再起動する必要があります。この設定を調整することで、CPUとディスクの負荷を管理します。プールサイズが小さいほどCPUとディスクリソースの使用が少なくなりますが、バックグラウンドプロセスの進行が遅くなり、最終的にはクエリのパフォーマンスに影響を与える可能性があります。

変更する前に、関連するMergeTreeの設定、たとえばnumber_of_free_entries_in_pool_to_lower_max_size_of_mergenumber_of_free_entries_in_pool_to_execute_mutationなども参照してください。

タイプ: UInt64

デフォルト: 16

background_schedule_pool_size

レプリカーテーブル、Kafkaストリーミング、DNSキャッシュの更新のための軽量な周期的操作を常時実行するために使用される最大スレッド数。

タイプ: UInt64

デフォルト: 512

backup_threads

BACKUPリクエストを実行するための最大スレッド数。

タイプ: UInt64

デフォルト: 16

backups_io_thread_pool_queue_size

Backups IO スレッドプールでスケジュールできるジョブの最大数。現在のS3バックアップロジックのため、キューを無制限0に保つことが推奨されます。

タイプ: UInt64

デフォルト: 0

cache_size_to_ram_max_ratio

RAM最大比に対するキャッシュサイズを設定します。この設定は低メモリシステムでキャッシュサイズを減少させることができます。

タイプ: Double

デフォルト: 0.5

concurrent_threads_soft_limit_num

リモートサーバーからデータを取得するスレッドを除く、すべてのクエリを実行するために許可される最大クエリ処理スレッド数。これは厳しい制限ではありません。制限に達した場合でも、クエリは少なくとも1つのスレッドを取得して実行され続けます。実行中にさらに多くのスレッドが使用可能になると、クエリは希望するスレッド数にスケールアップすることができます。

ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 0

concurrent_threads_soft_limit_ratio_to_cores

concurrent_threads_soft_limit_numと同じですが、コアと比率で指定します。

タイプ: UInt64

デフォルト: 0

default_database

デフォルトのデータベース名。

タイプ: String

デフォルト: default

disable_internal_dns_cache

内部DNSキャッシュを無効にします。ClickHouseを頻繁に変更されるインフラストラクチャ例: Kubernetesで運用する際に推奨されます。

タイプ: Bool

デフォルト: 0

dns_cache_max_entries

内部DNSキャッシュの最大エントリ数。

タイプ: UInt64

デフォルト: 10000

dns_cache_update_period

内部DNSキャッシュの更新期間秒単位

タイプ: Int32

デフォルト: 15

dns_max_consecutive_failures

ClickHouseのDNSキャッシュからホストを削除する前の最大連続解決失敗数

タイプ: UInt32

デフォルト: 10

index_mark_cache_policy

インデックスマークキャッシュポリシー名。

タイプ: String

デフォルト: SLRU

index_mark_cache_size

インデックスマークのキャッシュサイズ。ゼロは無効を意味します。

:::note この設定は実行時に変更可能で、すぐに適用されます。 :::

タイプ: UInt64

デフォルト: 0

index_mark_cache_size_ratio

キャッシュの合計サイズに対するインデックスマークキャッシュ内の保護されたキューのサイズ。

タイプ: Double

デフォルト: 0.5

index_uncompressed_cache_policy

インデックス非圧縮キャッシュポリシー名。

タイプ: String

デフォルト: SLRU

index_uncompressed_cache_size

MergeTreeインデックスの非圧縮ブロックのキャッシュサイズ。ゼロは無効を意味します。

:::note この設定は実行時に変更可能で、すぐに適用されます。 :::

タイプ: UInt64

デフォルト: 0

index_uncompressed_cache_size_ratio

キャッシュの合計サイズに対するインデックス非圧縮キャッシュ内の保護されたキューのサイズ。

タイプ: Double

デフォルト: 0.5

io_thread_pool_queue_size

IOスレッドプールのキューサイズ。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 10000

mark_cache_policy

マークキャッシュポリシー名。

タイプ: String

デフォルト: SLRU

mark_cache_size

マークMergeTreeファミリーのテーブルのインデックスのキャッシュサイズ。

:::note この設定は実行時に変更可能で、すぐに適用されます。 :::

タイプ: UInt64

デフォルト: 5368709120

mark_cache_size_ratio

キャッシュの合計サイズに対するマークキャッシュ内の保護されたキューのサイズ。

タイプ: Double

デフォルト: 0.5

max_backup_bandwidth_for_server

サーバー上のすべてのバックアップに対する最大読み取り速度(バイト毎秒)。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 0

max_backups_io_thread_pool_free_size

バックアップIOスレッドプール内のアイドルスレッド数がmax_backup_io_thread_pool_free_sizeを超える場合、ClickHouseはアイドル状態のスレッドが占めているリソースを解放し、プールサイズを減少させます。必要に応じてスレッドを再作成できます。

タイプ: UInt64

デフォルト: 0

max_backups_io_thread_pool_size

BACKUPクエリのためのIO操作に使用される最大スレッド数

タイプ: UInt64

デフォルト: 1000

max_concurrent_queries

同時に実行されるクエリの総数の制限。ゼロは無制限を意味します。挿入および選択クエリの制限、ユーザーの最大クエリ数の制限も考慮する必要があります。max_concurrent_insert_queries, max_concurrent_select_queries, max_concurrent_queries_for_all_usersも参照してください。ゼロは無制限を意味します。

:::note この設定は実行時に変更可能で、すぐに適用されます。既に実行中のクエリは変更されません。 :::

タイプ: UInt64

デフォルト: 0

max_concurrent_insert_queries

同時に実行される挿入クエリの総数の制限。ゼロは無制限を意味します。

:::note この設定は実行時に変更可能で、すぐに適用されます。既に実行中のクエリは変更されません。 :::

タイプ: UInt64

デフォルト: 0

max_concurrent_select_queries

同時に実行される選択クエリの総数の制限。ゼロは無制限を意味します。

:::note この設定は実行時に変更可能で、すぐに適用されます。既に実行中のクエリは変更されません。 :::

タイプ: UInt64

デフォルト: 0

max_waiting_queries

同時待機クエリの総数の制限。待機中のクエリの実行は、必要なテーブルが非同期に読み込まれる間(async_load_databasesを参照)ブロックされます。待機中のクエリは、max_concurrent_queriesmax_concurrent_insert_queriesmax_concurrent_select_queriesmax_concurrent_queries_for_usermax_concurrent_queries_for_all_usersの制限をチェックする際にカウントされません。この修正は、サーバーの起動直後にこれらの制限に達することを避けるために行われます。ゼロは無制限を意味します。

:::note この設定は実行時に変更可能で、すぐに適用されます。既に実行中のクエリは変更されません。 :::

タイプ: UInt64

デフォルト: 0

max_connections

サーバーの最大接続数。

タイプ: Int32

デフォルト: 1024

max_io_thread_pool_free_size

IOスレッドプールの最大フリーサイズ。

タイプ: UInt64

デフォルト: 0

max_io_thread_pool_size

IO操作に使用される最大スレッド数

タイプ: UInt64

デフォルト: 100

max_local_read_bandwidth_for_server

ローカル読み取りの最大速度1秒あたりのバイト数。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 0

max_local_write_bandwidth_for_server

ローカル書き込みの最大速度1秒あたりのバイト数。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 0

max_partition_size_to_drop

パーティション削除の制限。

MergeTreeテーブルのサイズがmax_partition_size_to_drop(バイト単位)を超える場合、DROP PARTITIONクエリを使用してパーティションを削除することはできません。この設定は適用するためにClickHouseサーバーの再起動を必要としません。もう一つの制限を解除する方法は、<clickhouse-path>/flags/force_drop_tableファイルを作成することです。デフォルト値: 50 GB。値が0の場合、制限なしでパーティションを削除できます。

:::note この制限は、テーブルの削除やテーブルの切り捨てを制限しません。詳細はmax_table_size_to_dropを参照してください。 :::

max_remote_read_network_bandwidth_for_server

ネットワーク経由でのデータ交換の最大速度(バイト毎秒)での読み取り。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 0

max_remote_write_network_bandwidth_for_server

ネットワーク経由でのデータ交換の最大速度(バイト毎秒)での書き込み。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 0

max_server_memory_usage

サーバー全体のメモリ使用量の制限。ゼロは無制限を意味します。

デフォルトのmax_server_memory_usage値はmemory_amount * max_server_memory_usage_to_ram_ratioとして計算されます。

タイプ: UInt64

デフォルト: 0

max_server_memory_usage_to_ram_ratio

max_server_memory_usageと同じですが、物理RAMに対する比率で設定します。低メモリシステムでのメモリ使用率を下げることができます。ゼロは無制限を意味します。

RAMとスワップが低いホストでは、max_server_memory_usage_to_ram_ratioを1より大きく設定する必要があります。

タイプ: Double

デフォルト: 0.9

max_build_vector_similarity_index_thread_pool_size

ベクトルインデックスの構築に使用する最大スレッド数。0はすべてのコアを意味します。

タイプ: UInt64

デフォルト: 16

cgroups_memory_usage_observer_wait_time

cgroupsのしきい値でサーバーの最大許容メモリ消費を調整する間隔秒単位。 (cgroup_memory_watcher_hard_limit_ratiocgroup_memory_watcher_soft_limit_ratio の設定を参照)。

cgroupオブザーバーを無効にするには、この値を0に設定します。

タイプ: UInt64

デフォルト: 15

cgroup_memory_watcher_hard_limit_ratio

cgroupsに従ったサーバープロセスのメモリ消費に関する「ハード」しきい値を指定します。このしきい値を超えると、サーバーの最大メモリ消費がしきい値の値に調整されます。

cgroups_memory_usage_observer_wait_timeおよびcgroup_memory_watcher_soft_limit_ratioの設定を参照してください。

タイプ: Double

デフォルト: 0.95

cgroup_memory_watcher_soft_limit_ratio

cgroupsに従ったサーバープロセスのメモリ消費に関する「ソフト」しきい値を指定し、jemallocのアリーナをパージします。

cgroups_memory_usage_observer_wait_timecgroup_memory_watcher_hard_limit_ratioの設定を参照してください。

タイプ: Double

デフォルト: 0.9

max_table_size_to_drop

テーブル削除の制限。

MergeTreeテーブルのサイズがmax_table_size_to_drop(バイト単位)を超える場合、DROPクエリやTRUNCATEクエリを使用して削除できません。

この設定は適用するためにClickHouseサーバーの再起動を必要としません。もう一つの制限を解除する方法は、<clickhouse-path>/flags/force_drop_tableファイルを作成することです。

デフォルト値: 50 GB。値が0の場合、すべてのテーブルを制限なしで削除できます。

<max_table_size_to_drop>0</max_table_size_to_drop>

max_database_num_to_warn

アタッチされたデータベースの数が指定された値を超えた場合、clickhouseサーバーはsystem.warningsテーブルに警告メッセージを追加します。 デフォルト値: 1000

<max_database_num_to_warn>50</max_database_num_to_warn>

max_table_num_to_warn

アタッチされたテーブルの数が指定された値を超えた場合、clickhouseサーバーはsystem.warningsテーブルに警告メッセージを追加します。 デフォルト値: 5000

<max_table_num_to_warn>400</max_table_num_to_warn>

max_view_num_to_warn

アタッチされたビューの数が指定された値を超えた場合、clickhouseサーバーはsystem.warningsテーブルに警告メッセージを追加します。 デフォルト値: 10000

<max_view_num_to_warn>400</max_view_num_to_warn>

max_dictionary_num_to_warn

アタッチされたディクショナリの数が指定された値を超えた場合、clickhouseサーバーはsystem.warningsテーブルに警告メッセージを追加します。 デフォルト値: 1000

<max_dictionary_num_to_warn>400</max_dictionary_num_to_warn>

max_part_num_to_warn

アクティブパーツの数が指定された値を超えた場合、clickhouseサーバーはsystem.warningsテーブルに警告メッセージを追加します。 デフォルト値: 100000

<max_part_num_to_warn>400</max_part_num_to_warn>

max_table_num_to_throw

テーブルの数がこの値を超える場合、サーバーは例外をスローします。0は制限がないことを意味します。ビュー、リモートテーブル、ディクショナリ、システムテーブルはカウントされません。Atomic/Ordinary/Replicated/Lazyデータベースエンジンのテーブルだけがカウントされます。デフォルト値: 0

<max_table_num_to_throw>400</max_table_num_to_throw>

max_database_num_to_throw

データベースの数がこの値を超える場合、サーバーは例外をスローします。0は制限がないことを意味します。 デフォルト値: 0

<max_database_num_to_throw>400</max_database_num_to_throw>

max_temporary_data_on_disk_size

外部集計、結合、またはソートに使用できる最大ストレージ量。 この制限を超えたクエリは例外で失敗します。ゼロは無制限を意味します。

max_temporary_data_on_disk_size_for_usermax_temporary_data_on_disk_size_for_queryも参照。

タイプ: UInt64

デフォルト: 0

max_thread_pool_free_size

グローバルスレッドプールのアイドルスレッド数がmax_thread_pool_free_sizeを超える場合、ClickHouseは一部のスレッドが占めているリソースを解放し、プールサイズを減少させます。必要に応じてスレッドを再作成できます。

タイプ: UInt64

デフォルト: 1000

max_thread_pool_size

OSから割り当てられ、クエリ実行やバックグラウンド操作に使用できる最大スレッド数。

タイプ: UInt64

デフォルト: 10000

mmap_cache_size

マップされたファイルのキャッシュサイズ(バイト単位)を設定します。この設定は頻繁な開閉呼び出し(それに伴うページフォールトのため非常に高価)を回避し、複数のスレッドやクエリからのマッピングを再利用できます。設定値はマップされた領域の数です(通常はマップされたファイルの数に等しい)。マップされたファイル内のデータの量は、システムテーブルsystem.metricssystem.metric_logMMappedFilesMMappedFileBytesメトリクスでモニタリングできます。また、system.asynchronous_metricssystem.asynchronous_metrics_logMMapCacheCellsメトリクス、system.eventssystem.processessystem.query_logsystem.query_thread_logsystem.query_views_logCreatedReadBufferMMapCreatedReadBufferMMapFailedMMappedFileCacheHitsMMappedFileCacheMissesイベントでもモニタリングできます。

注意: マップされたファイル内のデータ量はメモリを直接消費せず、クエリやサーバーのメモリ使用量にカウントされません。これはOSページキャッシュと同様に破棄可能なためです。キャッシュは、MergeTreeファミリーのテーブル内の古いパーツが削除されると自動的に削除され、SYSTEM DROP MMAP CACHEクエリで手動で削除することもできます。

:::note この設定は実行時に変更可能で、すぐに適用されます。 :::

タイプ: UInt64

デフォルト: 1000

restore_threads

RESTOREリクエストを実行するための最大スレッド数。

タイプ: UInt64

デフォルト: 16

show_addresses_in_stack_traces

真に設定されている場合、スタックトレースでアドレスを表示します

タイプ: Bool

デフォルト: 1

shutdown_wait_unfinished_queries

真に設定されている場合、ClickHouseはシャットダウン前に実行中のクエリが終了するのを待ちます。

タイプ: Bool

デフォルト: 0

temporary_data_in_cache

このオプションにより、一時データは特定のディスクのキャッシュ内に保存されます。 このセクションでは、タイプがcacheのディスク名を指定する必要があります。 この場合、キャッシュと一時データは同じスペースを共有し、一時データを作成するためにディスクキャッシュを退避させることができます。

:::note 一時データストレージを構成するために使用できるオプションは、tmp_pathtmp_policytemporary_data_in_cache のいずれかの一つのみです。 :::

local_disk用のキャッシュと一時データは、ファイルシステム上の/tiny_local_cacheに保存され、tiny_local_cacheで管理されます。

<clickhouse>
    <storage_configuration>
        <disks>
            <local_disk>
                <type>local</type>
                <path>/local_disk/</path>
            </local_disk>

            <!-- highlight-start -->
            <tiny_local_cache>
                <type>cache</type>
                <disk>local_disk</disk>
                <path>/tiny_local_cache/</path>
                <max_size_rows>10M</max_size_rows>
                <max_file_segment_size>1M</max_file_segment_size>
                <cache_on_write_operations>1</cache_on_write_operations>
            </tiny_local_cache>
            <!-- highlight-end -->
        </disks>
    </storage_configuration>

    <!-- highlight-start -->
    <temporary_data_in_cache>tiny_local_cache</temporary_data_in_cache>
    <!-- highlight-end -->
</clickhouse>

タイプ: String

デフォルト:

thread_pool_queue_size

グローバルスレッドプールでスケジュールできるジョブの最大数。キューサイズを増やすと、より多くのメモリが使用されます。この値をmax_thread_pool_sizeと等しく保つことが推奨されます。ゼロは無制限を意味します。

タイプ: UInt64

デフォルト: 10000

tmp_policy

一時データを含むストレージのポリシー。MergeTreeテーブルエンジンのドキュメントも参照してください。

:::note

  • 一時データストレージを構成するために使用できるオプションは、tmp_pathtmp_policytemporary_data_in_cache のいずれかの一つのみです。
  • move_factorkeep_free_space_bytesmax_data_part_size_bytesなどは無視されます。
  • ポリシーには正確に1つのボリュームローカルディスクを含むべきです。 :::

/disk1が満杯になると、一時データは/disk2に保存されます。

<clickhouse>
    <storage_configuration>
        <disks>
            <disk1>
                <path>/disk1/</path>
            </disk1>
            <disk2>
                <path>/disk2/</path>
            </disk2>
        </disks>

        <policies>
            <!-- highlight-start -->
            <tmp_two_disks>
                <volumes>
                    <main>
                        <disk>disk1</disk>
                        <disk>disk2</disk>
                    </main>
                </volumes>
            </tmp_two_disks>
            <!-- highlight-end -->
        </policies>
    </storage_configuration>

    <!-- highlight-start -->
    <tmp_policy>tmp_two_disks</tmp_policy>
    <!-- highlight-end -->
</clickhouse>

タイプ: String

デフォルト:

uncompressed_cache_policy

非圧縮キャッシュポリシー名。

タイプ: String

デフォルト: SLRU

uncompressed_cache_size

MergeTreeファミリーのテーブルエンジンによって使用される非圧縮データのキャッシュサイズバイト単位。ゼロは無効を意味します。

サーバーには1つの共有キャッシュがあります。メモリはオンデマンドで割り当てられます。キャッシュは、オプションuse_uncompressed_cacheが有効になっている場合に使用されます。

非常に短いクエリに対して個別のケースで非圧縮キャッシュが有利です。

:::note この設定は実行時に変更可能で、すぐに適用されます。 :::

タイプ: UInt64

デフォルト: 0

uncompressed_cache_size_ratio

キャッシュの合計サイズに対する非圧縮キャッシュ内の保護されたキューのサイズ。

タイプ: Double

デフォルト: 0.5

builtin_dictionaries_reload_interval

組み込みディクショナリを再読み込みする前の間隔(秒単位)。

ClickHouseは指定された秒数ごとに組み込みディクショナリを再読み込みします。これにより、サーバーを再起動することなくディクショナリを「オンザフライ」で編集することができます。

デフォルト値: 3600。

<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>

compression

MergeTree-エンジンテーブルのデータ圧縮設定。

:::note ClickHouseを使い始めたばかりの場合は使用しないでください。 :::

設定テンプレート:

<compression>
    <case>
      <min_part_size>...</min_part_size>
      <min_part_size_ratio>...</min_part_size_ratio>
      <method>...</method>
      <level>...</level>
    </case>
    ...
</compression>

<case>フィールド:

  • min_part_size データパートの最小サイズ。
  • min_part_size_ratio データパートのサイズとテーブルサイズの比率。
  • method 圧縮方法。許可される値は: lz4, lz4hc, zstd,deflate_qpl.
  • level 圧縮レベル。Codecsを参照。

複数の<case>セクションを設定できます。

条件が満たされた場合の動作:

  • データパートが条件セットと一致する場合、ClickHouseは指定された圧縮方法を使用します。
  • データパートが複数の条件セットと一致する場合、ClickHouseは最初に一致した条件セットを使用します。

データパートに対する条件が満たされない場合、ClickHouseはlz4圧縮を使用します。

<compression incl="clickhouse_compression">
    <case>
        <min_part_size>10000000000</min_part_size>
        <min_part_size_ratio>0.01</min_part_size_ratio>
        <method>zstd</method>
        <level>1</level>
    </case>
</compression>

encryption

暗号化コーデックで使用するキーを取得するコマンドを構成します。キー(またはキー)は、環境変数に書き込むか、設定ファイルに設定する必要があります。

キーは16バイトの長さの16進数または文字列にできます。

設定から読み込み:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key>1234567812345678</key>
    </aes_128_gcm_siv>
</encryption_codecs>

:::note 設定ファイルにキーを格納することは推奨されません。これは安全ではありません。鍵を安全なディスク上の別の設定ファイルに移動し、それに対するシンボリックリンクをconfig.d/フォルダーに置くことを検討してください。 :::

16進数のキーを設定から読み込む場合:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex>00112233445566778899aabbccddeeff</key_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

環境変数からキーを読み込む場合:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex from_env="ENVVAR"></key_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

ここでcurrent_key_idは暗号化のための現在のキーを設定し、指定されたすべてのキーが復号化に使用されることができます。

これらの方法のそれぞれは、複数のキーにも適用可能です:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex id="0">00112233445566778899aabbccddeeff</key_hex>
        <key_hex id="1" from_env="ENVVAR"></key_hex>
        <current_key_id>1</current_key_id>
    </aes_128_gcm_siv>
</encryption_codecs>

ここでcurrent_key_idは暗号化のための現在のキーを示しています。

またユーザーは12バイト長のnonceを追加することができますデフォルトの暗号化および復号化プロセスではゼロバイトで構成されるnonceが使用されます:

<encryption_codecs>
    <aes_128_gcm_siv>
        <nonce>012345678910</nonce>
    </aes_128_gcm_siv>
</encryption_codecs>

または16進数で設定できます:

<encryption_codecs>
    <aes_128_gcm_siv>
        <nonce_hex>abcdefabcdef</nonce_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

上記のすべてのことは、aes_256_gcm_sivにも適用されますただしキーは32バイト長でなければなりません

error_log

デフォルトでは無効です。

有効化

エラーログの履歴収集system.error_logを手動でオンにするには、次の内容で/etc/clickhouse-server/config.d/error_log.xmlを作成してください:

<clickhouse>
    <error_log>
        <database>system</database>
        <table>error_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </error_log>
</clickhouse>

無効化

error_log設定を無効にするには、次の内容で/etc/clickhouse-server/config.d/disable_error_log.xmlを作成してください:

<clickhouse>
<error_log remove="1" />
</clickhouse>

custom_settings_prefixes

カスタム設定のプレフィックスのリスト。プレフィックスはカンマで区切る必要があります。

<custom_settings_prefixes>custom_</custom_settings_prefixes>

関連項目

core_dump

コアダンプファイルサイズのソフトリミットを設定します。

可能な値:

  • 正の整数。

デフォルト値: 1073741824 (1 GB)。

:::note ハードリミットはシステムツールを使用して設定されます :::

<core_dump>
    <size_limit>1073741824</size_limit>
</core_dump>

database_atomic_delay_before_drop_table_sec

削除されたテーブルをUNDROPステートメントを使用して復元できるまでの遅延時間。この設定はSYNCモディファイア付きでDROP TABLEが実行された場合、無視されます。

デフォルト値: 480 (8分)。

database_catalog_unused_dir_hide_timeout_sec

store/ディレクトリのガベージをクリーンアップするタスクのパラメータ。 ClickHouseサーバーで使用されていないサブディレクトリが 最後にdatabase_catalog_unused_dir_hide_timeout_sec秒の間に変更されていない場合、タスクは このディレクトリを「隠す」(すべてのアクセス権を削除することによって)ことを行います。 store/内にClickHouseサーバーが予期しないことも期待されるディレクトリにも適用されます。ゼロは「即時」を意味します。

デフォルト値: 3600 (1時間)。

database_catalog_unused_dir_rm_timeout_sec

store/ディレクトリのガベージをクリーンアップするタスクのパラメータ。 ClickHouseサーバーで使用されておらず、以前に「隠された」 database_catalog_unused_dir_hide_timeout_secを参照) 最後にdatabase_catalog_unused_dir_rm_timeout_sec秒の間に変更されていない場合、タスクはこのディレクトリを削除します。 store/内にClickHouseサーバーが予期しないことも期待されるディレクトリにも適用されます。ゼロは「決して」を意味します。

デフォルト値: 2592000 (30日)。

database_catalog_unused_dir_cleanup_period_sec

store/ディレクトリのガベージをクリーンアップするタスクのパラメータ。 タスクのスケジューリング期間を設定します。ゼロは「決して」を意味します。

デフォルト値: 86400 (1日)。

default_profile

デフォルトの設定プロファイル。

設定プロファイルはパラメータuser_configで指定されたファイルに配置されます。

<default_profile>default</default_profile>

default_replica_path

ZooKeeper内のテーブルへのパス。

<default_replica_path>/clickhouse/tables/{uuid}/{shard}</default_replica_path>

default_replica_name

ZooKeeper内のレプリカ名。

<default_replica_name>{replica}</default_replica_name>

dictionaries_config

ディクショナリの設定ファイルへのパス。

パス:

  • 絶対パスまたはサーバー設定ファイルからの相対パスを指定してください。
  • パスはワイルドカード*と?を含むことができます。

ディクショナリ」も参照してください。

<dictionaries_config>*_dictionary.xml</dictionaries_config>

user_defined_executable_functions_config

実行可能なユーザー定義関数の設定ファイルへのパス。

パス:

  • 絶対パスまたはサーバー設定ファイルからの相対パスを指定してください。
  • パスはワイルドカード*と?を含むことができます。

実行可能ユーザー定義関数」。も参照してください。

<user_defined_executable_functions_config>*_function.xml</user_defined_executable_functions_config>

dictionaries_lazy_load

ディクショナリの遅延読み込み。

trueの場合、各ディクショナリは初めて使用されたときに読み込まれます。読み込みが失敗した場合、ディクショナリを使用していた関数が例外をスローします。

falseの場合、サーバーは起動時にすべてのディクショナリを読み込みます。 サーバーは接続を受ける前にすべてのディクショナリが読み込みを完了するまで起動を待ちます (例外: wait_dictionaries_load_at_startupfalseに設定されている場合 - 下記を参照)。

デフォルトはtrueです。

<dictionaries_lazy_load>true</dictionaries_lazy_load>

format_schema_path

入力データのスキームを含むディレクトリへのパス、例えばCapnProtoフォーマットのスキーマ。

  <!-- 様々な入力フォーマット用のスキーマファイルを含むディレクトリ。 -->
  <format_schema_path>format_schemas/</format_schema_path>

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>
    <host>localhost</host>
    <port>42000</port>
    <timeout>0.1</timeout>
    <interval>60</interval>
    <root_path>one_min</root_path>
    <metrics>true</metrics>
    <events>true</events>
    <events_cumulative>false</events_cumulative>
    <asynchronous_metrics>true</asynchronous_metrics>
</graphite>

graphite_rollup

Graphite用のデータのスリム化の設定。

詳細については、GraphiteMergeTreeを参照してください。

<graphite_rollup_example>
    <default>
        <function>max</function>
        <retention>
            <age>0</age>
            <precision>60</precision>
        </retention>
        <retention>
            <age>3600</age>
            <precision>300</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>3600</precision>
        </retention>
    </default>
</graphite_rollup_example>

http_port/https_port

サーバーにHTTP(s)で接続するためのポート。

https_portが指定されている場合は、openSSLを設定する必要があります。

http_portが指定されている場合は、セキュリティ設定が無効になります(設定されていれば)。

<https_port>9999</https_port>

http_server_default_response

ClickHouse HTTP(s)サーバーにアクセスした際にデフォルトで表示されるページ。 デフォルト値は「Ok.」(改行付き)。

http://localhost: http_portにアクセスするとhttps://tabix.io/を開く。

<http_server_default_response>
  <![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]>
</http_server_default_response>

hsts_max_age

HSTSの期限切れ時間を秒単位で設定します。デフォルト値は0で、ClickHouseはHSTSを無効にしています。正の数を設定すると、HSTSが有効になり、max-ageは設定された数になります。

<hsts_max_age>600000</hsts_max_age>

mlock_executable

起動後にmlockallを実行し、最初のクエリのレイテンシーを低下させ、高IO負荷時にClickHouse実行ファイルがページアウトされるのを防ぎます。このオプションを有効にすることをお勧めしますが、起動時間が最大で数秒増加することになります。このパラメータは「CAP_IPC_LOCK」能力がないと機能しませんのでご注意ください。

<mlock_executable>false</mlock_executable>

include_from

置換を含むファイルへのパス。XMLおよびYAML形式がサポートされています。

詳細については、「設定ファイル」セクションを参照してください。

<include_from>/etc/metrica.xml</include_from>

interserver_listen_host

ClickHouseサーバー間でデータを交換できるホストの制限。 Keeperが使用されている場合、異なるKeeperインスタンス間の通信にも同じ制限が適用されます。 デフォルト値はlisten_host設定と等しいです。

例:

<interserver_listen_host>::ffff:a00:1</interserver_listen_host>
<interserver_listen_host>10.0.0.1</interserver_listen_host>

interserver_http_port

ClickHouseサーバー間でデータを交換するためのポート。

<interserver_http_port>9009</interserver_http_port>

interserver_http_host

他のサーバーがこのサーバーにアクセスするために使用できるホスト名。

指定しない場合は、hostname -fコマンドと同じ方法で定義されます。

特定のネットワークインターフェイスからの切り離しに役立ちます。

<interserver_http_host>example.clickhouse.com</interserver_http_host>

interserver_https_port

ClickHouseサーバー間のデータ交換用のHTTPSポート。

<interserver_https_port>9010</interserver_https_port>

interserver_https_host

interserver_http_hostに類似しており、HTTPSを介して他のサーバーがこのサーバーにアクセスするために使用できるホスト名です。

<interserver_https_host>example.clickhouse.com</interserver_https_host>

interserver_http_credentials

レプリケーションの間に他のサーバーに接続するために使用されるユーザー名とパスワード。また、サーバーはこれらの資格情報を使用して他のレプリカを認証します。したがって、interserver_http_credentialsはクラスター内のすべてのレプリカで同じでなければなりません。

デフォルトでinterserver_http_credentialsセクションが省略されている場合、レプリケーション中の認証は使用されません。

:::note interserver_http_credentials設定は、ClickHouseクライアントの資格情報設定には関連しません。 :::

:::note これらの資格情報は、HTTPおよびHTTPSを介したレプリケーションに共通です。 :::

セクションは次のパラメータを含みます:

  • user — ユーザー名。
  • password — パスワード。
  • allow_emptytrueの場合、資格情報が設定されていても、他のレプリカが認証なしで接続することが許可されます。falseの場合、認証なしの接続は拒否されます。デフォルト値はfalseです。
  • old — 資格情報を回転させる際に使用される古いuserpasswordを含みます。複数のoldセクションを指定可能です。

資格情報のローテーション

ClickHouseはすべてのレプリカを停止することなく動的なインタサーバー資格情報のローテーションをサポートします。資格情報は数ステップで変更できます。

認証を有効にするには、interserver_http_credentials.allow_emptytrueに設定し、資格情報を追加します。これにより、認証ありおよびなしの接続が許可されます。

<interserver_http_credentials>
    <user>admin</user>
    <password>111</password>
    <allow_empty>true</allow_empty>
</interserver_http_credentials>

すべてのレプリカを構成した後、allow_emptyfalseに設定するか、この設定を削除します。これにより、新しい資格情報を使用した認証が必須となります。

既存の資格情報を変更するには、ユーザー名とパスワードをinterserver_http_credentials.oldセクションに移動し、新しい値でuserpasswordを更新します。この時点で、サーバーは新しい資格情報を使用して他のレプリカに接続し、新しい資格情報または古い資格情報のいずれかで接続を受け入れます。

<interserver_http_credentials>
    <user>admin</user>
    <password>222</password>
    <old>
        <user>admin</user>
        <password>111</password>
    </old>
    <old>
        <user>temp</user>
        <password>000</password>
    </old>
</interserver_http_credentials>

新しい資格情報がすべてのレプリカに適用されたら、古い資格情報を削除できます。

keep_alive_timeout

ClickHouseが接続を閉じる前に着信要求を待機する秒数。デフォルトは10秒です。

<keep_alive_timeout>10</keep_alive_timeout>

max_keep_alive_requests

1つのキープアライブ接続を介しての最大リクエスト数。クリックハウスサーバーによって接続が閉じられるまでの数。デフォルトは10000です。

<max_keep_alive_requests>10</max_keep_alive_requests>

listen_host

リクエストが来ることができるホストの制限。サーバーがすべてに応答するためには、::を指定してください。

例:

<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>

listen_try

IPv6またはIPv4ネットワークが使用できない場合でも、リスンしようとする際にサーバーが終了しないようにします。

例:

<listen_try>0</listen_try>

listen_reuse_port

複数のサーバーが同じアドレス:ポートでリスンすることを許可します。リクエストはOSによってランダムなサーバーにルーティングされます。この設定を有効にすることは推奨されません。

例:

<listen_reuse_port>0</listen_reuse_port>

listen_backlog

リスンソケットのバックログ(保留中の接続のキューサイズ)。

デフォルト値: 4096linux 5.4+に準拠)。

通常、この値を変更する必要はありません。なぜなら:

  • デフォルト値は十分大きく、
  • クライアントの接続を受け入れるためにサーバーには個別のスレッドがあるからです。

したがって、ClickHouseサーバーの場合にTcpExtListenOverflowsnstatから)がゼロ以外で、このカウンタが成長しても、この値を増やす必要があるという意味ではありません。なぜなら:

  • 通常、4096が十分でない場合、それは内部のClickHouseスケーリング問題を示しており、問題を報告する方が良いです。
  • その時点でクライアントがいないか、切断されている可能性があるため、その後にサーバーがより多くの接続を処理できるという意味ではありません。

例:

<listen_backlog>4096</listen_backlog>

logger

ログメッセージの位置と形式。

キー:

  • level ログレベル。許容される値: none(ログをオフにします)、fatalcriticalerrorwarningnoticeinformationdebugtracetest
  • log ログファイルへのパス。
  • errorlog エラーログファイルへのパス。
  • size 回転ポリシー: ログファイルの最大サイズ(バイト単位)。ログファイルサイズがこのしきい値を超えると、名前が変更されてアーカイブされ、新しいログファイルが作成されます。
  • count 回転ポリシー: ClickHouseが保持する過去のログファイルの最大数。
  • stream_compress ログメッセージをLZ4で圧縮します。有効にするには1またはtrueを設定します。
  • console ログメッセージをログファイルに書き込まず、代わりにコンソールに表示します。有効にするには1またはtrueを設定します。デフォルトは ClickHouseがデーモンモードで実行されていない場合に1です。それ以外の場合は0
  • console_log_level コンソール出力のログレベル。levelにデフォルトします。
  • formatting コンソール出力のログ形式。現在はjsonのみがサポートされています。
  • use_syslog - ログ出力をsyslogにも転送します。
  • syslog_level - syslogへのログのログレベル。
  • message_regexp - この正規表現に一致するメッセージのみをログに記録します。デフォルトは""で、フィルタリングなしを示します。
  • message_regexp_negative - この正規表現に一致しないメッセージのみをログに記録します。デフォルトは""で、フィルタリングなしを示します。

ログ形式の指定子

logおよびerrorLogパス内のファイル名は、生成されるファイル名の下の形式指定子をサポートします(ディレクトリ部分ではサポートされていません)。

列「例」は2023-07-06 18:32:07時点での出力を示します。

指定子 説明
%% リテラル% %
%n 改行文字
%t 水平タブ文字
%Y 年を10進数で表したもの, 例: 2017 2023
%y 年の最後の2桁範囲 [00,99] 23
%C 年の最初の2桁範囲 [00,99] 20
%G ISO 8601週ベースの年の4桁, すなわち指定された週が含まれる年。通常%Vと組み合わせて使用します。 2023
%g ISO 8601週ベースの年の最後の2桁, すなわち指定された週が含まれる年。 23
%b 略称月名, 例: Octロケール依存 Jul
%h %bの同義 Jul
%B 完全月名, 例: Octoberロケール依存 July
%m 月を10進数で表したもの範囲 [01,12] 07
%U 年のうちの週を10進数で表したもの週の最初の日は日曜日 (範囲 [00,53]) 27
%W 年のうちの週を10進数で表したもの週の最初の日は月曜日 (範囲 [00,53]) 27
%V ISO 8601週番号範囲 [01,53] 27
%j 年のうちの1日を10進数で表したもの範囲 [001,366] 187
%d 月の1日を0パディングされた10進数で表したもの範囲 [01,31]。1桁はゼロで前方埋めされます。 06
%e 月の1日をスペースでパディングされた10進数で表したもの範囲 [1,31]。1桁はスペースで前方埋めされます。   6
%a 略称曜日名, 例: Friロケール依存 Thu
%A 完全曜日名, 例: Fridayロケール依存 Thursday
%w 週の日を整数で表したもの0が日曜日 (範囲 [0-6]) 4
%u 週の日を10進数で表したものISO 8601フォーマット, 月曜日が1 (範囲 [1-7]) 4
%H 時間を10進数で表したもの (24時間制)(範囲 [00-23] 18
%I 時間を10進数で表したもの (12時間制)(範囲 [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 ローカライズされた午前午後の指定(ロケール依存) PM
%z ISO 8601形式でUTCからのオフセット例: -0430、タイムゾーン情報がない場合は文字なし +0800
%Z ロケール依存のタイムゾーン名または略称、タイムゾーン情報がない場合は文字なし Z AWST

<logger>
    <level>trace</level>
    <log>/var/log/clickhouse-server/clickhouse-server-%F-%T.log</log>
    <errorlog>/var/log/clickhouse-server/clickhouse-server-%F-%T.err.log</errorlog>
    <size>1000M</size>
    <count>10</count>
    <stream_compress>true</stream_compress>
</logger>

ログメッセージをコンソールにのみ出力するには:

<logger>
    <level>information</level>
    <console>true</console>
</logger>

レベル別のオーバーライド

個々のログ名のログレベルをオーバーライドできます。例えば、"Backup" と "RBAC" の全てのメッセージをミュートにするには。

<logger>
    <levels>
        <logger>
            <name>Backup</name>
            <level>none</level>
        </logger>
        <logger>
            <name>RBAC</name>
            <level>none</level>
        </logger>
    </levels>
</logger>

正規表現フィルタリング

ログメッセージは message_regexpmessage_regexp_negative を使用して正規表現でフィルタリングできます。これをレベルごとに、または全体として実行できます。グローバルとロガー固有のパターンが指定された場合は、グローバルパターンがオーバーライドされ(無視され)、ロガー固有のパターンのみが適用されます。この状況では、肯定パターンと否定パターンは独立して考慮されます。注意: この機能の使用は若干のパフォーマンス低下を引き起こす可能性があります。

<logger>
    <level>trace</level>
    <!-- グローバル: Traceメッセージをログしない -->
    <message_regexp_negative>.*Trace.*</message_regexp_negative>

    <message_regexps>
        <logger>
            <!-- executeQuery ロガーの場合、"Read" を含むメッセージのみをログし、"from" を含まない -->
            <name>executeQuery</name>
            <message_regexp>.*Read.*</message_regexp>
            <message_regexp_negative>.*from.*</message_regexp_negative>
        </logger>
    </message_regexps>
</logger>

syslog

ログメッセージを syslog にも書き込むには:

<logger>
    <use_syslog>1</use_syslog>
    <syslog>
        <address>syslog.remote:10514</address>
        <hostname>myhost.local</hostname>
        <facility>LOG_LOCAL6</facility>
        <format>syslog</format>
    </syslog>
</logger>

<syslog> のキー:

  • address — syslog のアドレスの形式 host\[:port\] 。省略された場合、ローカルデーモンが使用されます。
  • hostname — ログを送信するホストの名前。オプション。
  • facility — syslog の facility keyword。大文字で "LOG_" プレフィックス付きで指定する必要があります。例: LOG_USER, LOG_DAEMON, LOG_LOCAL3 など。デフォルト値: address が指定された場合 LOG_USER, 指定されない場合 LOG_DAEMON
  • format - ログメッセージの形式。使用可能な値: bsdsyslog.

ログ形式

コンソールログに出力されるログ形式を指定できます。現在、JSONのみがサポートされています。以下はJSONログの出力例です。

{
  "date_time": "1650918987.180175",
  "thread_name": "#1",
  "thread_id": "254545",
  "level": "Trace",
  "query_id": "",
  "logger_name": "BaseDaemon",
  "message": "受信した信号 2",
  "source_file": "../base/daemon/BaseDaemon.cpp; virtual void SignalListener::run()",
  "source_line": "192"
}

JSONロギングサポートを有効にするには、以下のスニペットを使用します。

<logger>
    <formatting>
        <type>json</type>
        <names>
            <date_time>date_time</date_time>
            <thread_name>thread_name</thread_name>
            <thread_id>thread_id</thread_id>
            <level>level</level>
            <query_id>query_id</query_id>
            <logger_name>logger_name</logger_name>
            <message>message</message>
            <source_file>source_file</source_file>
            <source_line>source_line</source_line>
        </names>
    </formatting>
</logger>

JSONログのキー名の変更

キー名は、<names> タグ内のタグ値を変更することで修正できます。例えば、DATE_TIMEMY_DATE_TIME に変更するには、<date_time>MY_DATE_TIME</date_time> を使用します。

JSONログのキーの省略

ログプロパティは、プロパティをコメントアウトすることで省略できます。例えば、query_id をログに出力したくない場合、<query_id> タグをコメントアウトします。

send_crash_reports

[Send] ClickHouse Core Developers Team via Sentry中の設定を使用して、クラッシュレポートをオプトインで送信する設定。

特にプレプロダクション環境での有効化が推奨されます。

この機能が正常に動作するには、サーバーがIPv4を介してパブリックインターネットにアクセスできる必要があります執筆時点ではIPv6はSentryによってサポートされていません

キー:

  • enabled この機能を有効にするためのブールフラグ。デフォルトは false。クラッシュレポートの送信を許可するには true に設定します。
  • send_logical_errors LOGICAL_ERRORassert のようなもので、ClickHouse のバグです。このブールフラグはこの例外をsentryに送信することを可能にしますデフォルト: false)。
  • endpoint クラッシュレポートを送信するためのsentryエンドポイントURLをオーバーライドできます。これには個別のSentryアカウントまたは自己ホスト済みのSentryインスタンスを使用できます。 Sentry DSN 構文を使用します。
  • anonymize - クラッシュレポートにサーバーホスト名を添付するのを回避します。
  • http_proxy - クラッシュレポート送信用のHTTPプロキシを設定します。
  • debug - Sentryクライアントをデバッグモードに設定します。
  • tmp_path - 一時的なクラッシュレポート状態を保存するためのファイルシステムパス。
  • environment - ClickHouseサーバーが動作している環境の任意の名前。各クラッシュレポートに記載されます。デフォルト値はClickHouseのバージョンに応じて testprod です。

推奨使用方法

<send_crash_reports>
    <enabled>true</enabled>
</send_crash_reports>

macros

レプリケートテーブルのパラメータ置換。

レプリケートテーブルが使用されていない場合は省略可能。

詳しくは、Creating replicated tables のセクションを参照してください。

<macros incl="macros" optional="true" />

replica_group_name

データベースReplicatedのレプリカグループ名。

Replicatedデータベースによって作成されたクラスターは同じグループ内のレプリカで構成されます。 DDLクエリは同じグループ内のレプリカのみを待ちます。

デフォルトでは空です。

<replica_group_name>backups</replica_group_name>

デフォルト値: ``。

max_open_files

最大のオープンファイル数。

デフォルト: maximum

このオプションは、macOSで getrlimit() 関数が不正確な値を返すために使用を推奨します。

<max_open_files>262144</max_open_files>

max_table_size_to_drop

テーブル削除の制限。

MergeTree テーブルのサイズが max_table_size_to_drop(バイト単位)を超える場合、DROP クエリや TRUNCATE クエリを使用して削除することはできません。

この設定は、ClickHouseサーバーの再起動なしで適用されます。制限を解除する別の方法は、 <clickhouse-path>/flags/force_drop_table ファイルを作成することです。

デフォルト値: 50 GB。

値が0の場合、すべてのテーブルを制限なしに削除できます。

<max_table_size_to_drop>0</max_table_size_to_drop>

max_partition_size_to_drop

パーティションの削除の制限。

MergeTree テーブルのサイズが max_partition_size_to_drop(バイト単位)を超える場合、DROP PARTITION クエリを使用してパーティションを削除できません。

この設定は、ClickHouseサーバーの再起動なしで適用されます。制限を解除するもう一つの方法は、 <clickhouse-path>/flags/force_drop_table ファイルを作成することです。

デフォルト値: 50 GB。

値が0の場合、パーティションを制限なしに削除できます。

:::note この制限は、テーブルの削除やテーブルの切り捨てには制限を設けません。詳しくは、max_table_size_to_drop を参照してください。 :::

<max_partition_size_to_drop>0</max_partition_size_to_drop>

max_thread_pool_size

ClickHouseは、グローバルスレッドプールからクエリを処理するためのスレッドを使用します。クエリを処理するためのアイドルスレッドがない場合、プールに新しいスレッドが作成されます。max_thread_pool_size は、プール内の最大スレッド数を制限します。

可能な値:

  • 正の整数。

デフォルト値: 10000

<max_thread_pool_size>12000</max_thread_pool_size>

max_thread_pool_free_size

グローバルスレッドプール内のアイドルスレッドの数が max_thread_pool_free_size を超える場合、ClickHouseは一部のスレッドが占有するリソースを解放し、プールサイズを減少させます。必要に応じてスレッドを再作成できます。

可能な値:

  • 正の整数。

デフォルト値: 1000

<max_thread_pool_free_size>1200</max_thread_pool_free_size>

thread_pool_queue_size

グローバルスレッドプールでスケジュールできるジョブの最大数。キューサイズを増やすと、より大きなメモリ使用につながります。この値を max_thread_pool_size と同じにしておくことが推奨されます。

可能な値:

  • 正の整数。
  • 0 — 制限なし。

デフォルト値: 10000

<thread_pool_queue_size>12000</thread_pool_queue_size>

max_io_thread_pool_size

ClickHouseはIO操作を行うためにIOスレッドプールのスレッドを使用します例: S3とのインタラクションmax_io_thread_pool_size はプール内のスレッドの最大数を制限します。

可能な値:

  • 正の整数。

デフォルト値: 100

max_io_thread_pool_free_size

IOスレッドプール内のアイドルスレッドの数が max_io_thread_pool_free_size を超える場合、ClickHouseはアイドルスレッドが占有するリソースを解放し、プールサイズを減少させます。必要に応じてスレッドを再作成できます。

可能な値:

  • 正の整数。

デフォルト値: 0

io_thread_pool_queue_size

IOスレッドプールでスケジュールできるジョブの最大数。

可能な値:

  • 正の整数。
  • 0 — 制限なし。

デフォルト値: 10000

max_backups_io_thread_pool_size

ClickHouseはS3バックアップのIO操作を行うためにバックアップIOスレッドプールのスレッドを使用します。max_backups_io_thread_pool_size はプール内のスレッドの最大数を制限します。

可能な値:

  • 正の整数。

デフォルト値: 1000

max_backups_io_thread_pool_free_size

バックアップIOスレッドプール内のアイドルスレッドの数が max_backup_io_thread_pool_free_size を超える場合、ClickHouseはアイドルスレッドが占有するリソースを解放し、プールサイズを減少させます。必要に応じてスレッドを再作成できます。

可能な値:

  • 正の整数。
  • ゼロ。

デフォルト値: 0

backups_io_thread_pool_queue_size

バックアップIOスレッドプールでスケジュールできるジョブの最大数。現在のS3バックアップロジックのため、このキューを無制限にしておくことが推奨されます。

可能な値:

  • 正の整数。
  • 0 — 制限なし。

デフォルト値: 0

background_pool_size

MergeTreeエンジンを使用するテーブルのバックグラウンドマージと変異を実行するスレッド数を設定します。この設定はClickHouseサーバーの起動時に default プロファイル設定から後方互換性のためにも適用できます。ランタイム中にスレッド数を増やすことしかできません。スレッド数を減らすにはサーバーを再起動する必要があります。この設定を調整することで、CPUとディスクの負荷を管理できます。プールサイズが小さいほど、CPUとディスクのリソースをより少なく利用しますが、バックグラウンドプロセスはより遅く進行し、最終的にはクエリ性能に影響を与える可能性があります。

変更する前に、number_of_free_entries_in_pool_to_lower_max_size_of_mergenumber_of_free_entries_in_pool_to_execute_mutation などの関連するMergeTree設定も確認してください。

可能な値:

  • 任意の正の整数。

デフォルト値: 16。

<background_pool_size>16</background_pool_size>

background_merges_mutations_concurrency_ratio

スレッド数と同時に実行できるバックグラウンドマージと変異の数との比率を設定します。例えば、比率が2で background_pool_size が16に設定されている場合、ClickHouseは32のバックグラウンドマージを同時に実行できます。これは、バックグラウンド操作が一時停止され延期される可能性があるからです。これにより小さなマージにより高い実行優先度が与えられる必要があります。この比率をランタイム中に増やすことしかできません。比率を下げるにはサーバーを再起動する必要があります。background_pool_size 設定と同様に、background_merges_mutations_concurrency_ratiodefault プロファイルから適用でき、後方互換性を保ちます。

可能な値:

  • 任意の正の整数。

デフォルト値: 2。

<background_merges_mutations_concurrency_ratio>3</background_merges_mutations_concurrency_ratio>

merges_mutations_memory_usage_soft_limit

マージと変異の操作を実行するために使用が許可されているRAMの制限を設定します。ゼロは無制限を意味します。ClickHouseがこの制限に達すると、新しいバックグラウンドマージまたは変異操作をスケジュールしませんが、すでにスケジュールされているタスクは実行し続けます。

可能な値:

  • 任意の正の整数。

<merges_mutations_memory_usage_soft_limit>0</merges_mutations_memory_usage_soft_limit>

merges_mutations_memory_usage_to_ram_ratio

デフォルトの merges_mutations_memory_usage_soft_limit 値は memory_amount * merges_mutations_memory_usage_to_ram_ratio として計算されます。

デフォルト値: 0.5

関連項目

async_load_databases

データベースとテーブルの非同期ロード。

true の場合、OrdinaryAtomicReplicated エンジンを持つすべての非システムデータベースがClickHouseサーバーの起動後に非同期でロードされます。system.asynchronous_loader テーブル、tables_loader_background_pool_sizetables_loader_foreground_pool_size サーバー設定を参照してください。まだロードされていないテーブルにアクセスしようとするクエリは、正確にこのテーブルが起動されるまで待機します。ロードジョブが失敗した場合、そのクエリはエラーを再スローします(async_load_databases = false の場合にサーバー全体をシャットダウンする代わりに。少なくとも1つのクエリによって待機されているテーブルは高い優先度でロードされます。データベースに関するDDLクエリは正確にそのデータベースが起動するまで待機します。待機クエリの総数を制限するために max_waiting_queries 設定を考慮してください。

false の場合、サーバーが起動した際にすべてのデータベースがロードされます。

デフォルトは false です。

<async_load_databases>true</async_load_databases>

async_load_system_database

システムテーブルの非同期ロード。system データベース内に大量のログテーブルやパーツがある場合に便利です。async_load_databases 設定とは独立しています。

true に設定すると、OrdinaryAtomicReplicated エンジンを持つすべてのシステムデータベースがClickHouseサーバーの起動後に非同期でロードされます。system.asynchronous_loader テーブル、tables_loader_background_pool_sizetables_loader_foreground_pool_size サーバー設定を参照してください。まだロードされていないシステムテーブルにアクセスしようとするクエリは、正確にこのテーブルが起動されるまで待機します。少なくとも1つのクエリによって待機されているテーブルは高い優先度でロードされます。また、待機クエリの総数を制限するために max_waiting_queries 設定を考慮してください。

false の場合、システムデータベースはサーバーの開始前にロードされます。

デフォルトは false です。

<async_load_system_database>true</async_load_system_database>

tables_loader_foreground_pool_size

フォアグラウンドプールでロードジョブを実行するスレッド数を設定します。フォアグラウンドプールは、サーバーがポートのリッスンを開始する前にテーブルを同期的にロードし、テーブルのロードを待機しているクエリを処理するために使用されます。フォアグラウンドプールはバックグラウンドプールよりも優先度が高いです。フォアグラウンドプールでジョブが実行中の場合、バックグラウンドプールでジョブが開始されません。

可能な値:

  • 任意の正の整数。
  • ゼロ。利用可能なすべてのCPUを使用します。

デフォルト値: 0。

tables_loader_background_pool_size

バックグラウンドプールで非同期ロードジョブを実行するスレッド数を設定します。バックグラウンドプールは、サーバーの開始後に、テーブルのロードが待機されていない場合にテーブルを非同期でロードするために使用されます。テーブルが多い場合、バックグラウンドプールのスレッド数を低く保つことが利益をもたらす可能性があります。この場合、同時クエリ実行のためのCPUリソースが確保されます。

可能な値:

  • 任意の正の整数。
  • ゼロ。利用可能なすべてのCPUを使用します。

デフォルト値: 0。

merge_tree

MergeTree テーブルの微調整。

詳しくは、MergeTreeSettings.h ヘッダーファイルを参照してください。

<merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>

metric_log

デフォルトでは無効です。

有効化

メトリクス履歴収集を手動でオンにするには system.metric_log を使用し、次の内容で /etc/clickhouse-server/config.d/metric_log.xml を作成します。

<clickhouse>
    <metric_log>
        <database>system</database>
        <table>metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </metric_log>
</clickhouse>

無効化

metric_log 設定を無効にするには、次の内容で /etc/clickhouse-server/config.d/disable_metric_log.xml を作成します。

<clickhouse>
<metric_log remove="1" />
</clickhouse>

replicated_merge_tree

ReplicatedMergeTree テーブルの微調整。

この設定は優先順位が高いです。

詳しくは、MergeTreeSettings.h ヘッダーファイルを参照してください。

<replicated_merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</replicated_merge_tree>

openSSL

SSLクライアント/サーバー設定。

SSLのサポートは libpoco ライブラリにより提供されます。利用可能な設定オプションは SSLManager.h に説明されています。デフォルト値は SSLManager.cpp にあります。

サーバー/クライアント設定のキー:

  • privateKeyFile PEM証明書の秘密鍵ファイルへのパス。このファイルには同時に鍵と証明書が含まれることがあります。
  • certificateFile PEM形式のクライアント/サーバー証明書ファイルへのパス。privateKeyFile が証明書を含む場合は省略可能です。
  • caConfig (デフォルト: なし) 信頼できるCA証明書を含むファイルまたはディレクトリへのパス。これがファイルを指す場合、PEM形式であり複数のCA証明書を含むことが可能です。ディレクトリを指す場合、CA証明書ごとに一つの.pemファイルを含む必要があります。ファイル名はCAサブジェクト名のハッシュ値で検索されます。詳細は SSL_CTX_load_verify_locations のマニュアルページを参照してください。
  • verificationMode (デフォルト: relaxed) ノードの証明書を確認する方法。詳細は Context クラスの説明を参照してください。使用可能な値: none, relaxed, strict, once.
  • verificationDepth (デフォルト: 9) 検証チェーンの最大長。証明書チェーンの長さが設定値を超えると検証は失敗します。
  • loadDefaultCAFile (デフォルト: true) OpenSSLのビルトインCA証明書を使用するかどうか。ClickHouseはビルトインCA証明書がファイル /etc/ssl/cert.pem(もしくはディレクトリ /etc/ssl/certs)にある、または環境変数 SSL_CERT_FILE(もしくは SSL_CERT_DIR)で指定されたファイル(もしくはディレクトリ)にあると見なします。
  • cipherList (デフォルト: ALL:!ADH:!LOW:!EXP:!MD5:!3DES:@STRENGTH) - 対応するOpenSSLの暗号化方式。
  • cacheSessions (デフォルト: false) セッションのキャッシュを有効または無効にします。sessionIdContext と組み合わせて使用する必要があります。受容可能な値: true, false.
  • sessionIdContext (デフォルト: ${application.name}) サーバーが各生成された識別子に追加するランダム文字列のユニークセット。文字列の長さは SSL_MAX_SSL_SESSION_ID_LENGTH を超えてはなりません。このパラメータは、セッションをキャッシュするサーバーとクライアントがキャッシュを要求する場合に役立ちます。デフォルト値: ${application.name}.
  • sessionCacheSize (デフォルト: 1024*20) サーバーがキャッシュするセッションの最大数。値が0の場合、無制限になります。
  • sessionTimeout (デフォルト: 2h) サーバーでセッションをキャッシュする時間。
  • extendedVerification (デフォルト: false) 有効化されている場合、証明書のCNまたはSANがピアのホスト名と一致することを確認します。
  • requireTLSv1 (デフォルト: false) TLSv1接続を要求します。受容可能な値: true, false.
  • requireTLSv1_1 (デフォルト: false) TLSv1.1接続を要求します。受容可能な値: true, false.
  • requireTLSv1_2 (デフォルト: false) TLSv1.2接続を要求します。受容可能な値: true, false.
  • fips (デフォルト: false) OpenSSLのFIPSモードをアクティブにします。ライブラリのOpenSSLバージョンがFIPSをサポートしている場合に対応しています。
  • privateKeyPassphraseHandler (デフォルト: KeyConsoleHandler) 秘密鍵にアクセスするためのパスフレーズを要求するクラスPrivateKeyPassphraseHandlerサブクラス。例: <privateKeyPassphraseHandler>, <name>KeyFileHandler</name>, <options><password>test</password></options>, </privateKeyPassphraseHandler>.
  • invalidCertificateHandler (デフォルト: RejectCertificateHandler) 無効な証明書を確認するためのクラスCertificateHandlerサブクラス。例: <invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>.
  • disableProtocols (デフォルト: "") 使用が許可されていないプロトコル。
  • preferServerCiphers (デフォルト: false) クライアントに対してサーバー暗号化方式を優先します。

設定例

<openSSL>
    <server>
        <!-- openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt -->
        <certificateFile>/etc/clickhouse-server/server.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile>
        <!-- openssl dhparam -out /etc/clickhouse-server/dhparam.pem 4096 -->
        <dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
        <verificationMode>none</verificationMode>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <!-- セルフサイン用: <verificationMode>none</verificationMode> -->
        <invalidCertificateHandler>
            <!-- セルフサイン用: <name>AcceptCertificateHandler</name> -->
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

part_log

MergeTree に関連するイベントのロギング。たとえば、データの追加やマージ。このログを使用してマージアルゴリズムをシミュレートし、その特性を比較できます。また、マージプロセスを視覚化できます。

ログは system.part_log テーブルに記録され、別のファイルには記録されません。このテーブルの名前は table パラメーターで構成可能です(以下を参照)。

ロギングを構成するには、以下のパラメーターを使用します:

  • database データベース名。
  • table システムテーブル名。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプすべきかどうかを示す。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

<part_log>
    <database>system</database>
    <table>part_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</part_log>

path

データを含むディレクトリへのパス。

:::note トレイリングスラッシュは必須です。 :::

<path>/var/lib/clickhouse/</path>

query_log

log_queries=1 設定を使用して受信したクエリのロギング設定。

クエリは、 system.query_log テーブルに記録され、別のファイルには記録されません。テーブルの名前を以下の table パラメーターで変更できます。

ロギングを構成するには、以下のパラメーターを使用します:

  • database データベース名。
  • table クエリが記録されるシステムテーブルの名前。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかの指示。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

テーブルが存在しない場合、ClickHouseはそれを作成します。ClickHouseサーバーが更新された際にクエリログの構造が変更された場合、古い構造のテーブルはリネームされ、新しいテーブルが自動的に作成されます。

<query_log>
    <database>system</database>
    <table>query_log</table>
    <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_log>

query_metric_log

デフォルトでは無効です。

有効化

メトリクス履歴収集を手動でオンにするには system.query_metric_log を使用し、次の内容で /etc/clickhouse-server/config.d/query_metric_log.xml を作成します。

<clickhouse>
    <query_metric_log>
        <database>system</database>
        <table>query_metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </query_metric_log>
</clickhouse>

無効化

query_metric_log 設定を無効にするには、次の内容で /etc/clickhouse-server/config.d/disable_query_metric_log.xml を作成します。

<clickhouse>
<query_metric_log remove="1" />
</clickhouse>

query_cache

クエリキャッシュ の設定。

次の設定が使用可能です:

  • max_size_in_bytes: キャッシュの最大サイズバイト単位。0はクエリキャッシュが無効であることを意味します。デフォルト値: 10737418241 GiB
  • max_entries: キャッシュに保存される SELECT クエリ結果の最大数。デフォルト値: 1024
  • max_entry_size_in_bytes: キャッシュに保存される SELECT クエリ結果が持つ可能な最大サイズ(バイト単位)。デフォルト値: 10485761 MiB
  • max_entry_size_in_rows: キャッシュに保存される SELECT クエリ結果が持つ可能な最大行数。デフォルト値: 300000003000万

変更された設定は直ちに適用されます。

:::note クエリキャッシュのデータはDRAMに割り当てられます。メモリが不足している場合は、max_size_in_bytes の値を小さく設定するか、クエリキャッシュを完全に無効にしてください。 :::

<query_cache>
    <max_size_in_bytes>1073741824</max_size_in_bytes>
    <max_entries>1024</max_entries>
    <max_entry_size_in_bytes>1048576</max_entry_size_in_bytes>
    <max_entry_size_in_rows>30000000</max_entry_size_in_rows>
</query_cache>

query_thread_log

log_query_threads=1 設定を使用して受信したクエリのスレッドをロギングするための設定。

クエリは system.query_thread_log テーブルに記録され、別のファイルには記録されません。テーブルの名前を以下の table パラメーターで変更できます。

ロギングを構成するには、以下のパラメーターを使用します:

  • database データベース名。
  • table クエリが記録されるシステムテーブルの名前。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかの指示。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

テーブルが存在しない場合、ClickHouseはそれを作成します。ClickHouseサーバーが更新された際にクエリスレッドログの構造が変更された場合、古い構造のテーブルはリネームされ、新しいテーブルが自動的に作成されます。

<query_thread_log>
    <database>system</database>
    <table>query_thread_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_thread_log>

query_views_log

log_query_views=1 設定を使用して受信したクエリに依存するビューライブビュー、Materialized View など)をロギングするための設定。

クエリは system.query_views_log テーブルに記録され、別のファイルには記録されません。テーブルの名前を以下の table パラメーターで変更できます。

ロギングを構成するには、以下のパラメーターを使用します:

  • database データベース名。
  • table クエリが記録されるシステムテーブルの名前。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかの指示。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

テーブルが存在しない場合、ClickHouseはそれを作成します。ClickHouseサーバーが更新された際にクエリビューのログの構造が変更された場合、古い構造のテーブルはリネームされ、新しいテーブルが自動的に作成されます。

<query_views_log>
    <database>system</database>
    <table>query_views_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_views_log>

text_log

テキストメッセージをログに記録するための text_log システムテーブルの設定。

パラメータ:

  • level — テーブルに保存される最大メッセージレベル(デフォルトは Trace)。
  • database — データベース名。
  • table — テーブル名。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds — メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかを示す。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

<clickhouse>
    <text_log>
        <level>notice</level>
        <database>system</database>
        <table>text_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <partition_by>event_date</partition_by> -->
        <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine>
    </text_log>
</clickhouse>

trace_log

trace_log システムテーブルの操作に関する設定。

パラメータ:

  • database — テーブルを保存するためのデータベース。
  • table — テーブル名。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds — メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

デフォルトのサーバー構成ファイル config.xml には、以下の設定セクションが含まれます。

<trace_log>
    <database>system</database>
    <table>trace_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</trace_log>

asynchronous_insert_log

非同期インサートを記録するための asynchronous_insert_log システムテーブルの設定。

パラメータ:

  • database — データベース名。
  • table — テーブル名。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by が定義されている場合は使用できません。
  • flush_interval_milliseconds — メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかを示す。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)

<clickhouse>
    <asynchronous_insert_log>
        <database>system</database>
        <table>asynchronous_insert_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
    </asynchronous_insert_log>
</clickhouse>

crash_log

crash_log システムテーブルの操作に関する設定。

パラメータ:

  • database — テーブルを保存するためのデータベース。
  • table — テーブル名。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds — メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかを示す。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

デフォルトのサーバー構成ファイル config.xml には、以下の設定セクションが含まれます。

<crash_log>
    <database>system</database>
    <table>crash_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1024</max_size_rows>
    <reserved_size_rows>1024</reserved_size_rows>
    <buffer_size_rows_flush_threshold>512</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</crash_log>

backup_log

BACKUP および RESTORE 操作を記録するための backup_log システムテーブルの設定。

パラメータ:

  • database — データベース名。
  • table — テーブル名。
  • partition_by — システムテーブルの カスタムパーティションキーengine が定義されている場合は使用できません。
  • order_by - システムテーブルの カスタムソートキーengine が定義されている場合は使用できません。
  • engine - システムテーブルの MergeTreeエンジン定義partition_by または order_by が定義されている場合は使用できません。
  • flush_interval_milliseconds — メモリ中のバッファからテーブルにデータをフラッシュするための間隔。
  • max_size_rows ログの最大行数。未フラッシュのログ数が最大サイズに達すると、ログはディスクにダンプされます。 デフォルト: 1048576。
  • reserved_size_rows ログのために事前に割り当てられたメモリサイズ(行数)。 デフォルト: 8192。
  • buffer_size_rows_flush_threshold 行数のしきい値で、これに達すると、ログをバックグラウンドでディスクにフラッシュします。 デフォルト: max_size_rows / 2
  • flush_on_crash - クラッシュ時にログをディスクにダンプするかどうかを示す。 デフォルト: false。
  • storage_policy テーブルで使用するストレージポリシーの名前(オプション)。
  • settings - MergeTreeの動作を制御する 追加パラメーター(オプション)。

<clickhouse>
    <backup_log>
<database>system</database>
<table>backup_log</table>
<flush_interval_milliseconds>1000</flush_interval_milliseconds>
<partition_by>toYYYYMM(event_date)</partition_by>
<max_size_rows>1048576</max_size_rows>
<reserved_size_rows>8192</reserved_size_rows>
<buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
<flush_on_crash>false</flush_on_crash>
<!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
</backup_log>
</clickhouse>

query_masking_rules

正規表現に基づくルールで、クエリや全てのログメッセージに適用され、サーバーログであるsystem.query_logsystem.text_logsystem.processesテーブル、およびクライアントに送信されるログに保存される前に適用されます。これにより、SQLクエリからの機密データ名前、メール、個人識別子やクレジットカード番号などがログに漏洩するのを防ぐことができます。

<query_masking_rules>
    <rule>
        <name>hide SSN</name>
        <regexp>(^|\D)\d{3}-\d{2}-\d{4}($|\D)</regexp>
        <replace>000-00-0000</replace>
    </rule>
</query_masking_rules>

設定フィールド:

  • name - ルールの名前(オプショナル)
  • regexp - RE2互換の正規表現必須
  • replace - 機密データのための置換文字列(オプショナル、デフォルトでは六つのアスタリスク)

マスキングルールは、誤った形式のクエリや非解析可能なクエリからの機密データの漏洩を防ぐために、クエリ全体に適用されます。

system.eventsテーブルには、全体のクエリマスキングルールの一致数を示すカウンターQueryMaskingRulesMatchがあります。

分散クエリ用には、各サーバーを別々に設定する必要があります。そうしないと、他のノードに渡されるサブクエリがマスキングされずに保存されます。

remote_servers

分散テーブルエンジンおよびclusterテーブル関数で使用されるクラスターの設定。

<remote_servers incl="clickhouse_remote_servers" />

incl属性の値については、セクション「設定ファイル」を参照してください。

参照

timezone

サーバーのタイムゾーン。

UTCのタイムゾーンまたは地理的な場所のIANA識別子として指定します例えば、Africa/Abidjan

タイムゾーンは、DateTimeフィールドをテキスト形式で出力する際画面表示やファイルへの出力や、文字列からDateTimeを取得する際に、文字列とDateTime形式の間の変換に必要です。また、入力パラメータにタイムゾーンが指定されていない場合は、時間と日付を操作する関数で使用されます。

<timezone>Asia/Istanbul</timezone>

関連情報

tcp_port

TCPプロトコルを介してクライアントと通信するためのポート。

<tcp_port>9000</tcp_port>

tcp_port_secure

クライアントとのセキュア通信のためのTCPポート。OpenSSL設定とともに使用してください。

可能な値

正の整数。

デフォルト値

<tcp_port_secure>9440</tcp_port_secure>

mysql_port

MySQLプロトコルを介してクライアントと通信するためのポート。

可能な値

リッスンするポート番号を指定する正の整数、または無効にするための空の値。

<mysql_port>9004</mysql_port>

postgresql_port

PostgreSQLプロトコルを介してクライアントと通信するためのポート。

可能な値

リッスンするポート番号を指定する正の整数、または無効にするための空の値。

<postgresql_port>9005</postgresql_port>

tmp_path

大規模なクエリ処理のための一時データを保存するローカルファイルシステム上のパス。

:::note

  • 一時データの保存先を設定するためのオプションは、tmp_pathtmp_policytemporary_data_in_cacheの一つしか使用できません。
  • トレーリングスラッシュは必須です。 :::

<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>

user_files_path

ユーザーファイルを含むディレクトリ。file()テーブル関数、fileCluster()テーブル関数で使用されます。

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

user_scripts_path

ユーザースクリプトファイルを含むディレクトリ。可執行ユーザー定義関数Executable User Defined Functionsで使用されます。

<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>

user_defined_path

ユーザー定義ファイルを含むディレクトリ。SQLユーザー定義関数で使用されます。

<user_defined_path>/var/lib/clickhouse/user_defined/</user_defined_path>

users_config

以下を含むファイルのパス:

  • ユーザー設定。
  • アクセス権。
  • 設定プロファイル。
  • クオータ設定。

<users_config>users.xml</users_config>

wait_dictionaries_load_at_startup

この設定により、dictionaries_lazy_loadfalseの場合の動作を指定できます。 dictionaries_lazy_loadtrueの場合、この設定は何にも影響しません。)

wait_dictionaries_load_at_startupfalseの場合、サーバーは起動時にすべてのDictionaryの読み込みを開始し、読み込みと並行して接続を受け入れます。 Dictionaryが初めてクエリに使用されると、そのクエリはDictionaryが読み込まれるまで待機します。 wait_dictionaries_load_at_startupfalseに設定すると、ClickHouseの起動が速くなる可能性がありますが、一部のクエリは遅く実行される可能性がありますDictionaryの読み込みを待機する必要があるためです

wait_dictionaries_load_at_startuptrueの場合、サーバーはすべてのDictionaryの読み込みが完了するまで起動時に待機し正常に読み込まれるかどうかは問わず、その後に接続を受け入れるようになります。

デフォルトはtrueです。

<wait_dictionaries_load_at_startup>true</wait_dictionaries_load_at_startup>

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_load_balancing戦略によって解決された最初のzookeeperホストが利用できない場合、zookeeperセッションの寿命をフォールバックードに限定。これは負荷分散目的で、特定のzookeeperホストへの過剰な負荷を避けるために行われます。この設定はフォールバックセッションの最小期間を設定します。秒で設定。オプション。デフォルトは3時間。
  • fallback_session_lifetime.max - zookeeper_load_balancing戦略によって解決された最初のzookeeperホストが利用できない場合、zookeeperセッションの寿命をフォールバックードに限定。これは負荷分散目的で、特定のzookeeperホストへの過剰な負荷を避けるために行われます。この設定はフォールバックセッションの最大期間を設定します。秒で設定。オプション。デフォルトは6時間。
  • identity — ClickHouseサーバーが要求されたznodeにアクセスするために必要なユーザーとパスワード。オプション。
  • 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ードを選択し、再接続が発生すると次のードを選択。
  • use_compression — セキュリティープロトコルにおいて、Keeperプロトコル内の圧縮を有効にします。

設定の例

<zookeeper>
    <node>
        <host>example1</host>
        <port>2181</port>
    </node>
    <node>
        <host>example2</host>
        <port>2181</port>
    </node>
    <session_timeout_ms>30000</session_timeout_ms>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <!-- オプショナル。Chrootサフィックス。存在する必要があります。 -->
    <root>/path/to/zookeeper/node</root>
    <!-- オプショナル。ZookeeperダイジェストACL文字列。 -->
    <identity>user:password</identity>
    <!--<zookeeper_load_balancing>random / in_order / nearest_hostname / hostname_levenshtein_distance / first_or_random / round_robin</zookeeper_load_balancing>-->
    <zookeeper_load_balancing>random</zookeeper_load_balancing>
</zookeeper>

関連リンク

use_minimalistic_part_header_in_zookeeper

ZooKeeperにおけるデータパートヘッダーの保存方法。

この設定はMergeTreeファミリーにのみ適用されます。次の方法で指定できます:

  • config.xmlファイルのmerge_treeセクションでのグローバル指定。

    ClickHouseはサーバー上の全てのテーブルに対してこの設定を使用します。いつでも設定を変更できます。既存のテーブルは設定が変更されたときに動作を変更します。

  • 各テーブルごと。

    テーブルを作成するときに、対応するエンジン設定を指定します。この設定を持つ既存のテーブルの動作は、グローバル設定が変更されても変わりません。

可能な値

  • 0 — 機能はオフです。
  • 1 — 機能はオンです。

use_minimalistic_part_header_in_zookeeper = 1の場合、レプリケーテッドテーブルは、単一のznodeを使用してデータパートのヘッダーをコンパクトに保存します。テーブルに多くのカラムが含まれている場合、この保存方法はZooKeeper内で保存されるデータのボリュームを大幅に減少させます。

:::note use_minimalistic_part_header_in_zookeeper = 1を適用した後、ClickHouseサーバーをこの設定をサポートしないバージョンにダウングレードすることはできません。クラスター内のサーバーをアップグレードする際には慎重に行ってください。一度にすべてのサーバーをアップグレードすることは避けてください。ClickHouseの新しいバージョンをテスト環境またはクラスター内の一部のサーバーでテストすることがより安全です。

この設定で既に保存されたデータパートヘッダーは、以前の(非コンパクトな)表現に復元することはできません。 :::

デフォルト値: 0。

distributed_ddl

クラスター上で分散DDLクエリCREATE、DROP、ALTER、RENAMEを実行します。 ZooKeeperが有効な場合にのみ機能します。

<distributed_ddl>内で構成可能な設定は次のとおりです:

  • path: Keeper内で分散DDLクエリのためのtask_queueのパス
  • profile: DDLクエリを実行するために使用されるプロファイル
  • pool_size: 同時に実行できるON CLUSTERクエリの数
  • max_tasks_in_queue: キュー内に存在できるタスクの最大数。デフォルトは1,000
  • task_max_lifetime: ノードの年齢がこの値を超えた場合に削除。デフォルトは7 * 24 * 60 * 601週間
  • cleanup_delay_period: 最後のクリーンアップがこの期間以来行われていない場合、新しいードイベントを受信した後に清掃が開始されます。デフォルトは60秒

<distributed_ddl>
    <!-- ZooKeeperのDDLクエリのキューへのパス -->
    <path>/clickhouse/task_queue/ddl</path>

    <!-- DDLクエリを実行するために使用される設定 -->
    <profile>default</profile>

    <!-- 同時に実行できるON CLUSTERクエリの数を制御します。 -->
    <pool_size>1</pool_size>

    <!-- クリーンアップ設定(アクティブなタスクは削除されません) -->
    <!-- タスクのTTLを制御デフォルト1週間 -->
    <task_max_lifetime>604800</task_max_lifetime>

    <!-- クリーンアップが行われる頻度を制御(秒) -->
    <cleanup_delay_period>60</cleanup_delay_period>

    <!-- キュー内にあるタスクの最大数を制御します -->
    <max_tasks_in_queue>1000</max_tasks_in_queue>
</distributed_ddl>

access_control_path

SQLコマンドによって作成されたユーザーやロールの設定をClickHouseサーバーが保存するフォルダへのパス。

デフォルト値: /var/lib/clickhouse/access/

関連情報

user_directories

設定ファイルに含まれるセクション:

  • 事前定義されたユーザーを含む設定ファイルへのパス。
  • SQLコマンドによって作成されたユーザーが保存されるフォルダへのパス。
  • SQLコマンドによって作成され、複製されたユーザーが保存されるZooKeeperードのパスエクスペリメンタル

このセクションが指定されている場合、users_configおよびaccess_control_pathのパスは使用されません。

user_directoriesセクションは任意の数の項目を含むことができ、項目の順序はその優先順位を意味します(上位の項目は優先順位が高い)。

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <local_directory>
        <path>/var/lib/clickhouse/access/</path>
    </local_directory>
</user_directories>

ユーザー、ロール、行ポリシー、クオータ、プロファイルはZooKeeperにも保存できます

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <replicated>
        <zookeeper_path>/clickhouse/access/</zookeeper_path>
    </replicated>
</user_directories>

memoryセクション — 情報の保存をメモリにのみ行い、ディスクへの書き込みを行わない、ldapセクション — 情報の保存をLDAPサーバーに依存する、というセクションも定義できます。

LDAPサーバーをリモートユーザーディレクトリとして、ローカルに定義されていないユーザーとして追加するには、単一のldapセクションを指定し、以下のパラメータを定義します:

  • serverldap_servers設定セクションで定義されたLDAPサーバー名の一つ。このパラメータは必須で空にできません。
  • roles — LDAPサーバーから取得した各ユーザーに割り当てられるローカルで定義されたロールのリストを持つセクション。ロールが指定されていない場合、認証後ユーザーは何のアクションも実行できません。列挙されたロールのいずれかが認証時にローカルで定義されていない場合、認証は不正なパスワードであるかのように失敗します。

<ldap>
    <server>my_ldap_server</server>
    <roles>
        <my_local_role1 />
        <my_local_role2 />
    </roles>
</ldap>

total_memory_profiler_step

メモリのピーク割り当て手順ごとにスタックトレースを取得するメモリサイズ(バイト単位)を設定します。データはquery_idが空文字列に等しいsystem.trace_logシステムテーブルに保存されます。

可能な値:

  • 正の整数。

デフォルト値:4194304

total_memory_tracker_sample_probability

ランダム割り当ておよび開放の収集を有効にし、system.trace_logシステムテーブルにMemorySampleとして指定された確率で書き込みます。確率は、割り当てまたは開放時のサイズに関係なく、各操作に適用されます。事前にトラッキングされていないメモリ量が無視されないメモリ制限(デフォルト値は4MiBを超えるときにのみサンプリングが行われます。total_memory_profiler_stepが低い場合、これをさらに低くすることができます。非常に詳細にサンプリングするには、total_memory_profiler_step1に設定できます。

可能な値:

  • 正の整数。
  • 0 — ランダムな割り当ておよび開放のsystem.trace_logシステムテーブルへの書き込みは無効。

デフォルト値:0

compiled_expression_cache_size

コンパイルされた式のキャッシュサイズ(バイト単位)を設定します。

可能な値:

  • 正の整数。

デフォルト値:134217728

compiled_expression_cache_elements_size

コンパイルされた式のキャッシュサイズ(要素単位)を設定します。

可能な値:

  • 正の整数。

デフォルト値:10000

display_secrets_in_show_and_select

SHOWおよびSELECTクエリで、テーブル、データベース、テーブル関数、およびDictionaryの機密情報の表示を有効または無効にします。

機密情報を表示したいユーザーは format_display_secrets_in_show_and_selectフォーマット設定 をオンにし、 displaySecretsInShowAndSelect特権を持たねばなりません。

可能な値:

  • 0 — 無効。
  • 1 — 有効。

デフォルト値0。

proxy

S3ストレージ、S3テーブル関数、そしてURL関数で現在サポートされているHTTPおよびHTTPSリクエストのプロキシサーバーを定義します。

プロキシサーバーは、環境変数、プロキシリスト、リモートプロキシリゾルバで定義できます。

特定のホストに対するプロキシサーバーのバイパスも、no_proxyを使用してサポートされています。

環境変数

http_proxyhttps_proxyの環境変数を指定してください。これにより、特定のプロトコル用のプロキシサーバーを指定できます。システム上で設定されている場合は、シームレスに機能します。

これは、特定のプロトコルに対して1つのプロキシサーバーがあり、そのプロキシサーバーが変更されない場合に最もシンプルなアプローチです。

プロキシリスト

このアプローチでは、1つまたは複数のプロトコルに対するプロキシサーバーを指定することができます。複数のプロキシサーバーが定義されている場合、ClickHouseはサーバー間で負荷を分散するためにラウンドロビンベースでさまざまなプロキシを使用します。特定のプロトコルに対して複数のプロキシサーバーがあり、プロキシサーバーのリストが変更されない場合には、最もシンプルなアプローチです。

設定テンプレート

<proxy>
    <http>
        <uri>http://proxy1</uri>
        <uri>http://proxy2:3128</uri>
    </http>
    <https>
        <uri>http://proxy1:3128</uri>
    </https>
</proxy>

<proxy> フィールド

  • <http> - 1つ以上のHTTPプロキシのリスト
  • <https> - 1つ以上のHTTPSプロキシのリスト

<http>および<https>フィールド

  • <uri> - プロキシのURI

リモートプロキシリゾルバ

プロキシサーバーが動的に変わる可能性があります。その場合、リゾルバのエンドポイントを定義できます。ClickHouseはそのエンドポイントに空のGETリクエストを送信し、リモートリゾルバはプロキシのホストを返すべきです。それをClickHouseは次のテンプレートを使用してプロキシURIを形成します: {proxy_scheme}://{proxy_host}:{proxy_port}

設定テンプレート

<proxy>
    <http>
        <resolver>
            <endpoint>http://resolver:8080/hostname</endpoint>
            <proxy_scheme>http</proxy_scheme>
            <proxy_port>80</proxy_port>
            <proxy_cache_time>10</proxy_cache_time>
        </resolver>
    </http>

    <https>
        <resolver>
            <endpoint>http://resolver:8080/hostname</endpoint>
            <proxy_scheme>http</proxy_scheme>
            <proxy_port>3128</proxy_port>
            <proxy_cache_time>10</proxy_cache_time>
        </resolver>
    </https>
</proxy>

<proxy> フィールド

  • <http> - 1つ以上のリゾルバのリスト
  • <https> - 1つ以上のリゾルバのリスト

<http>および<https>フィールド

  • <resolver> - リゾルバのエンドポイントなどの詳細情報。 複数の<resolver>要素を配置できますが、特定のプロトコルに対しては最初の<resolver>のみが使用されます。それ以降の<resolver>要素は無視されます。つまり、必要であれば、ロードバランシングはリモートリゾルバによって実装する必要があります。

<resolver> フィールド

  • <endpoint> - プロキシリゾルバのURI
  • <proxy_scheme> - 最終プロキシURIのプロトコル。 httphttpsのいずれかが使用可能です。
  • <proxy_port> - プロキシリゾルバのポート番号
  • <proxy_cache_time> - リゾルバからの値をClickHouseがキャッシュする時間秒単位。この値を0に設定すると、ClickHouseは各HTTPまたはHTTPSリクエストごとにリゾルバにアクセスします。

優先順位

プロキシ設定の優先順位は以下の通りです:

  1. リモートプロキシリゾルバ
  2. プロキシリスト
  3. 環境変数

ClickHouseは要求されたプロトコルについて最も優先されるリゾルバタイプを確認します。それが定義されていない場合、次に優先されるリゾルバタイプを確認し、環境リゾルバに到達します。よって、リゾルバタイプはミックスで使用できます。

disable_tunneling_for_https_requests_over_http_proxy

デフォルトでは、トンネリング(すなわちHTTP CONNECT)はHTTPプロキシ経由でのHTTPSリクエスト作成に使用されます。この設定でそれを無効にできます。

no_proxy

デフォルトでは、すべてのリクエストはプロキシを通じて行われます。特定のホストに対してそれを無効にするために、no_proxy変数を設定する必要があります。 プロキシ設定でリストおよびリモートリゾルバと一緒に使うためには<proxy>句の中で設定し、環境リゾルバには環境変数として設定できます。 IPアドレス、ドメイン、サブドメイン、そして完全バイパス用の'*'ワイルドカードをサポートしています。先頭のドットはカールと同様に削除されます。

例:

以下の設定では、clickhouse.cloudとそのすべてのサブドメイン(例、auth.clickhouse.cloud)へのプロキシリクエストがバイパスされます。 GitLabに関しても、先頭にドットがあっても同様です。gitlab.comおよびabout.gitlab.comはどちらもプロキシをバイパスします。

<proxy>
    <no_proxy>clickhouse.cloud,.gitlab.com</no_proxy>
    <http>
        <uri>http://proxy1</uri>
        <uri>http://proxy2:3128</uri>
    </http>
    <https>
        <uri>http://proxy1:3128</uri>
    </https>
</proxy>

max_materialized_views_count_for_table

テーブルにアタッチされたマテリアライズドビューの数の制限。 ここでは直接依存するビューのみが考慮されており、1つのビューの上にもう1つのビューを作成することは考慮されません。

デフォルト値:0

format_alter_operations_with_parentheses

真の場合、フォーマットされたクエリで変更操作が括弧で囲まれます。これにより、フォーマットされた変更クエリの解析が曖昧さを減少させます。

タイプ: Bool

デフォルト: 0

ignore_empty_sql_security_in_create_view_query

真の場合、ClickHouseはCREATE VIEWクエリの空のSQLセキュリティステートメントのデフォルトを書き込みません。

:::note この設定は移行期間にのみ必要であり、24.4で廃止予定です。 :::

タイプ: Bool

デフォルト: 1

merge_workload

マージと他のワークロード間でのリソースの利用および共有方法を調整するために使用されます。指定された値はすべてのバックグラウンドマージに対してworkload設定値として使用されます。マージツリー設定によってオーバーライド可能です。

デフォルト値: "default"

参照

mutation_workload

突然のトランスフォーメーションと他のワークロード間でのリソースの利用および共有方法を調整するために使用されます。指定された値はすべてのバックグラウンド突然のトランスフォーメーションに対してworkload設定値として使用されます。マージツリー設定によってオーバーライド可能です。

デフォルト値: "default"

参照

workload_path

すべてのCREATE WORKLOADおよびCREATE RESOURCEクエリのためのストレージとして使用されるディレクトリ。デフォルトでは、サーバーの作業ディレクトリ内の/workload/フォルダが使用されます。

<workload_path>/var/lib/clickhouse/workload/</workload_path>

参照

workload_zookeeper_path

すべてのCREATE WORKLOADおよびCREATE RESOURCEクエリを保存するために使用されるZooKeeperードへのパス。整合性のために、すべてのSQL定義がこの単一のznodeの値として保存されます。デフォルトでは、ZooKeeperは使用されず、定義はディスクに保存されます。

<workload_zookeeper_path>/clickhouse/workload/definitions.sql</workload_zookeeper_path>

参照

max_authentication_methods_per_user

ユーザーが作成される際や認証メソッドを変更する際に指定できる認証メソッドの最大数。 この設定を変更しても既存のユーザーには影響しません。制限を超える認証に関連する作成/変更クエリは失敗しますが、認証に関連しない作成/変更クエリは成功します。

タイプ: UInt64

デフォルト値: 100

0は無制限を意味します

use_legacy_mongodb_integration

レガシーMongoDB統合実装を使用します。非推奨です。

タイプ: Bool

デフォルト値: true