メインコンテンツへスキップ
システムテーブル system.merge_tree_settings には、グローバルに設定された MergeTree の設定が表示されます。 MergeTree の設定は、サーバー設定ファイルの merge_tree セクションで設定するか、各 MergeTree テーブルごとに CREATE TABLE ステートメントの SETTINGS 句で個別に指定できます。 設定 max_suspicious_broken_parts をカスタマイズする例: サーバー設定ファイルで、すべての MergeTree テーブルのデフォルトを設定します:
<merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>
特定のテーブルに設定する場合:
CREATE TABLE tab
(
    `A` Int64
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS max_suspicious_broken_parts = 500;
特定のテーブルの設定は、ALTER TABLE ... MODIFY SETTING を使用して変更します。
ALTER TABLE tab MODIFY SETTING max_suspicious_broken_parts = 100;

-- グローバルデフォルトにリセット(system.merge_tree_settings の値)
ALTER TABLE tab RESET SETTING max_suspicious_broken_parts;

MergeTree の設定

adaptive_write_buffer_initial_size

適応型書き込みバッファの初期サイズ

add_implicit_sign_column_constraint_for_collapsing_engine

true の場合、CollapsingMergeTree または VersionedCollapsingMergeTree テーブルの sign カラムに暗黙的な制約を追加し、有効な値 (1-1) のみを許可します。

add_minmax_index_for_block_number_column

有効にすると、永続仮想カラム _block_number に対して暗黙的な min-max (スキッピング) 索引が追加されます。 有効にするには enable_block_number_column = 1 が必要です。索引が構築されるのは挿入時ではなくマージ時のみです。 挿入時点では block number はまだ暫定値であるため、定数に対する索引になってしまいます。

add_minmax_index_for_block_offset_column

有効にすると、永続仮想カラム _block_offset に対して暗黙的な min-max (スキッピング) 索引が追加されます。 この設定を有効にするには enable_block_offset_column = 1 が必要です。索引が作成されるのはマージ時のみで、 挿入時には作成されません。

add_minmax_index_for_numeric_columns

有効にすると、テーブル内のすべての数値カラムに min-max (スキッピング) 索引が追加されます。

add_minmax_index_for_string_columns

有効にすると、テーブル内のすべての文字列カラムに min-max (スキッピング) 索引が追加されます。

add_minmax_index_for_temporal_columns

有効にすると、テーブル内のすべての Date、Date32、Time、Time64、DateTime、DateTime64 カラムに min-max (スキッピング) 索引が追加されます

allow_coalescing_columns_in_partition_or_order_key

有効にすると、CoalescingMergeTree テーブルの coalescing カラムを パーティションキーまたはソートキーに使用できます。

allow_commit_order_projection

_block_number_block_offset の仮想カラムを格納するコミット順プロジェクションを有効にし、マージ後も元の挿入順序を保持します。 この設定を使用するには、enable_block_number_columnenable_block_offset_column を有効にする必要があります。

allow_experimental_replacing_merge_with_cleanup

is_deleted カラムを持つ ReplacingMergeTree に対して、実験的な CLEANUP マージを許可します。有効にすると、OPTIMIZE ... FINAL CLEANUP を使用してパーティション内のすべてのパーツを手動で 1 つのパーツにマージし、削除済みの行を削除できるようになります。 また、設定 min_age_to_force_merge_secondsmin_age_to_force_merge_on_partition_only および enable_replacing_merge_with_cleanup_for_min_age_to_force_merge により、この種のマージをバックグラウンドで自動的に実行できるようにもなります。

allow_experimental_reverse_key

MergeTree のソートキーで降順の並び順をサポートします。この 設定は、時系列分析や Top-N クエリで特に有用であり、 データを新しい時刻から古い時刻への逆時系列順で保存することで、クエリ パフォーマンスの最適化に役立ちます。 allow_experimental_reverse_key を有効にすると、MergeTree テーブルの ORDER BY 句内で降順の並び順を定義できます。これにより、降順クエリでは ReadInReverseOrder の代わりに、より効率的な ReadInOrder 最適化を 使用できます。
CREATE TABLE example
(
time DateTime,
key Int32,
value String
) ENGINE = MergeTree
ORDER BY (time DESC, key)  -- 'time' フィールドの降順
SETTINGS allow_experimental_reverse_key = 1;

SELECT * FROM example WHERE key = 'xxx' ORDER BY time DESC LIMIT 10;
クエリで ORDER BY time DESC を指定すると、ReadInOrder が適用されます。 デフォルト値: false

allow_floating_point_partition_key

浮動小数点数をパーティションキーとして使用することを許可します。 設定可能な値:
  • 0 — 浮動小数点数のパーティションキーは許可されません。
  • 1 — 浮動小数点数のパーティションキーは許可されます。

allow_nullable_key

主キーとして Nullable 型を使用できるようにします。

allow_part_offset_column_in_projections

プロジェクションの SELECT クエリで ‘_part_offset’ カラムの使用を許可します。

allow_reduce_blocking_parts_task

shared merge tree テーブルのブロッキングパーツを削減するバックグラウンドタスク。 ClickHouse Cloud でのみ利用可能

allow_remote_fs_zero_copy_replication

この設定はまだ実運用には適していないため、production環境では使用しないでください。

allow_summing_columns_in_partition_or_order_key

有効にすると、SummingMergeTree テーブルで合計対象のカラムを パーティションキーまたはソートキーに使用できます。

allow_suspicious_indices

同一の式を持つプライマリ/セカンダリ索引およびソートキーを拒否します

allow_vertical_merges_from_compact_to_wide_parts

compact パーツから wide パーツへの垂直マージを許可します。この設定は、すべてのレプリカで同じ値にする必要があります。

alter_column_secondary_index_mode

セカンダリ索引の対象となっているカラムを変更する ALTER コマンドを許可するかどうか、および 許可する場合にどのような処理を行うかを設定します。デフォルトでは、そのような ALTER コマンドは許可され、索引は再構築されます。 設定可能な値:
  • rebuild (default): ALTER コマンドで変更されるカラムの影響を受けるセカンダリ索引を再構築します。
  • throw: 例外を送出して、明示的なセカンダリ索引の対象となっているカラムに対する ALTER をすべて禁止します。暗黙的な索引はこの制限の対象外で、再構築されます。
  • drop: 依存するセカンダリ索引を削除します。新しいパーツには索引が作成されないため、再作成するには MATERIALIZE INDEX が必要です。
  • compatibility: 元の動作に合わせます。ALTER ... MODIFY COLUMN では throwALTER ... UPDATE/DELETE では rebuild になります。
  • ignore: 上級者向けのオプションです。索引を不整合な状態のまま残すため、誤ったクエリ結果を招く可能性があります。

always_fetch_merged_part

true の場合、このレプリカはパーツのマージを一切行わず、常に他のレプリカからマージ済みパーツをダウンロードします。 設定可能な値:
  • true, false
mutations/replaces/detaches などの際は、 ハードリンクではなく常にデータをコピーします。

apply_patches_on_merge

true の場合、マージ時にパッチパートが適用されます

assign_part_uuids

有効にすると、新しい各 パーツ に対して一意の パーツ 識別子が割り当てられます。 有効にする前に、すべてのレプリカが UUID バージョン 4 をサポートしていることを確認してください。

async_block_ids_cache_update_wait_ms

各 insert の反復処理で async_block_ids_cache の更新を待機する時間

async_insert

true の場合、INSERT クエリのデータはキューに格納され、後でバックグラウンドでテーブルに書き出されます。

auto_statistics_types

適切なすべてのカラムに対して自動的に計算される統計タイプのカンマ区切りリストです。 サポートされる統計タイプ: tdigest, countmin, minmax, nullcount, uniq.

background_task_preferred_step_execution_time_ms

マージ または mutation の 1 ステップの実行にかかる目標時間。1 ステップの実行に これより長い時間がかかる場合は、この値を超えることがあります

cache_populated_by_fetch

この設定は ClickHouse Cloud でのみ適用されます。
cache_populated_by_fetch が無効 (デフォルト) になっている場合、新しいデータパーツは、それらのパーツを必要とするクエリが実行されたときにのみファイルシステムキャッシュに読み込まれます。 有効にすると、cache_populated_by_fetch により、そのような動作をトリガーするクエリがなくても、すべてのノードが storage から新しいデータパーツを各自のファイルシステムキャッシュに読み込むようになります。 関連項目

cache_populated_by_fetch_filename_regexp

この設定は ClickHouse Cloud にのみ適用されます。
空でない場合、フェッチ後に cache にプリウォームされるのは、この正規表現に一致するファイルのみです (cache_populated_by_fetch が有効な場合) 。

check_delay_period

廃止された設定で、効果はありません。

check_sample_column_is_correct

サンプリングまたはサンプリング式に使用するカラムのデータ型が正しいかどうかを、テーブル作成時にチェックする機能を有効にします。データ型は、符号なし 整数型のいずれかである必要があります: UInt8, UInt16, UInt32, UInt64 設定可能な値:
  • true — チェックは有効です。
  • false — テーブル作成時のチェックは無効です。
デフォルト値: true デフォルトでは、ClickHouseサーバーはテーブル作成時に、サンプリングまたはサンプリング式に使用するカラムのデータ型をチェックします。すでに 不正なサンプリング式を持つテーブルがあり、起動時にサーバーが例外を発生させないようにしたい場合は、 check_sample_column_is_correctfalse に設定してください。

clean_deleted_rows

廃止された設定で、効果はありません。

cleanup_delay_period

古いキュー内のログ、ブロックのハッシュ値、およびパーツをクリーンアップする最小の周期です。

cleanup_delay_period_random_add

cleanup_delay_period に 0 から x 秒までの一様分布の値を加算し、 テーブル数が非常に多い場合に発生するサンダリングハード問題と、それに続く ZooKeeper への DoS を回避します。

cleanup_thread_preferred_points_per_iteration

バックグラウンドクリーンアップの推奨バッチサイズです (point は抽象的な単位ですが、1 point はおおよそ 1 つの挿入された block に相当します) 。

cleanup_threads

廃止された設定で、効果はありません。

clone_replica_zookeeper_create_get_part_batch_size

レプリカのクローン時に ZooKeeper の multi-create get-part リクエストで使用するバッチサイズ。

columns_and_secondary_indices_sizes_lazy_calculation

テーブルの初期化時ではなく、最初のリクエスト時にカラムとセカンダリ索引のサイズを遅延計算します。

columns_to_prewarm_mark_cache

mark cache をプリウォームする対象のカラム一覧 (有効な場合) 。空の場合は、すべてのカラムを意味します

compact_parts_max_bytes_to_buffer

ClickHouse Cloud でのみ使用できます。compact パーツ内の 1 つのストライプに書き込める最大バイト数

compact_parts_max_granules_to_buffer

ClickHouse Cloud でのみ利用できます。compact パーツ内の 1 つのストライプに書き込めるグラニュールの最大数

compact_parts_merge_max_bytes_to_prefetch_part

ClickHouse Cloud でのみ利用できます。マージ中に compact パーツ全体を一括でメモリに読み込むための最大サイズです。

compatibility_allow_sampling_expression_not_in_primary_key

主キーに含まれない sampling expression を持つ table の作成を許可します。これは、 後方互換性のために、不正な table を含む状態で server を一時的に実行できるようにする場合にのみ 必要です。

compress_marks

マークは圧縮に対応しており、mark file のサイズを削減し、ネットワーク経由での 転送を高速化します。

compress_per_column_in_compact_parts

compact パーツの物理レイアウトを制御します。true (デフォルト) の場合、グラニュール内の各カラムが 新しい圧縮ブロックとして開始されるため、ClickHouse は不要なカラムの ディスク読み取りをスキップできます。false の場合、グラニュール内のすべてのカラムが同じ圧縮ブロックに格納されるため、 圧縮率は向上しますが、読み取り時にはより多くのデータを展開する必要があります。 これは、常にすべてのカラムを読み取るワークロード (例: プロジェクション) に適しています。

compress_primary_key

主キーの圧縮をサポートし、主キーファイルのサイズを削減するとともに、 ネットワーク転送を高速化します。

concurrent_part_removal_threshold

パーツの同時削除 (max_part_removal_threadsを参照) は、 非アクティブなデータパーツ数が少なくともこの値に達した場合にのみ有効化されます。

concurrent_part_removal_threshold_for_remote_disk

concurrent_part_removal_threshold と同じですが、削除対象の パーツのうち少なくとも 1 つがリモートディスクに保存されている場合に使用されます。デフォルト値が低めに 設定されているのは、リモートストレージ上での各パーツ削除では通常ネットワーク ラウンドトリップが必要になるためです (たとえばオブジェクトストレージでは、パーツごとに 1 回の HTTP DELETE が発生します) 。そのため、 100 パーツでも直列に削除すると、DROP TABLE が数十秒間ブロックされることがあります。

deduplicate_merge_projection_mode

classic ではない MergeTree、つまり (Replicated, Shared) MergeTree を使用する table に対して PROJECTION の作成を許可するかどうかを指定します。ignore オプションは 純粋に互換性のためのものであり、誤った結果を招く可能性があります。許可する場合は、 PROJECTION の merge 時に何を行うか (drop または rebuild) を指定します。したがって、 classic MergeTree ではこの setting は無視されます。また、OPTIMIZE DEDUPLICATE も 制御しますが、その効果は MergeTree family のすべてのメンバーに及びます。 lightweight_mutation_projection_mode オプションと同様に、これも part level です。 設定可能な値:
  • ignore
  • throw
  • drop
  • rebuild

default_compression_codec

テーブル定義で特定のカラムに圧縮codecが定義されていない場合に使用される、デフォルトの圧縮codecを指定します。 カラムに適用する圧縮codecの選択順序は次のとおりです。
  1. テーブル定義でそのカラムに対して定義された圧縮codec
  2. default_compression_codec で定義された圧縮codec (この設定)
  3. compression 設定で定義されたデフォルトの圧縮codec デフォルト値: 空文字列 (未定義) 。

detach_not_byte_identical_parts

マージまたはミューテーションの後、あるレプリカ上のデータパーツが他のレプリカ上のデータパーツとバイト単位で一致しない場合に、そのデータパーツをデタッチするかどうかを切り替えます。無効な場合、データパーツは削除されます。こうしたパーツを後で分析したい場合は、この設定を有効にしてください。 この設定は、データレプリケーション が有効な MergeTree テーブルに適用されます。 設定可能な値:
  • 0 — パーツは削除されます。
  • 1 — パーツはデタッチされます。

detach_old_local_parts_when_cloning_replica

失われたレプリカを修復する際、古いローカルパーツを削除しません。 設定可能な値:
  • true
  • false

disable_detach_partition_for_zero_copy_replication

ゼロコピー レプリケーションでの DETACH PARTITION クエリを無効にします。

disable_fetch_partition_for_zero_copy_replication

ゼロコピー レプリケーションでの FETCH PARTITION クエリを無効にします。

disable_freeze_partition_for_zero_copy_replication

ゼロコピー レプリケーションでは、FREEZE PARTITION クエリを無効にします。

ディスク

ストレージに使用するディスクの名前です。storage policy の代わりに指定できます。

distributed_index_analysis_min_indexes_bytes_to_activate

分散索引解析を有効にするために必要な、ディスク上の索引 (データスキッピング索引および主キー) の最小サイズ (非圧縮)

distributed_index_analysis_min_parts_to_activate

分散索引解析が有効になる最小パーツ数

dynamic_serialization_version

Dynamic データ型のシリアル化バージョンです。互換性の維持に必要です。 設定可能な値:
  • v1
  • v2
  • v3

enable_block_number_column

各行の _block_number カラムの永続化を有効にします。

enable_block_offset_column

マージ時に仮想カラム _block_offset を永続的に保存します。

enable_index_granularity_compression

可能な場合、索引 granularity の値をメモリ上で圧縮します

enable_max_bytes_limit_for_min_age_to_force_merge

設定 min_age_to_force_merge_seconds および min_age_to_force_merge_on_partition_only に 設定 max_bytes_to_merge_at_max_space_in_pool を 適用するかどうかを指定します。 設定可能な値:
  • true
  • false

enable_mixed_granularity_parts

index_granularity_bytes 設定による granule サイズ制御への移行を有効または無効にします。バージョン 19.11 より前は、granule サイズを制限する設定は index_granularity しかありませんでした。index_granularity_bytes 設定により、大きな行 (数十〜数百メガバイト) を持つテーブルからデータを選択する際の ClickHouse のパフォーマンスが向上します。 大きな行を持つテーブルがある場合は、そのテーブルでこの設定を有効にすると、SELECT クエリの効率を向上できます。

enable_replacing_merge_with_cleanup_for_min_age_to_force_merge

パーティションを単一の パーツ にマージする際に、ReplacingMergeTree で CLEANUP マージを使用するかどうかを指定します。 この設定を有効にするには、allow_experimental_replacing_merge_with_cleanupmin_age_to_force_merge_seconds、および min_age_to_force_merge_on_partition_only を有効にする必要があります。 設定可能な値:
  • true
  • false

enable_the_endpoint_id_with_zookeeper_name_prefix

ReplicatedMergeTree テーブルで、ZooKeeper 名のプレフィックス付き Endpoint ID を有効にします。

enable_vertical_merge_algorithm

Vertical merge アルゴリズムの使用を有効にします。

enforce_index_structure_match_on_partition_manipulation

この設定がパーティション操作クエリ (ATTACH/MOVE/REPLACE PARTITION) の宛先テーブルで有効になっている場合、ソーステーブルと宛先テーブルの索引およびPROJECTIONは同一である必要があります。そうでない場合、宛先テーブルはソーステーブルの索引およびPROJECTIONをすべて含んでいれば問題ありません。

escape_index_filenames

26.1 より前は、セカンダリ索引用に作成されるファイル名内の特殊文字をエスケープしていなかったため、 索引名に含まれる一部の文字によってパーツが壊れる可能性がありました。これは純粋に互換性のために追加されたものです。名前に非 ASCII 文字を含む索引がある古いパーツを 読み込む場合を除き、変更しないでください。

escape_variant_subcolumn_filenames

MergeTree テーブルの Wide パーツにある Variant データ型のサブカラム用に作成されるファイル名中の特殊文字をエスケープします。互換性のために必要です。

exclude_deleted_rows_for_part_size_in_merge

有効にすると、マージするパーツを選択する際に、データパーツの推定実サイズ (つまり、DELETE FROM によって削除された行を除いたサイズ) が使用されます。この動作がトリガーされるのは、この設定を有効にした後に実行された DELETE FROM の影響を受けたデータパーツに限られます。 設定可能な値:
  • true
  • false
関連項目

exclude_materialize_skip_indexes_on_merge

指定したカンマ区切りのスキップ索引のリストを、マージ中に構築および保存しないようにします。これは materialize_skip_indexes_on_merge が false の場合は効果がありません。 除外されたスキップ索引は、明示的な MATERIALIZE INDEX クエリ、または materialize_skip_indexes_on_insert セッション設定に応じた INSERT 時には、引き続き構築および保存されます。 例:
CREATE TABLE tab
(
a UInt64,
b UInt64,
INDEX idx_a a TYPE minmax,
INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple() SETTINGS exclude_materialize_skip_indexes_on_merge = 'idx_a';

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- この設定は INSERT には影響しない

-- idx_a はバックグラウンドまたは OPTIMIZE TABLE FINAL による明示的なマージ時の更新から除外される

-- リストを指定することで複数のインデックスを除外できる
ALTER TABLE tab MODIFY SETTING exclude_materialize_skip_indexes_on_merge = 'idx_a, idx_b';

-- デフォルト設定。マージ時の更新から除外されるインデックスはない
ALTER TABLE tab MODIFY SETTING exclude_materialize_skip_indexes_on_merge = '';

execute_merges_on_single_replica_time_threshold

この設定の値が 0 より大きい場合、直ちにマージを開始するのは 1 つのレプリカのみで、他のレプリカはローカルでマージを実行する代わりに、その時間まで結果のダウンロードを待機します。選択されたレプリカがその時間内にマージを完了しなかった場合は、標準の動作にフォールバックします。 設定可能な値:
  • 任意の正の整数。

fault_probability_after_part_commit

テスト用です。変更しないでください。

fault_probability_before_part_commit

テスト用です。変更しないでください。

finished_mutations_to_keep

完了した mutation に関するレコードを保持する件数。ゼロの場合は、 すべて保持します。

force_read_through_cache_for_merges

マージ時にリードスルーのファイルシステムキャッシュを強制します

fsync_after_insert

挿入される各パーツに対して fsync を実行します。これにより insert のパフォーマンスが大幅に低下するため、wide パーツとの併用は推奨されません。

fsync_part_directory

すべてのパーツ操作 (書き込み、リネームなど) の完了後に、パートディレクトリに対して fsync を実行します。

in_memory_parts_enable_wal

廃止された設定で、効果はありません。

in_memory_parts_insert_sync

廃止された設定で、効果はありません。

inactive_parts_to_delay_insert

テーブル内の1つのパーティションにある非アクティブなパーツ数が inactive_parts_to_delay_insert の値を超えると、INSERT は意図的に 遅延されます。
server がパーツを十分な速度でクリーンアップできない場合に有用です。
設定可能な値:
  • 任意の正の整数。

inactive_parts_to_throw_insert

単一のパーティション内の非アクティブなパーツ数が inactive_parts_to_throw_insert の値を超えると、INSERT は中断され、 次のエラーになります。
“非アクティブなパーツが多すぎます (N)。パーツのクリーンアップ処理が 挿入処理に比べて著しく遅くなっています” exception.”
設定可能な値:
  • 任意の正の整数。

index_granularity

索引のマーク間にあるデータ行数の最大値。つまり、1 つの主キー値に 対応する行数です。

index_granularity_bytes

データグラニュールの最大サイズ (バイト単位) 。 グラニュールのサイズを行数のみによって制限するには、0 に設定します (非推奨) 。

initialization_retry_period

テーブル初期化の再試行間隔 (秒) 。

kill_delay_period

廃止された設定で、効果はありません。

kill_delay_period_random_add

廃止された設定です。効果はありません。

kill_threads

廃止された設定であり、効果はありません。

lightweight_mutation_projection_mode

デフォルトでは、論理削除 DELETE は プロジェクションを持つテーブルでは動作しません。これは、プロジェクション内の行が DELETE 操理の影響を受ける可能性があるためです。そのため、デフォルト値は throw です。ただし、この オプションを使うと動作を変更できます。値を drop または rebuild にすると、プロジェクションがある場合でも削除を実行できます。drop を指定すると プロジェクションは削除されるため、現在のクエリではその削除処理により 高速になる可能性がありますが、以降のクエリではプロジェクションがアタッチされていないため 遅くなる可能性があります。rebuild を指定すると プロジェクションが再構築されるため、現在のクエリの性能に影響する可能性がありますが、 以降のクエリは高速化される可能性があります。なお、これらのオプションが 作用するのはパートレベルだけです。つまり、変更対象にならないパート内の プロジェクションは、drop や rebuild をトリガーすることなく、そのまま維持されます。 設定可能な値:
  • throw
  • drop
  • rebuild

load_existing_rows_count_for_old_parts

exclude_deleted_rows_for_part_size_in_merge とあわせて有効にすると、既存のデータパーツ内の削除済み行数がテーブルの起動時に計算されます。なお、これによりテーブル起動時の読み込みが遅くなる場合があります。 設定可能な値:
  • true
  • false
関連項目

lock_acquire_timeout_for_background_operations

マージ、ミューテーション などのバックグラウンド処理で、table ロックの取得を試みてから失敗と見なされるまでの秒数。

map_buckets_coefficient

平均的な map サイズからバケット数を計算する際に、sqrt および linear map_buckets_strategy で使用される係数です。 sqrt 戦略の場合: round(map_buckets_coefficient * sqrt(avg_map_size))linear 戦略の場合: round(map_buckets_coefficient * avg_map_size)map_buckets_strategyconstant の場合は無視されます。

map_buckets_min_avg_size

with_buckets シリアライゼーションの適用に必要な最小の平均 Map サイズ (1行あたりのキー数) 。 平均 Map サイズがこの値を下回る場合は、他のバケット設定に関係なく、単一のバケットが使用されます。 値を 0 にすると、このしきい値は無効になり、常にバケット化戦略が適用されます。 この設定は、効果がほとんど見込めない小さな Map に対して、バケット化シリアライゼーションのオーバーヘッドを避けるのに役立ちます。

map_buckets_strategy

平均の Map サイズに基づいて、with_buckets Map シリアライゼーションにおけるバケット数の選択戦略を制御します。 設定可能な値:
  • constant — 平均の Map サイズに関係なく、常に max_buckets_in_map をバケット数として使用します。
  • sqrt — バケット数として round(map_buckets_coefficient * sqrt(avg_map_size)) を使用し、値は [1, max_buckets_in_map] の範囲に制限されます。
  • linear — バケット数として round(map_buckets_coefficient * avg_map_size) を使用し、値は [1, max_buckets_in_map] の範囲に制限されます。

map_serialization_version

Map カラムで使用するシリアライゼーション方式を制御します。 設定可能な値:
  • basic — Map に標準のシリアライゼーションを使用します。
  • with_buckets — シリアライゼーション時にキーをバケットに分割します。バケットを使用すると、Map から個々のキーをより効率的に読み取れます。
with_buckets serialization のバケット数は、max_buckets_in_mapmap_buckets_strategy によって決まります。

map_serialization_version_for_zero_level_parts

この設定では、insert 時に作成されるゼロレベルのパーツについて、 Map カラムに別のシリアル化バージョンを指定できます。 insert 時のパフォーマンス低下を避けるため、ゼロレベルのパーツでは basic シリアライゼーションを維持しつつ、マージ済みパーツでは with_buckets を使用する場合に役立ちます。

marks_compress_block_size

mark の圧縮ブロックサイズです。実際に圧縮するブロックのサイズを指定します。

marks_compression_codec

marks に使用される圧縮コーデックです。marks は十分に小さく、キャッシュされるため、 デフォルトの圧縮は ZSTD(3) です。

materialize_skip_indexes_on_merge

有効にすると、マージ時に新しいパーツのスキップ索引が作成され、保存されます。 無効な場合は、明示的な MATERIALIZE INDEX または INSERT 時 に作成・保存できます。 より細かく制御するには、exclude_materialize_skip_indexes_on_merge も参照してください。

materialize_statistics_on_merge

有効にすると、マージ時に新しいパーツの統計情報が作成・保存されます。 無効な場合、統計情報は明示的な MATERIALIZE STATISTICS または INSERT 時 に作成・保存できます

materialize_ttl_recalculate_only

MATERIALIZE TTL 実行時にのみ、TTL 情報を再計算します

max_avg_part_size_for_too_many_parts

‘parts_to_delay_insert’ と ‘parts_to_throw_insert’ に基づく「パーツが多すぎる」チェックは、平均パーツサイズ (該当する パーティション内) が指定されたしきい値を超えない場合にのみ有効になります。平均パーツサイズが 指定されたしきい値を上回る場合、INSERT は遅延も拒否も されません。これにより、パーツが正常により大きなパーツへマージされるのであれば、単一 サーバー上の単一テーブルに数百テラバイトを保持できます。これは、 非アクティブなパーツ数や合計パーツ数に対するしきい値には影響しません。

max_buckets_in_map

Map シリアライゼーションにおけるバケットの最大数です。with_buckets Map シリアライゼーションで使用されます。 実際のバケット数は map_buckets_strategy によって決まります。 許容される最大値は 256 です。

max_bytes_to_merge_at_max_space_in_pool

利用可能なリソースが十分にある場合に、複数のパーツを 1 つのパーツにマージするときの合計サイズの上限 (バイト単位) です。これは、自動バックグラウンドマージによって作成されるパーツの最大サイズの目安にほぼ相当します。 (0 はマージを無効にすることを意味します) 設定可能な値:
  • 任意の非負整数。
マージスケジューラは、パーティション内のパーツ数と各パーツのサイズを定期的に分析し、プール内に十分な空きリソースがあれば、バックグラウンドマージを開始します。マージは、マージ元パーツの合計サイズが max_bytes_to_merge_at_max_space_in_pool を超えるまで実行されます。 OPTIMIZE FINAL によって開始されたマージでは、max_bytes_to_merge_at_max_space_in_pool は無視されます (考慮されるのは空きディスク容量のみです) 。

max_bytes_to_merge_at_min_space_in_pool

バックグラウンドプールで利用可能なリソースが最小限のときに、1 つのパーツへ マージできるパーツの合計サイズ (バイト単位) の上限です。 設定可能な値:
  • 任意の正の整数。
max_bytes_to_merge_at_min_space_in_pool は、利用可能なディスク容量 (プール内) が不足している場合でもマージできるパーツの合計サイズの 上限を定義します。これは、小さなパーツの数を減らし、 Too many parts エラーが発生する可能性を下げるために必要です。 マージでは、マージ対象のパーツの合計サイズの 2 倍のディスク容量が予約されます。 そのため、ディスクの空き容量が少ない場合、空き容量自体はあるものの、 進行中の大規模なマージですでにその容量が予約されているため、 ほかのマージを開始できず、insert のたびに小さなパーツが 増えていく状況が発生することがあります。

max_cleanup_delay_period

古いキュー内のログ、ブロックのハッシュ、およびパーツをクリーンアップする最大周期です。

max_compress_block_size

table への書き込み用に圧縮する前の、非圧縮 data の block の最大サイズです。 この設定はグローバル Settings でも指定できます (max_compress_block_size setting を参照) 。table の作成時に指定した値は、この設定の グローバル値を上書きします。

max_concurrent_queries

MergeTree テーブルに関連して同時実行されるクエリの最大数。 クエリは、他の max_concurrent_queries 設定によっても引き続き制限されます。 設定可能な値:
  • 正の整数。
  • 0 — 制限なし。
デフォルト値: 0 (制限なし) 。
<max_concurrent_queries>50</max_concurrent_queries>

max_delay_to_insert

単一のパーティション内のアクティブなパーツ数が parts_to_delay_insert の値を超えた場合に、 INSERT の遅延を計算するために使用される、秒単位の値です。 設定可能な値:
  • 任意の正の整数。
INSERT の遅延 (ミリ秒) は、次の式で計算されます:
max_k = parts_to_throw_insert - parts_to_delay_insert
k = 1 + parts_count_in_partition - parts_to_delay_insert
delay_milliseconds = pow(max_delay_to_insert * 1000, k / max_k)
たとえば、あるパーティションにアクティブなパーツが 299 個あり、parts_to_throw_insert = 300、parts_to_delay_insert = 150、max_delay_to_insert = 1 の場合、INSERTpow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000 ミリ秒遅延されます。 バージョン 23.1 以降、この式は次のように変更されました。
allowed_parts_over_threshold = parts_to_throw_insert - parts_to_delay_insert
parts_over_threshold = parts_count_in_partition - parts_to_delay_insert + 1
delay_milliseconds = max(min_delay_to_insert_ms, (max_delay_to_insert * 1000)
* parts_over_threshold / allowed_parts_over_threshold)
たとえば、あるパーティションにアクティブなパーツが 224 個あり、parts_to_throw_insert = 300、parts_to_delay_insert = 150、max_delay_to_insert = 1、 min_delay_to_insert_ms = 10 の場合、INSERTmax( 10, 1 * 1000 * (224 - 150 + 1) / (300 - 150) ) = 500 ミリ秒だけ遅延されます。

max_delay_to_mutate_ms

未完了のミューテーションが多数ある場合の、MergeTree テーブルに対するミューテーションの最大遅延 (ミリ秒)

max_digestion_size_per_segment

廃止された設定で、効果はありません。

max_file_name_length

ハッシュ化せずにそのまま保持するファイル名の最大長です。 この設定は、replace_long_file_name_to_hash が有効な場合にのみ適用されます。 この設定の値には、ファイル拡張子の長さは含まれません。そのため、 ファイルシステムエラーを避けるには、最大ファイル名長 (通常は 255 バイト) よりも少し余裕を持たせて、それより小さい値に設定することを推奨します。

max_files_to_modify_in_alter_columns

変更 (削除、追加) の対象となるファイル数が この設定値を超える場合、ALTER は適用されません。 設定可能な値:
  • 任意の正の整数。
デフォルト値: 75

max_files_to_remove_in_alter_columns

削除するファイル数がこの 設定値を超える場合、ALTER は適用されません。 設定可能な値:
  • 任意の正の整数。

max_merge_delayed_streams_for_parallel_write

並列にフラッシュできるストリーム (カラム) の最大数です (マージにおける max_insert_delayed_streams_for_parallel_write に相当) 。有効なのは Vertical マージ のみです。

max_merge_selecting_sleep_ms

マージ対象のパーツが選択されなかった場合に、再度マージするパーツの選択を試みるまでの最大待機時間です。設定値を小さくすると、 大規模なクラスターでは background_schedule_pool での選択タスクが頻繁にトリガーされ、その結果、 ZooKeeper への大量のリクエストが発生します

max_number_of_merges_with_ttl_in_pool

プール内の有効期限 (TTL) エントリを含むマージ数が指定値を超えている場合、新たな有効期限 (TTL) 付きマージは割り当てられません。これは、通常のマージ用の空きスレッドを確保し、“パーツが多すぎる”を回避するためです。

max_number_of_mutations_for_replica

レプリカごとの part ミューテーション の数を、指定した値に制限します。 0 は、レプリカごとの ミューテーション 数に制限がないことを意味します (実行は 引き続き他の設定によって制約される場合があります) 。

max_part_loading_threads

廃止された設定で、何も行いません。

max_part_removal_threads

廃止された設定で、効果はありません。

max_partitions_to_read

1 つのクエリでアクセスできるパーティションの最大数を制限します。 テーブルの作成時に指定した設定値は、 クエリレベルの設定で上書きできます。 設定可能な値:
  • 任意の正の整数。
クエリ / セッション / プロファイル レベルで、 クエリ複雑度の設定 max_partitions_to_read を指定することもできます。

max_parts_in_total

テーブルのすべてのパーティションにあるアクティブなパーツの総数が max_parts_in_total の値を超えると、INSERTToo many parts (N) 例外で中断されます。 設定可能な値:
  • 任意の正の整数。
テーブル内のパーツ数が多いと、ClickHouse クエリのパフォーマンスが低下し、 ClickHouse の起動時間も長くなります。多くの場合、これは設計の誤り (パーティション化戦略の選択ミス、つまりパーティションが小さすぎること) が原因です。

max_parts_to_merge_at_once

一度にマージできるパーツの最大数です (0 の場合は無効) 。この設定は OPTIMIZE FINAL クエリには影響しません。

max_postpone_time_for_failed_mutations_ms

失敗した ミューテーション の最大延期時間です。

max_postpone_time_for_failed_replicated_fetches_ms

失敗したレプリケーションフェッチの最大延期時間。

max_postpone_time_for_failed_replicated_merges_ms

失敗したレプリケートマージの最大延期時間。

max_postpone_time_for_failed_replicated_tasks_ms

失敗したレプリケーションタスクの最大延期時間です。タスクが fetch、merge、mutation のいずれでもない場合に、この値が使用されます。

max_projections

MergeTreeプロジェクションの最大数。

max_replicated_fetches_network_bandwidth

replicated フェッチ における、ネットワーク経由のデータ転送速度の上限を 1 秒あたりのバイト数で制限します。この設定は、サーバーに適用される max_replicated_fetches_network_bandwidth_for_server 設定とは異なり、特定のテーブルに適用されます。 サーバーネットワークと特定テーブルのネットワークの両方を制限できますが、 その場合は、テーブルレベルの設定値をサーバーレベルの設定値より小さくする必要があります。 そうでない場合、サーバーは max_replicated_fetches_network_bandwidth_for_server 設定のみを考慮します。 この設定は、厳密に正確に適用されるわけではありません。 設定可能な値:
  • 正の整数。
  • 0 — 無制限。
デフォルト値: 0 用途 データをレプリケートして新しいノードを追加または置き換える際の 速度スロットリングに使用できます。

max_replicated_logs_to_keep

非アクティブなレプリカが存在する場合に、ClickHouse Keeper のログに保持できるレコード数を指定します。 この数を超えると、非アクティブなレプリカは失われたものと見なされます。 設定可能な値:
  • 任意の正の整数。

max_replicated_merges_in_queue

ReplicatedMergeTree のキューで、パーツのマージおよびミューテーションのタスクを同時にいくつまで許可するか。

max_replicated_merges_with_ttl_in_queue

ReplicatedMergeTree のキュー内で、有効期限 (TTL) 付きパーツのマージタスクを同時にいくつまで許可するか。

max_replicated_mutations_in_queue

ReplicatedMergeTree のキューで、mutation 中のパーツに対するタスクを同時に実行できる数。

max_replicated_sends_network_bandwidth

replicated 送信における、ネットワーク経由のデータ交換速度の上限を 1 秒あたりのバイト数で制限します。この設定は、サーバーに適用される max_replicated_sends_network_bandwidth_for_server 設定とは異なり、特定のテーブルに適用されます。 サーバーのネットワークと特定のテーブルのネットワークの両方を制限できますが、 その場合、テーブルレベルの設定値は サーバーレベルの設定値より小さくする必要があります。 そうしないと、サーバーは max_replicated_sends_network_bandwidth_for_server 設定のみを考慮します。 この設定は、厳密にそのとおり適用されるわけではありません。 設定可能な値:
  • 正の整数。
  • 0 — 無制限。
使用方法 新しいノードの追加または置き換えのためにデータをレプリケートする際、 速度を抑制するために使用できます。

max_suspicious_broken_parts

1 つのパーティション内の破損したパーツ数が max_suspicious_broken_parts の値を超えると、自動削除は許可されません。 設定可能な値:
  • 任意の正の整数。

max_suspicious_broken_parts_bytes

破損したパーツの合計サイズの上限。この値を超えると、自動削除は行われません。 設定可能な値:
  • 任意の正の整数。

max_uncompressed_bytes_in_patches

すべてのパッチパート内のデータの非圧縮サイズの上限 (バイト単位) 。 すべてのパッチパート内のデータ量がこの値を超えると、論理更新は拒否されます。 0 - 無制限。

merge_max_block_size

マージ対象のパーツからメモリに読み込まれる行数です。 設定可能な値:
  • 任意の正の整数。
マージ処理では、パーツから merge_max_block_size 行ごとの block で行を読み込み、 その後、結果をマージして新しいパーツに書き込みます。読み込まれた block は RAM に配置されるため、 merge_max_block_size はマージに必要な RAM 量に影響します。 そのため、平均行サイズが非常に大きいテーブルでは、マージ時に大量の RAM を消費する可能性があります (平均行サイズが 100kb の場合、10 個のパーツをマージすると、 (100kb * 10 * 8192) = 約 8GB の RAM になります) 。merge_max_block_size を小さくすると、 マージに必要な RAM 量は減らせますが、マージ速度は低下します。

merge_max_block_size_bytes

マージ処理で生成されるブロックのバイト数を指定します。デフォルトでは、 index_granularity_bytes と同じ値です。

merge_max_bytes_to_prewarm_cache

ClickHouse Cloud でのみ利用できます。マージ中に cache をプリウォームするパーツ (compact または packed) の最大サイズです。

merge_max_dynamic_subcolumns_in_compact_part

マージ後の compact データパートで、各カラムに作成できる動的サブカラムの最大数です。 これにより、データ型で指定された動的パラメータに関係なく、compact パーツ内の動的サブカラム数を制御できます。 たとえば、テーブルに JSON(max_dynamic_paths=1024) 型のカラムがあり、設定 merge_max_dynamic_subcolumns_in_compact_part が 128 に設定されている場合、 compact データパートへのマージ後、そのパーツ内の動的パス数は 128 に減少し、動的サブカラムとして書き込まれるのも 128 個のパスのみになります。

merge_max_dynamic_subcolumns_in_wide_part

マージ後の wide データパートで、各カラムに作成できる動的サブカラムの最大数です。 これにより、データ型で指定された動的パラメータに関係なく、wide データパート内に作成されるファイル数を削減できます。 たとえば、テーブルに JSON(max_dynamic_paths=1024) 型のカラムがあり、設定 merge_max_dynamic_subcolumns_in_wide_part が 128 に設定されている場合、 wide データパートへのマージ後は、そのパーツ内の動的パス数が 128 まで減り、動的サブカラムとして書き込まれるパスも 128 個のみになります。

merge_selecting_sleep_ms

マージ対象のパーツが選択されなかった場合に、再度マージするパーツの選択を試みるまでの最小待機時間です。設定値を小さくすると、background_schedule_pool での選択タスクが頻繁にトリガーされるため、大規模なクラスターでは ZooKeeper へのリクエストが大量に発生します

merge_selecting_sleep_slowdown_factor

マージ選択タスクのスリープ時間は、この係数を用いて調整されます。 マージするものがない場合はこの係数が乗算され、マージが割り当てられた場合は除算されます。

merge_selector_algorithm

マージの割り当てに使用するパーツを選択するアルゴリズム

merge_selector_base

選択されたマージの書き込み増幅に影響します (上級者向けの設定です。何をしているのか理解していない場合は変更しないでください) 。 Simple および StochasticSimple merge selector で有効です

merge_selector_blurry_base_scale_factor

パーティション内のパーツ数に応じて、このロジックがいつ有効になるかを制御します。係数が大きいほど、反応はより遅くなります。

merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once

シンプルな merge selector で、マージ対象の選択時に最大上限を引き下げるヒューリスティックを有効にします。 これにより同時実行されるマージの数が増え、TOO_MANY_PARTS エラーの緩和に役立つ可能性がありますが、同時に write amplification も増加します。

merge_selector_enable_heuristic_to_remove_small_parts_at_right

サイズが sum_size の指定された比率 (0.01) 未満である場合に、範囲の右側にあるパーツを除外するマージ対象パーツ選択のヒューリスティックを有効にします。 Simple および StochasticSimple の merge selector で機能します

merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent

低減カーブの構築式で使用する指数の値を制御します。指数を小さくするとマージ幅も小さくなり、その結果、write amplification が増加します。逆も同様です。

merge_selector_window_size

一度に確認するパーツ数。

merge_total_max_bytes_to_prewarm_cache

ClickHouse Cloud でのみ利用できます。マージ時に cache をプリウォームするパーツの合計最大サイズです。

merge_tree_clear_old_broken_detached_parts_ttl_timeout_seconds

廃止された設定であり、効果はありません。

merge_tree_clear_old_parts_interval_seconds

ClickHouse が古いパーツ、WAL、ミューテーションのクリーンアップを実行する間隔を、秒単位で設定します。 設定可能な値:
  • 任意の正の整数。

merge_tree_clear_old_temporary_directories_interval_seconds

ClickHouse が古い一時ディレクトリのクリーンアップを実行する間隔を、秒単位で設定します。 設定可能な値:
  • 任意の正の整数。

merge_tree_enable_clear_old_broken_detached

廃止された設定であり、効果はありません。

merge_with_recompression_ttl_timeout

再圧縮の有効期限 (TTL) を伴うマージを再度実行するまでの最小待機時間 (秒) 。

merge_with_ttl_timeout

delete TTL を伴うマージを再度実行するまでの最小待機時間 (秒) 。

merge_workload

マージと他のワークロードの間で、リソースの利用と共有を調整するために使用されます。指定した値は、このテーブルのバックグラウンドマージに対する workload 設定の値として使用されます。指定しない場合 (空文字列) は、代わりにサーバー設定 merge_workload が使用されます。 関連項目

min_absolute_delay_to_close

クローズしてリクエストの処理を停止し、status check で Ok を返さなくなるまでの最小の絶対遅延時間。

min_age_to_force_merge_on_partition_only

min_age_to_force_merge_seconds を、部分集合ではなくパーティション全体にのみ適用するかどうか。 デフォルトでは、設定 max_bytes_to_merge_at_max_space_in_pool は無視されます (enable_max_bytes_limit_for_min_age_to_force_merge を参照) 。 設定可能な値:
  • true, false

min_age_to_force_merge_seconds

範囲内のすべてのパーツの経過時間が min_age_to_force_merge_seconds の値を超えている場合、パーツをマージします。 デフォルトでは、設定 max_bytes_to_merge_at_max_space_in_pool を無視します (enable_max_bytes_limit_for_min_age_to_force_merge を参照) 。 設定可能な値:
  • 正の整数。

min_bytes_for_compact_part

廃止された設定で、何の効果もありません。

min_bytes_for_full_part_storage

ClickHouse Cloud でのみ利用できます。packed ではなくデータパートに full 型ストレージを使用するための最小の非圧縮サイズ (バイト単位)

min_bytes_for_wide_part

Wide フォーマットで保存できる データパート の最小バイト数/最小行数です。これら 2 つの設定は、片方だけ設定することも、両方設定することも、どちらも設定しないこともできます。

min_bytes_to_prewarm_caches

新しいパーツの mark cache と primary index cache をプリウォームするための最小サイズ (非圧縮バイト数)

min_bytes_to_rebalance_partition_over_jbod

volume ディスク JBOD 全体に新しい大きな パーツを分散配置する際に、バランシングを有効にする最小バイト数を設定します。 設定可能な値:
  • 正の整数。
  • 0 — バランシングは無効です。
使用方法 min_bytes_to_rebalance_partition_over_jbod 設定の値は、 max_bytes_to_merge_at_max_space_in_pool の値 / 1024 未満にしてはいけません。そうしないと、ClickHouse は例外をスローします。

min_columns_to_activate_adaptive_write_buffer

アダプティブな書き込みバッファを使用することで、カラム数の多いテーブルのメモリ使用量を削減できます。 設定可能な値:
  • 0 - 無制限
  • 1 - 常に有効

min_compress_block_size

次の mark の書き込み時に圧縮を行うために必要な、非圧縮データブロックの最小サイズです。この設定はグローバル設定でも指定できます (min_compress_block_size 設定を参照) 。テーブル作成時に指定した値は、この設定のグローバル値を 上書きします。

min_compressed_bytes_to_fsync_after_fetch

fetch 後に パーツ に対して fsync を実行するための、圧縮済みバイト数の最小値 (0 は無効)

min_compressed_bytes_to_fsync_after_merge

マージ後のパーツに対して fsync を実行するために必要な、圧縮後の最小バイト数 (0 は無効)

min_delay_to_insert_ms

1 つのパーティション内に未マージのパーツが多数ある場合に、MergeTree テーブルへのデータ挿入に適用される最小遅延 (ミリ秒) 。

min_delay_to_mutate_ms

未完了のミューテーションが多数ある場合の、MergeTree テーブルに対するミューテーションの最小遅延 (ミリ秒)

min_free_disk_bytes_to_perform_insert

データを insert するために、ディスク領域に最低限必要な空きバイト数です。利用可能な空きバイト数が min_free_disk_bytes_to_perform_insert 未満の場合、例外がスローされ、 insert は実行されません。この設定については、次の点に注意してください。
  • keep_free_space_bytes 設定が考慮されます。
  • INSERT 操作によって書き込まれるデータ量は考慮されません。
  • 正の値 (0 以外のバイト数) が指定されている場合にのみチェックされます
設定可能な値:
  • 任意の正の整数。
min_free_disk_bytes_to_perform_insertmin_free_disk_ratio_to_perform_insert の両方が指定されている場合、ClickHouse は、より多くの空きメモリで insert を実行できるほうの値を採用します。

min_free_disk_ratio_to_perform_insert

INSERT を実行するために必要な、空きディスク容量の総ディスク容量に対する最小比率です。0 から 1 までの 浮動小数点値である必要があります。なお、この設定には次の特徴があります。
  • keep_free_space_bytes 設定を考慮します。
  • INSERT 操作によって書き込まれるデータ量は考慮しません。
  • 正の (ゼロでない) 比率が指定されている場合にのみチェックされます
設定可能な値:
  • Float, 0.0 - 1.0
なお、min_free_disk_ratio_to_perform_insertmin_free_disk_bytes_to_perform_insert の両方が指定されている場合、ClickHouse は より多くの空きディスク容量を確保したまま insert を実行できる方の値を採用します。

min_index_granularity_bytes

データ granule の許容される最小サイズ (バイト単位) 。 誤って index_granularity_bytes が極端に小さいテーブルを作成してしまうことを防ぐための安全策です。

min_level_for_full_part_storage

ClickHouse Cloud でのみ利用できます。packed ではなく data パーツ に full タイプのストレージを使用するための最小 パーツ level。

min_level_for_wide_part

データパーツを Compact ではなく Wide フォーマットで作成するために必要な最小のパーツレベル。

min_marks_to_honor_max_concurrent_queries

max_concurrent_queries 設定を適用する際に、クエリが読み取る mark の最小数です。
クエリは引き続き、他の max_concurrent_queries 設定によって制限されます。
設定可能な値:
  • 正の整数。
  • 0 — 無効 (どのクエリにも max_concurrent_queries の制限は適用されません) 。
<min_marks_to_honor_max_concurrent_queries>10</min_marks_to_honor_max_concurrent_queries>

min_merge_bytes_to_use_direct_io

ストレージディスクへの direct I/O アクセスを使用するために必要な、マージ操作の最小データ量です。データパーツを マージする際、ClickHouse はマージ対象となるすべてのデータの総ストレージ容量を計算します。容量が min_merge_bytes_to_use_direct_io バイトを超える場合、ClickHouse は direct I/O インターフェイス (O_DIRECT オプション) を使用して、ストレージディスクにデータを読み書きします。 min_merge_bytes_to_use_direct_io = 0 の場合、direct I/O は無効になります。

min_parts_to_merge_at_once

マージセレクタが一度に選択してマージできるデータパーツの最小数。 (エキスパート向けの設定です。動作を理解していない場合は変更しないでください。) 0 - 無効。Simple および StochasticSimple マージセレクタで有効です。

min_relative_delay_to_close

他のレプリカとの遅延がこの最小値に達すると、クローズしてリクエストの処理を停止し、status check で OK を返さなくなります。

min_relative_delay_to_measure

絶対遅延がこの値未満でない場合にのみ、相対レプリカ遅延を計算します。

min_relative_delay_to_yield_leadership

廃止された設定で、効果はありません。

min_replicated_logs_to_keep

廃止されたものであっても、ZooKeeper のログ内の直近のレコードをこの数程度保持します。 これはテーブルの動作には影響せず、クリーンアップ前の ZooKeeper の ログを診断するためにのみ使用されます。 設定可能な値:
  • 任意の正の整数。

min_rows_for_compact_part

廃止された設定で、効果はありません。

min_rows_for_full_part_storage

ClickHouse Cloud でのみ利用できます。packed ではなく、データパーツに full 形式のストレージを使用するための最小行数

min_rows_for_wide_part

Compact ではなく Wide フォーマットのデータパーツを作成するために必要な最小行数。

min_rows_to_fsync_after_merge

merge 後に パーツ に対して fsync を実行する最小行数 (0 は無効)

mutation_workload

ミューテーションと他のワークロードの間で、リソースの利用と共有をどのように制御するかを調整するために使用します。指定した値は、このテーブルのバックグラウンドミューテーションに対する workload 設定の値として使用されます。指定しない場合 (空文字列) は、代わりにサーバー設定 mutation_workload が使用されます。 関連項目

non_replicated_deduplication_window

重複をチェックするためにハッシュサムを保持する、非レプリケートの MergeTree テーブルにおける、 直近に挿入されたブロック数です。 設定可能な値:
  • 任意の正の整数。
  • 0 (重複排除を無効化) 。
レプリケートテーブルと同様の重複排除メカニズムが使用されます ( replicated_deduplication_window 設定を参照) 。 作成されたパーツのハッシュサムは、ディスク上のローカルファイルに書き込まれます。

notify_newest_block_number

最新の block 番号を SharedJoin または SharedSet に通知します。ClickHouse Cloud でのみ利用できます。

nullable_serialization_version

Nullable(T) カラムに使用するシリアライゼーション方式を制御します。 設定可能な値:
  • basic — Nullable(T) に標準のシリアライゼーションを使用します。
  • allow_sparse — Nullable(T) でスパースエンコーディングを使用できるようにします。

number_of_free_entries_in_pool_to_execute_mutation

プール内の空きエントリ数が指定した数未満の場合、 パーツのミューテーションは実行されません。これは、通常の merges 用の空きスレッドを確保し、 「パーツが多すぎる」エラーを防ぐためです。 設定可能な値:
  • 任意の正の整数。
使用方法 number_of_free_entries_in_pool_to_execute_mutation 設定の値は、 background_pool_size の値

number_of_free_entries_in_pool_to_execute_optimize_entire_partition

プール内の空きエントリ数が指定値を下回っている場合、バックグラウンドで パーティション全体の最適化は実行されません (このタスクは、 min_age_to_force_merge_seconds を設定し、 min_age_to_force_merge_on_partition_only を有効にすると生成されます) 。 これは、通常のマージ用の空きスレッドを確保し、 「パーツが多すぎる」を回避するためです。 設定可能な値:
  • 正の整数。
number_of_free_entries_in_pool_to_execute_optimize_entire_partition 設定の値は、次の値より小さくなければなりません。 background_pool_size

number_of_free_entries_in_pool_to_lower_max_size_of_merge

プール (またはレプリケーションキュー) 内の空きエントリ数が指定した数を下回ると、 処理するマージの最大サイズ (またはキューに入れるマージの最大サイズ) を引き下げ始めます。 これは、小さなマージを処理できるようにし、長時間実行される マージでプールが埋まらないようにするためです。 設定可能な値:
  • 任意の正の整数。

number_of_mutations_to_delay

テーブルに少なくとも この数の未完了のミューテーションがある場合、テーブルのミューテーションを意図的に遅くします。 0 に設定すると無効になります

number_of_mutations_to_throw

table に未完了のミューテーションが少なくともこの数ある場合は、‘Too many mutations’ 例外をスローします。0 に設定すると無効になります

number_of_partitions_to_consider_for_merge

ClickHouse Cloud でのみ利用できます。マージ対象として考慮するパーティションは、上位 N 個までです。パーティションは重み付きでランダムに選択され、その重みは各パーティション内でマージ可能なデータパーツ数です。

object_serialization_version

JSON データ型のシリアル化バージョンです。互換性のために必要です。 設定可能な値:
  • v1
  • v2
  • v3
共有データのシリアル化バージョンを変更できるのは、バージョン v3 のみです。

object_shared_data_buckets_for_compact_part

compact パーツにおける JSON の 共有データ シリアライゼーション用の バケット 数です。map_with_buckets および advanced の 共有データ シリアライゼーションで機能します。 許容される最大値は 256 です。

object_shared_data_buckets_for_wide_part

wide パーツにおける JSON 共有データ シリアライゼーションのバケット数です。map_with_buckets および advanced の 共有データ シリアライゼーションで使用されます。 許容される最大値は 256 です。

object_shared_data_serialization_version

JSON データ型内の 共有データ のシリアル化バージョンです。 設定可能な値:
  • map - 共有データ を Map(String, String) として保存します
  • map_with_buckets - 共有データ を複数の独立した Map(String, String) カラムとして保存します。バケットを使用すると、共有データ から個々のパスを読み取る際の効率が向上します。
  • advanced - 共有データ から個々のパスを読み取る性能を大幅に向上させるために設計された、共有データ 向けの特別なシリアライゼーションです。 このシリアライゼーションでは追加情報を多く保存するため、ディスク上で 共有データ の保存サイズが増加する点に注意してください。
map_with_buckets および advanced シリアル化のバケット数は、次の設定によって決まります object_shared_data_buckets_for_compact_part/object_shared_data_buckets_for_wide_part

object_shared_data_serialization_version_for_zero_level_parts

この設定では、insert 時に作成されるゼロレベルのパーツについて、 JSON 型内の共有データに使用するシリアル化バージョンを指定できます。 advanced の共有データシリアライゼーションをゼロレベルのパーツで使用することは推奨されません。 挿入時間が大幅に増加する可能性があるためです。

old_parts_lifetime

サーバーの予期しない再起動時のデータ損失を防ぐために、非アクティブなパーツを保持する時間 (秒) 。 設定可能な値:
  • 任意の正の整数。
複数のパーツを新しいパーツにマージすると、ClickHouse は元の パーツを非アクティブとしてマークし、old_parts_lifetime 秒が経過してから削除します。 非アクティブなパーツは、現在実行中のクエリで使用されていない場合、つまり そのパーツの refcount が 1 の場合に削除されます。 新しいパーツに対しては fsync が呼び出されないため、しばらくの間、新しいパーツは サーバーの RAM (OS cache) にのみ存在します。サーバーが予期せず再起動すると、新しい パーツが失われたり破損したりする可能性があります。データを保護するため、非アクティブなパーツは すぐには削除されません。 起動時に ClickHouse はパーツの整合性をチェックします。マージされた パーツが破損している場合、ClickHouse は非アクティブなパーツをアクティブリストに戻し、 その後でもう一度マージします。続いて、破損したパーツは名前が変更され (broken_ プレフィックスが追加され) 、detached フォルダーに移動されます。マージされたパーツが 破損していない場合は、元の非アクティブなパーツの名前が変更され (ignored_ プレフィックスが追加され) 、detached フォルダーに移動されます。 dirty_expire_centisecs のデフォルト値 (Linux カーネルの設定) は 30 秒です (書き込まれたデータが RAM にのみ保持される最大時間) 。ただし、 ディスクシステムに高い負荷がかかっている場合、データの書き込みはさらに遅くなることがあります。実験的に、 old_parts_lifetime には 480 秒という値が選ばれており、この間に 新しいパーツが確実にディスクへ書き込まれるようになっています。

optimize_row_order

新しく挿入されたテーブルパーツの圧縮効率を高めるために、 insert 時に行順序を最適化するかどうかを制御します。 効果があるのは通常の MergeTree-engine テーブルのみです。 特殊な MergeTree engine テーブル (例: CollapsingMergeTree) では効果はありません。 MergeTree テーブルは、 (任意で) compression codecs を使って圧縮されます。 LZ4 や ZSTD のような汎用的な圧縮 codec は、データに pattern がある場合に 最大の圧縮率を実現します。同じ値が長く連続するデータは、通常非常によく圧縮されます。 この設定を有効にすると、ClickHouse は新しく 挿入されたパーツ内のデータを、新しいテーブルパーツの各カラムにおける 同一値の連続数が最小になるような行順序で格納しようとします。 言い換えると、同じ値の連続数が少ないほど、それぞれの連続区間は長くなり、 圧縮効率が高くなります。 最適な行順序を見つけることは、計算量の観点から現実的ではありません (NP-hard) 。 そのため、ClickHouse はヒューリスティックを用いて、元の行順序よりも 圧縮率を改善できる行順序を高速に見つけます。 有効にすると、新しいデータの行順序を分析して最適化するために、 insert operation には追加の CPU コストが発生します。 データの特性に応じて、INSERT は 30〜50% 長くかかることが想定されます。 LZ4 または ZSTD の圧縮率は、平均で 20〜40% 改善します。 この設定は、主キーがないテーブル、またはカーディナリティの低い 主キー、すなわち異なる主キー値がごく少ないテーブルで最も効果を発揮します。 DateTime64 型の timestamp カラムを含むような、カーディナリティの高い 主キーでは、この設定による効果はあまり期待できません。

part_minmax_index_columns

パートごとの min-max 索引の対象となるカラムを選択します。各値を指定すると、前の値で対象だったカラムに加えて、追加のカラムグループが有効になります。 設定可能な値:
  • partition_key_only — パーティションキーのカラムのみを追跡します。
  • with_block_number_offset — パーティションキーのカラムに加えて、永続化された仮想カラム _block_number_block_offset も対象になります。これらのカラムによるパートレベルの pruning が有効になります。

part_moves_between_shards_delay_seconds

分片間でパーツを移動する前後の待機時間。

part_moves_between_shards_enable

分片間でパーツを移動するための実験的かつ未完成の機能です。シャーディング式は 考慮されません。

parts_to_delay_insert

1 つのパーティション内のアクティブなパーツ数が parts_to_delay_insert の値を超えると、INSERT は意図的に遅延されます。 設定可能な値:
  • 任意の正の整数。
ClickHouse は INSERT の実行を意図的に長引かせ (「sleep」を追加し) 、 バックグラウンドのマージ処理が、パーツの追加よりも速くマージを進められるようにします。

parts_to_throw_insert

単一パーティション内のアクティブなパーツ数が parts_to_throw_insert の値を超えると、INSERTToo many parts (N). Merges are processing significantly slower than inserts 例外で中断されます。 設定可能な値:
  • 任意の正の整数。
SELECT クエリのパフォーマンスを最大化するには、処理するパーツ数を最小限に抑える必要があります。詳しくは Merge Tree を参照してください。 バージョン 23.6 より前では、この設定の値は 300 でした。これより大きい値を設定すると、Too many parts エラーが発生する可能性は低くなりますが、その一方で SELECT のパフォーマンスが低下するおそれがあります。また、マージに問題がある場合 (たとえばディスク容量不足など) 、元の 300 の設定よりも気付くのが遅くなります。

prefer_fetch_merged_part_size_threshold

パーツサイズの合計がこのしきい値を超え、かつレプリケーションログエントリの作成からの経過時間が prefer_fetch_merged_part_time_thresholdを超える場合は、ローカルでマージを行う代わりに、 レプリカからマージ済みパーツを取得することを優先します。これは、非常に長時間かかる マージを高速化するためです。 設定可能な値:
  • 任意の正の整数。

prefer_fetch_merged_part_time_threshold

レプリケーションログ (ClickHouse Keeper または ZooKeeper) の エントリ作成からの経過時間がこのしきい値を超え、かつパーツの総サイズが prefer_fetch_merged_part_size_threshold を上回る場合は、ローカルでマージを実行する代わりに、 レプリカからマージ済みパーツを取得することを優先します。これは、非常に長時間かかる マージを高速化するためです。 設定可能な値:
  • 任意の正の整数。

prewarm_mark_cache

true の場合、insert、merge、取得、および server の起動時に marks を mark cache に保存することで、mark cache が プリウォームされます

prewarm_primary_key_cache

true の場合、INSERT 時、マージ時、取得時、および サーバーの起動時に mark を mark cache に保存することで、主キー cache がプリウォームされます

primary_key_compress_block_size

プライマリキーの圧縮ブロックサイズ。圧縮対象ブロックの実際のサイズです。

primary_key_compression_codec

プライマリに使用される圧縮コーデックです。主キーは十分に小さく、キャッシュされるため、デフォルトの圧縮には ZSTD(3) が使用されます。

primary_key_lazy_load

主キーを、テーブルの初期化時ではなく最初に使用される時点でメモリに読み込みます。これにより、テーブル数が非常に多い場合のメモリ使用量を削減できます。

primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns

data part 内で主キーを構成するカラムの値が、少なくともこの比率で変化する場合、後続のカラムをメモリに読み込む処理をスキップします。これにより、主キー内の不要なカラムを読み込まずに済み、メモリ使用量を節約できます。

propagate_types_serialization_versions_to_nested_types

true の場合、string_serialization_version などのシリアル化バージョンは、Array/Map/Nullable/JSON などのネストされた型の内部にも伝播されます。無効にすると、このシリアル化バージョンが適用されるのは、この型のトップレベルのカラムと Tuple el のみです

ratio_of_defaults_for_sparse_serialization

カラム内の default 値の数が、すべての 値の数に対して占める最小比率です。 この値を設定すると、そのカラムはスパース シリアライゼーションを使用して保存されます。 カラムがスパースである場合 (ほとんどが 0 の場合) 、ClickHouse はそれを スパースフォーマットでエンコードし、計算を自動的に最適化できます。つまり、クエリ時にデータを 完全に展開する必要がありません。このスパース シリアライゼーションを有効にするには、ratio_of_defaults_for_sparse_serialization 設定を 1.0 未満にします。値が 1.0 以上の場合、 カラムは常に通常の完全なシリアライゼーションで書き込まれます。 設定可能な値:
  • スパースシリアライゼーションを有効にするには、0 から 1 の間の Float
  • スパースシリアライゼーションを使用しない場合は 1.0 (またはそれ以上)
次のテーブルでは、s カラムは 95% の 行で空文字列になっていることに注目してください。my_regular_table ではスパースシリアライゼーションを使用せず、 my_sparse_table では ratio_of_defaults_for_sparse_serialization を 0.95 に設定しています:
CREATE TABLE my_regular_table
(
`id` UInt64,
`s` String
)
ENGINE = MergeTree
ORDER BY id;

INSERT INTO my_regular_table
SELECT
number AS id,
number % 20 = 0 ? toString(number): '' AS s
FROM
numbers(10000000);

CREATE TABLE my_sparse_table
(
`id` UInt64,
`s` String
)
ENGINE = MergeTree
ORDER BY id
SETTINGS ratio_of_defaults_for_sparse_serialization = 0.95;

INSERT INTO my_sparse_table
SELECT
number,
number % 20 = 0 ? toString(number): ''
FROM
numbers(10000000);
my_sparse_tables カラムが、ディスク上で使用するストレージ容量を抑えられていることに注目してください。
SELECT table, name, data_compressed_bytes, data_uncompressed_bytes FROM system.columns
WHERE table LIKE 'my_%_table';
┌─table────────────┬─name─┬─data_compressed_bytes─┬─data_uncompressed_bytes─┐
│ my_regular_table │ id   │              37790741 │                75488328 │
│ my_regular_table │ s    │               2451377 │                12683106 │
│ my_sparse_table  │ id   │              37790741 │                75488328 │
│ my_sparse_table  │ s    │               2283454 │                 9855751 │
└──────────────────┴──────┴───────────────────────┴─────────────────────────┘
system.parts_columns テーブルの serialization_kind カラムを見ると、 そのカラムでスパースエンコーディングが使われているかどうかを確認できます。
SELECT column, serialization_kind FROM system.parts_columns
WHERE table LIKE 'my_sparse_table';
s のどの部分がスパースシリアライゼーションで格納されたかを確認できます。
┌─column─┬─serialization_kind─┐
│ id     │ Default            │
│ s      │ Default            │
│ id     │ Default            │
│ s      │ Default            │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
│ id     │ Default            │
│ s      │ Sparse             │
└────────┴────────────────────┘

reduce_blocking_parts_sleep_ms

ClickHouse Cloud でのみ利用できます。範囲が削除または置換されなかった場合に、 blocking parts の削減を再度試みるまでの最小待機時間です。設定値を低くすると、 background_schedule_pool 内の tasks が高頻度でトリガーされ、その結果、大規模なクラスターでは zookeeper へのリクエストが大量に発生します

refresh_parts_interval

0 より大きい場合、基盤となるファイルシステムからデータパーツの一覧を更新し、内部的にデータが更新されていないか確認します。 この設定は、テーブルが読み取り専用ディスク上にある場合にのみ指定できます (つまり、これは読み取り専用のレプリカであり、データは別のレプリカによって書き込まれます) 。

refresh_statistics_interval

統計キャッシュを更新する間隔を秒単位で指定します。0 に設定すると、更新は無効になります。

remote_fs_execute_merges_on_single_replica_time_threshold

この設定の値が 0 より大きい場合、共有ストレージ上にマージ済みパーツがあるときは、1 つのレプリカのみが ただちにマージを開始します。
ゼロコピー レプリケーションは本番環境で使用できる状態ではありません。 ClickHouse バージョン 22.8 以降では、ゼロコピー レプリケーションは デフォルトで無効になっています。この機能を本番環境で使用することは推奨されません。
設定可能な値:
  • 任意の正の整数。

remote_fs_zero_copy_path_compatible_mode

変換処理中は、zero-copy を互換モードで実行します。

remote_fs_zero_copy_zookeeper_path

zero-copyのテーブルに依存しない情報用のZooKeeperパス。

remove_empty_parts

有効期限 (TTL)、mutation、または折りたたみ merge アルゴリズムによって不要になった空のパーツを削除します。

remove_rolled_back_parts_immediately

未完成の実験的機能に関する設定です。

remove_unused_patch_parts

すべてのアクティブなパーツに適用済みのパッチパートをバックグラウンドで削除します。

replace_long_file_name_to_hash

カラムのファイル名が長すぎる場合 (‘max_file_name_length’ バイトを超える場合) 、その名前を SipHash128 に置き換えます

replicated_can_become_leader

true の場合、このノード上のレプリケートテーブルのレプリカは リーダーになることを試みます。 設定可能な値:
  • true
  • false

replicated_deduplication_window

ClickHouse Keeper が重複をチェックするために ハッシュサムを保存する、直近で挿入されたブロックの数。 設定可能な値:
  • 任意の正の整数。
  • 0 (重複排除を無効化)
Insert コマンドは 1 つ以上のブロック (パーツ) を作成します。挿入の重複排除 では、レプリケートテーブルへの書き込み時に、ClickHouse は作成された パーツのハッシュサムを ClickHouse Keeper に書き込みます。ハッシュサムが 保存されるのは、直近の replicated_deduplication_window ブロックのみです。最も古い ハッシュサムは ClickHouse Keeper から削除されます。 replicated_deduplication_window に大きな値を設定すると、比較対象の エントリが増えるため、Inserts は遅くなります。ハッシュサムは、 フィールド名と型の構成、および挿入された パーツのデータ (バイトストリーム) から計算されます。

replicated_deduplication_window_for_async_inserts

ClickHouse Keeper が重複を確認するためのハッシュサムを保持する、直近の非同期 INSERT 済みブロック数。 設定可能な値:
  • 任意の正の整数。
  • 0 (async_inserts の重複排除を無効化)
Async Insert コマンドは、1 つ以上のブロック (パーツ) に キャッシュされます。挿入の重複排除では、 レプリケートテーブルへの書き込み時に、ClickHouse は各 insert のハッシュサムを ClickHouse Keeper に書き込みます。ハッシュサムが保持されるのは、直近の replicated_deduplication_window_for_async_inserts ブロックのみです。最も古いハッシュサムは ClickHouse Keeper から削除されます。 replicated_deduplication_window_for_async_inserts の値が大きいほど、 比較するエントリ数が増えるため、Async Inserts は遅くなります。 ハッシュサムは、フィールド名と型の構成、および挿入データ (バイトストリーム) から計算されます。

replicated_deduplication_window_seconds

挿入されたブロックのハッシュサムが ClickHouse Keeper から削除されるまでの秒数です。 設定可能な値:
  • 任意の正の整数。
replicated_deduplication_window と同様に、 replicated_deduplication_window_seconds は、挿入の重複排除のためにブロックのハッシュサムを どれくらいの期間保持するかを指定します。 replicated_deduplication_window_seconds より古いハッシュサムは、 replicated_deduplication_window 未満であっても ClickHouse Keeper から削除されます。 この時間は実時間ではなく、最新のレコードの時刻を基準に計算されます。 レコードが 1 件しかない場合は、永久に保存されます。

replicated_deduplication_window_seconds_for_async_inserts

非同期 INSERT のハッシュサムが ClickHouse Keeper から削除されるまでの秒数です。 設定可能な値:
  • 任意の正の整数。
replicated_deduplication_window_for_async_inserts と同様に、 replicated_deduplication_window_seconds_for_async_inserts は、 非同期 INSERT の重複排除のためにブロックのハッシュサムを どれだけの期間保存するかを指定します。replicated_deduplication_window_seconds_for_async_inserts より古い ハッシュサムは、 replicated_deduplication_window_for_async_inserts 未満であっても ClickHouse Keeper から削除されます。 この時間は、実時間ではなく、最新のレコードの時刻を基準にします。 レコードが 1 件しかない場合は、永久に保存されます。

replicated_fetches_http_connection_timeout

廃止された設定であり、効果はありません。

replicated_fetches_http_receive_timeout

廃止された設定で、効果はありません。

replicated_fetches_http_send_timeout

廃止された設定で、効果はありません。

replicated_fetches_min_part_level

他のレプリカから取得するパーツの最小レベルです。このしきい値より低いレベルのパーツは後回しになります (レプリケーションキューに保持され、各スケジューリングサイクルで再評価されます。恒久的にスキップされるわけではありません) 。 1 を指定すると、レベル 0 の (未マージの) パーツの取得を後回しにできるため、大量インジェスト時のレプリケーションのオーバーヘッドを削減できます。 デフォルト: 0 (レベルに関係なくすべてのパーツを取得) 。

replicated_fetches_min_part_level_timeout_seconds

この秒数を超えると、replicated_fetches_min_part_level 未満のパーツでも取得されます。 タイムアウトを無効にするには 0 を指定します (最小レベル未満のパーツは、マージされるまで無期限に延期されます) 。 デフォルト: 300 (5 分後に強制的に取得) 。

replicated_max_mutations_in_one_entry

まとめてマージし、1つのMUTATE_PARTエントリで実行できるmutationコマンドの最大数 (0 は無制限を意味します)

replicated_max_parallel_fetches

廃止された設定であり、効果はありません。

replicated_max_parallel_fetches_for_host

廃止された設定です。何も効果はありません。

replicated_max_parallel_fetches_for_table

廃止された設定であり、何の効果もありません。

replicated_max_parallel_sends

廃止された設定で、現在は効果がありません。

replicated_max_parallel_sends_for_table

廃止された設定で、効果はありません。

replicated_max_ratio_of_wrong_parts

不正なパーツの数が全パーツ数に占める割合がこの値未満の場合、 起動を許可します。 設定可能な値:
  • Float, 0.0 - 1.0

search_orphaned_parts_disks

ClickHouse は、ポリシーで定義されていない (ポリシーに含まれていない) ディスク上のデータパーツを見落とさないよう、 ATTACH または CREATE TABLE のたびに、すべてのディスクで孤立パーツをスキャンします。 孤立パーツは、たとえばディスクが storage policy から除外された場合のような、 安全でない可能性のあるストレージ再構成によって発生します。 この設定では、ディスクの特性に基づいて、検索対象とするディスクの範囲を制限します。 設定可能な値:
  • any - 範囲は制限されません。
  • local - 範囲はローカルディスクに制限されます。
  • none - 範囲は空になり、検索は行われません

serialization_info_version

serialization.json の書き込み時に使用されるシリアル化情報のバージョンです。 この設定は、クラスターのアップグレード中に互換性を保つために必要です。 設定可能な値:
  • basic - 基本フォーマット。
  • with_types - 追加の types_serialization_versions フィールドを含むフォーマットで、型ごとのシリアル化バージョンを指定できます。 これにより、string_serialization_version などの設定が有効になります。
ローリングアップグレード中は、これを basic に設定して、新しいサーバーが 古いサーバーと互換性のある データパーツを生成するようにします。アップグレード完了後は、 型ごとのシリアライゼーションバージョンを有効にするため、WITH_TYPES に切り替えます。

share_nested_offsets

有効な場合 (デフォルト) 、共通のプレフィックスを持つドット区切りの名前の Array カラム (例: n.a と n.b) は、 Nested 構造の一部として扱われます。つまり、ディスク上の 1 つのオフセットファイル (例: n.size0) を共有し、 INSERT 時にはそれらの配列サイズが等しいことが検証されます。 無効な場合、各 Array カラムはそれぞれ独立したオフセットファイルを持ち、ドット区切りの名前に特別な 意味はなくなります。また、同じプレフィックスを持つドット区切りの Array カラムと スカラー カラムを共存させることもできます (例: n UInt32 と n.a Array(String)) 。この設定はテーブル作成後に変更できません。

shared_merge_tree_activate_coordinated_merges_tasks

協調マージタスクの再スケジューリングを有効にします。これは、 shared_merge_tree_enable_coordinated_merges=0 の場合でも有用です。マージコーディネーターの 統計情報が蓄積され、コールドスタートの助けになるためです。

shared_merge_tree_create_per_replica_metadata_nodes

ZooKeeper で、レプリカごとの /metadata ノードおよび /columns ノードを作成できるようにします。 ClickHouse Cloud でのみ利用できます

shared_merge_tree_disable_merges_and_mutations_assignment

shared merge tree のマージおよびミューテーションの割り当てを停止します。ClickHouse Cloud でのみ使用できます

shared_merge_tree_empty_partition_lifetime

パーツを持たないパーティションが Keeper に保持される秒数。

shared_merge_tree_enable_automatic_empty_partitions_cleanup

空のパーティションに対応する Keeper エントリのクリーンアップを有効にします。

shared_merge_tree_enable_coordinated_merges

協調マージ戦略を有効にします

shared_merge_tree_enable_keeper_parts_extra_data

仮想パーツへの属性の書き込みと、Keeper 内でのブロックのコミットを有効にします

shared_merge_tree_enable_outdated_parts_check

古いパーツのチェックを有効にします。ClickHouse Cloud でのみ利用できます

shared_merge_tree_idle_parts_update_seconds

shared merge tree において、ZooKeeper の watch によるトリガーなしでパーツを更新する間隔 (秒) 。ClickHouse Cloud でのみ使用できます

shared_merge_tree_initial_parts_update_backoff_ms

パーツ更新時の初期バックオフ。ClickHouse Cloud でのみ利用できます

shared_merge_tree_interserver_http_connection_timeout_ms

サーバー間 HTTP 接続のタイムアウト。ClickHouse Cloud でのみ利用できます

shared_merge_tree_interserver_http_timeout_ms

サーバー間の HTTP 通信におけるタイムアウトです。ClickHouse Cloud でのみ利用できます。

shared_merge_tree_leader_update_period_random_add_seconds

shared_merge_tree_leader_update_period に 0 〜 x 秒の範囲で一様分布する値を加え、 サンダリングハードの発生を防ぎます。ClickHouse Cloud でのみ利用できます

shared_merge_tree_leader_update_period_seconds

パーツ更新におけるリーダーシップを再確認するまでの最大間隔です。ClickHouse Cloudでのみ利用できます

shared_merge_tree_max_outdated_parts_to_process_at_once

リーダーが 1 回の HTTP リクエストで削除対象として確認を試みる古いパーツの最大数です。ClickHouse Cloud でのみ利用できます。

shared_merge_tree_max_parts_update_backoff_ms

パーツ更新時の最大バックオフ。ClickHouse Cloud でのみ利用できます

shared_merge_tree_max_parts_update_leaders_in_total

パーツ更新リーダーの最大数。ClickHouse Cloud でのみ利用できます

shared_merge_tree_max_parts_update_leaders_per_az

パーツ更新リーダーの上限数。ClickHouse Cloud でのみ利用できます

shared_merge_tree_max_replicas_for_parts_deletion

パーツ削除 (キラースレッド) に参加するレプリカの最大数。ClickHouse Cloud でのみ 利用できます

shared_merge_tree_max_replicas_to_merge_parts_for_each_parts_range

競合の可能性がある マージ の割り当てを試行するレプリカの最大数です (マージ の割り当て時に不要な競合を避けるため) 。0 は無効を意味します。ClickHouse Cloud でのみ利用できます

shared_merge_tree_max_suspicious_broken_parts

SMT で許容される破損パーツの最大数。これを超えると、自動デタッチは拒否されます。

shared_merge_tree_max_suspicious_broken_parts_bytes

SMT の破損パーツ全体の最大サイズ。この値を超えると自動 デタッチ を禁止します。

shared_merge_tree_memo_ids_remove_timeout_seconds

insert の再試行時に誤った actions を防ぐために、insert のメモ化 ID を保持する期間です。 ClickHouse Cloud でのみ利用できます

shared_merge_tree_merge_coordinator_election_check_period_ms

マージコーディネーター選出スレッドの実行間隔

shared_merge_tree_merge_coordinator_factor

マージコーディネータースレッドの遅延時間を調整する係数

shared_merge_tree_merge_coordinator_fetch_fresh_metadata_period_ms

マージコーディネーターが最新のメタデータを取得するためにZooKeeperと同期する間隔

shared_merge_tree_merge_coordinator_max_merge_request_size

マージコーディネーターが一度に MergerMutator に要求できるマージ数

shared_merge_tree_merge_coordinator_max_period_ms

マージコーディネータースレッドの実行間隔の最大値

shared_merge_tree_merge_coordinator_merges_prepare_count

マージコーディネーターが準備し、各ワーカーに分配するマージエントリの数。 auto に設定すると、単一のレプリカで許可されるマージタスクの最大数に、アクティブなレプリカ数を掛けた値になります。

shared_merge_tree_merge_coordinator_min_period_ms

マージコーディネータースレッドの実行間隔の最小時間

shared_merge_tree_merge_worker_fast_timeout_ms

マージワーカースレッドが、即時アクションの後に自身の状態を更新する必要がある場合に使用するタイムアウト

shared_merge_tree_merge_worker_regular_timeout_ms

マージワーカースレッドの実行間隔

shared_merge_tree_outdated_parts_group_size

古くなったパーツのクリーンアップ時に、同じランデブーハッシュグループに含まれるレプリカ数。 ClickHouse Cloud でのみ利用できます。

shared_merge_tree_partitions_hint_ratio_to_reload_merge_pred_for_mutations

<candidate partitions for mutations only (partitions that cannot be merged)>/<candidate partitions for mutations> の比率がこの設定値を上回る場合、マージ/ミューテーション を選択するタスクで マージ predicate を再読み込みします。ClickHouse Cloud でのみ利用できます

shared_merge_tree_parts_load_batch_size

一度にスケジュールする fetch パーツのメタデータ取得ジョブ数。ClickHouse Cloud でのみ利用できます。

shared_merge_tree_postpone_next_merge_for_locally_merged_parts_ms

ローカルでマージされたパーツを含む新たなマージを開始せずに、そのパーツを保持しておく時間です。 これにより、他のレプリカがそのパーツを取得して、このマージを開始するための猶予が生まれます。 ClickHouse Cloud でのみ利用できます。

shared_merge_tree_postpone_next_merge_for_locally_merged_parts_rows_threshold

ローカルでマージした直後に次のマージの割り当てを延期するための、パーツの最小サイズ (行数) 。ClickHouse Cloud でのみ使用できます。

shared_merge_tree_range_for_merge_window_size

このパートを含む新たなマージを開始せずに、ローカルでマージ済みのパートを保持する時間です。 これにより、他のレプリカがそのパートを取得して、このマージを開始する猶予が生まれます。 ClickHouse Cloud でのみ利用できます

shared_merge_tree_read_virtual_parts_from_leader

可能な場合は、リーダー から仮想パーツを読み取ります。ClickHouse Cloudでのみ利用できます

shared_merge_tree_replica_set_max_lifetime_seconds

レプリカがバックグラウンドでレプリカセットの更新を試みる頻度です。次回の実行は、 [0, value] 秒の範囲で一様にジッターが加えられます。例外: value = 0 の場合はこの仕様に従いません。 実装では最小 200 ms が適用されるため、次回の実行には [0, 200] ms の範囲でジッターが加えられます。

shared_merge_tree_try_fetch_part_in_memory_data_from_replicas

有効にすると、すべてのレプリカは、プライマリキーやパーティション情報などのパーツのメモリ内データを、すでに保持している他のレプリカから取得しようとします。

shared_merge_tree_update_replica_flags_delay_ms

レプリカがバックグラウンドスケジュールに従って自身のフラグを再読み込みする試行頻度。

shared_merge_tree_use_metadata_hints_cache

他のレプリカ上のメモリ内 cache から FS cache ヒントを要求するようにします。ClickHouse Cloud でのみ利用できます

shared_merge_tree_use_outdated_parts_compact_format

古くなったパーツに compact フォーマットを使用します。これにより Keeper への負荷が軽減され、 古くなったパーツの処理が改善されます。ClickHouse Cloud でのみ利用できます

shared_merge_tree_use_too_many_parts_count_from_virtual_parts

有効にすると、パーツが多すぎるカウンターはローカルレプリカの状態ではなく、Keeper 内の共有データを参照します。ClickHouse Cloud でのみ利用できます

shared_merge_tree_use_zookeeper_connection_pool

有効にすると、SharedMergeTree はサーバーレベルのプールされた ZooKeeper セッションのいずれか 1 つを使用します。

shared_merge_tree_virtual_parts_discovery_batch

1つのバッチにまとめるパーティション検出の件数

simultaneous_parts_removal_limit

古くなったパーツ が多数ある場合、クリーンアップスレッドは1回の反復で最大 simultaneous_parts_removal_limit 個のパーツを削除しようとします。 simultaneous_parts_removal_limit0 に設定すると、上限なしを意味します。

sleep_before_commit_local_part_in_replicated_table_ms

テスト用です。変更しないでください。

sleep_before_loading_outdated_parts_ms

テスト用です。変更しないでください。

storage_policy

ストレージディスクポリシー名

string_serialization_version

トップレベルの String カラムのシリアライゼーションフォーマットを制御します。 この設定は、serialization_info_version が “with_types” に設定されている場合にのみ有効です。 with_size_stream に設定すると、トップレベルの String カラムは、文字列長を保持する別個の .size サブカラムにシリアライズされ、インラインでは保持されません。これにより実際の .size サブカラムを利用できるようになり、圧縮効率が向上する場合があります。 ネストされた String 型 (例: NullableLowCardinalityArrayMap の内部) には影響しませんが、Tuple 内に現れる場合は例外です。 設定可能な値:
  • single_stream — サイズをインラインで保持する標準のシリアライゼーションフォーマットを使用します。
  • with_size_stream — トップレベルの String カラムに対して、独立したサイズストリームを使用します。

table_disk

これはテーブルディスクです。path/endpoint はデータベースのデータではなく、 テーブルのデータを指す必要があります。設定できるのは s3_plain/s3_plain_rewritable/web に対してのみです。

table_readonly

true に設定すると、テーブルは読み取り専用モードになります。データの insert やテーブルの変更を試みると失敗します。

temporary_directories_lifetime

tmp_ ディレクトリを保持する秒数です。この値は下げないでください。 この設定値が低すぎると、マージやミューテーションが正常に動作しない可能性があります。

try_fetch_recompressed_part_timeout

再圧縮を伴うマージを開始するまでのタイムアウト (秒単位) 。この時間のあいだ、ClickHouse は、この再圧縮を伴うマージが割り当てられたレプリカから、再圧縮済みのパーツを fetch しようとします。 多くの場合、再圧縮には時間がかかるため、このタイムアウトが経過するまでは再圧縮を伴うマージを開始せず、この再圧縮を伴うマージが割り当てられたレプリカから再圧縮済みのパーツを fetch しようとします。 設定可能な値:
  • 任意の正の整数。

ttl_only_drop_parts

各パーツ内のすべての行が TTL 設定に従って期限切れになった場合に、MergeTree テーブルでデータパーツ全体を削除するかどうかを制御します。 ttl_only_drop_parts が無効な場合 (デフォルト) は、TTL 設定に基づいて期限切れになった行のみが削除されます。 ttl_only_drop_parts が有効な場合は、各パーツ内のすべての行が TTL 設定に従って期限切れになっていると、そのパーツ全体が削除されます。

use_adaptive_write_buffer_for_dynamic_subcolumns

動的サブカラムの書き込み時にアダプティブなライターバッファを使用して、 メモリ使用量を削減できるようにします

use_async_block_ids_cache

true の場合、非同期 INSERT の hash sums を cache します。 設定可能な値:
  • true
  • false
複数の非同期 INSERT を含む block では、複数の hash sums が生成されます。 このうち一部の insert が重複している場合、Keeper は 1 回の RPC で 重複した hash sum を 1 つしか返さないため、不要な RPC の再試行が発生します。 この cache は Keeper 内の hash sums path を watch します。Keeper で更新が 検知されると、cache はできるだけ早く更新されるため、 メモリ内で重複した insert を filter できるようになります。

use_compact_variant_discriminators_serialization

Variant データ型の discriminator のバイナリシリアライゼーションで compact モードを有効にします。 このモードを使用すると、ほとんどが 1 つの variant である場合や NULL 値 が多い場合に、 パーツ内で discriminator を保存するために必要なメモリを大幅に削減できます。

use_const_adaptive_granularity

常にパート全体で一定の粒度を使用します。これにより、索引粒度の値をメモリ上で 圧縮できます。これは、列数の少ないテーブルを扱う非常に大規模な ワークロードで役立つ場合があります。

use_metadata_cache

廃止された設定で、機能しません。

use_minimalistic_checksums_in_zookeeper

通常のもの (数十 KB) ではなく、ZooKeeper 内のパーツのチェックサムに小さいフォーマット (数十バイト) を使用します。有効にする前に、すべてのレプリカが新しいフォーマットに対応していることを確認してください。

use_minimalistic_part_header_in_zookeeper

ZooKeeper における data parts のヘッダーの保存方式です。有効にすると、ZooKeeper に保存されるデータ量が少なくなります。詳細は、こちらを参照してください。

use_primary_key_cache

すべての索引をメモリに保持する代わりに、プライマリインデックスに cache を使用します。非常に大きなテーブルで有用です。

vertical_merge_algorithm_min_bytes_to_activate

Vertical merge アルゴリズムを有効にするために、マージ対象の パーツで必要となる最小の (概算) 非圧縮サイズ (バイト単位) 。

vertical_merge_algorithm_min_columns_to_activate

Vertical merge アルゴリズムを有効にするために必要な、PK 以外のカラムの最小数。

vertical_merge_algorithm_min_rows_to_activate

Vertical merge アルゴリズムを有効にするために必要な、 マージ対象パーツ内の行数の合計の最小値 (概算) 。

vertical_merge_optimize_lightweight_delete

true の場合、垂直マージ時の論理削除が最適化されます。

vertical_merge_optimize_ttl_delete

true の場合、行 TTL による削除は 垂直マージ で最適化されます。horizontal merge を強制する代わりに、 TTL フィルターが評価されてマージアルゴリズムに渡され、行ソースにスキップフラグが設定されます。

vertical_merge_remote_filesystem_prefetch

true の場合、merge 中に次の カラムについて、リモート filesystem からデータを prefetch します

wait_for_unique_parts_send_before_shutdown_ms

シャットダウン前に、テーブルは一意なパーツ (現在のレプリカにのみ存在するもの) が他のレプリカにフェッチされるまで、必要な時間だけ待機します (0 は 無効を意味します) 。

write_ahead_log_bytes_to_fsync

廃止された設定であり、何の効果もありません。

write_ahead_log_interval_ms_to_fsync

廃止された設定です。効果はありません。

write_ahead_log_max_bytes

廃止された設定で、効果はありません。

write_final_mark

廃止された設定で、効果はありません。

write_marks_for_substreams_in_compact_parts

compact パーツでは、カラム単位ではなくサブストリーム単位でマークを書き込むようにします。 これにより、データパーツから個々のサブカラムを効率的に読み取れるようになります。 たとえば、カラム t Tuple(a String, b UInt32, c Array(Nullable(UInt32))) は次のサブストリームにシリアライズされます。
  • t.a はタプル要素 a の String データ
  • t.b はタプル要素 b の UInt32 データ
  • t.c.size0 はタプル要素 c の配列サイズ
  • t.c.null はタプル要素 c のネストされた配列要素の NULL マップ
  • t.c はタプル要素 c のネストされた配列要素の UInt32 データ
この設定を有効にすると、これら 5 つのサブストリームそれぞれに対してマークを書き込みます。つまり、必要に応じて各サブストリームのデータを granule から個別に 読み取れるようになります。たとえば、サブカラム t.c を読み取りたい場合、 サブストリーム t.c.size0t.c.nullt.c のデータだけを読み取り、 サブストリーム t.at.b のデータは読み取りません。この設定が無効な場合は、 最上位カラム t に対してのみマークを書き込むため、一部のサブストリームのデータだけが必要な場合でも、granule から常にカラム全体のカラムデータを読み取ることになります。

zero_copy_concurrent_part_removal_max_postpone_ratio

より小さな独立した範囲を確保するために、削除を延期する最上位レベルのパーツの最大割合です。 変更しないことを推奨します。

zero_copy_concurrent_part_removal_max_split_times

独立した 古くなったパーツ の範囲を、より小さなサブ範囲に分割する際の 再帰の最大深度です。変更しないことを推奨します。

zero_copy_merge_mutation_min_parts_size_sleep_before_lock

ゼロコピー レプリケーションが有効な場合、マージまたはミューテーションのパーツサイズに応じて、ロックを試行する前にランダムな時間だけ待機します

zero_copy_merge_mutation_min_parts_size_sleep_no_scale_before_lock

ゼロコピー レプリケーションが有効な場合、マージまたはミューテーションのロック取得を試みる前に、最大 500ms のランダムな時間だけ待機します。

zookeeper_session_expiration_check_period

ZooKeeper セッションの有効期限切れをチェックする間隔 (秒) 。 設定可能な値:
  • 任意の正の整数。
最終更新日 2026年6月10日