MergeTree tables settings
System table system.merge_tree_settings
は、全体に設定された MergeTree 設定を示します。
MergeTree 設定は、サーバー設定ファイルの merge_tree
セクションで設定するか、CREATE TABLE
ステートメントの SETTINGS
句で個々の MergeTree
テーブルに対して指定できます。
設定 max_suspicious_broken_parts
をカスタマイズする例:
サーバー設定ファイルでの全ての MergeTree
テーブルのデフォルトを設定します:
特定のテーブルに設定する:
特定のテーブルの設定を変更するには、ALTER TABLE ... MODIFY SETTING
を使用します:
MergeTree settings
adaptive_write_buffer_initial_size
適応型書き込みバッファの初期サイズ
add_implicit_sign_column_constraint_for_collapsing_engine
true の場合、CollapsingMergeTree または VersionedCollapsingMergeTree テーブルの sign
カラムに対して、有効な値(1
および -1
)のみを許可する暗黙の制約を追加します。
add_minmax_index_for_numeric_columns
有効な場合、テーブルの全ての数値カラムに対して min-max(スキッピング)インデックスが追加されます。
add_minmax_index_for_string_columns
有効な場合、テーブルの全ての文字列カラムに対して min-max(スキッピング)インデックスが追加されます。
allow_experimental_replacing_merge_with_cleanup
is_deleted
カラムを持つ ReplacingMergeTree のための実験的な CLEANUP マージを許可します。これを有効にすると、手動でパーティション内の全てのパーツを1つのパーツにマージし、削除された行を削除するために OPTIMIZE ... FINAL CLEANUP
を使用できるようになります。
また、min_age_to_force_merge_seconds
、min_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
最適化を使用することが可能になります。
例
クエリに ORDER BY time DESC
を使用することで、ReadInOrder
が適用されます。
デフォルト値: false
allow_floating_point_partition_key
浮動小数点数をパーティションキーとして許可することを有効にします。
可能な値:
0
— 浮動小数点パーティションキーは許可されていません。1
— 浮動小数点パーティションキーが許可されています。
allow_nullable_key
Nullable 型を主キーとして許可します。
allow_reduce_blocking_parts_task
共有マージテーブルのブロッキングパーツを削減するためのバックグラウンドタスク。 ClickHouse Cloud のみで利用可能
allow_remote_fs_zero_copy_replication
この設定は本番環境では使用しないでください。準備が整っていません。
allow_summing_columns_in_partition_or_order_key
有効になっている場合、SummingMergeTree テーブルでのカラムをパーティションまたはソートキーに使用することを許可します。
allow_suspicious_indices
同一の式を持つ主キー/副キーおよびソートキーを拒否します。
allow_vertical_merges_from_compact_to_wide_parts
コンパクトからワイドパーツへの垂直マージを許可します。この設定は全てのレプリカで同じ値を持っている必要があります。
always_fetch_merged_part
true の場合、このレプリカは決してパーツをマージせず、常に他のレプリカからマージされたパーツをダウンロードします。
可能な値:
- true, false
always_use_copy_instead_of_hardlinks
常にデータをコピーして、ミューテーション/置換/切り離しなどの際にハードリンクではなくします。
apply_patches_on_merge
true の場合、マージ時にパッチパーツが適用されます。
assign_part_uuids
有効にすると、新しいパーツごとに一意のパート識別子が割り当てられます。 有効にする前に、全てのレプリカが UUID バージョン 4 をサポートしていることを確認してください。
async_block_ids_cache_update_wait_ms
各挿入イテレーションが async_block_ids_cache 更新のために待機する時間
async_insert
true の場合、INSERT クエリからのデータがキューに保存され、後でバックグラウンドでテーブルにフラッシュされます。
background_task_preferred_step_execution_time_ms
マージまたはミューテーションの1ステップの実行に対するターゲット時間。1ステップが長くかかる場合は超えることができます。
cache_populated_by_fetch
この設定は、ClickHouse Cloud のみに適用されます。
cache_populated_by_fetch
が無効(デフォルト設定)になっている場合、新しいデータパーツは、それらのパーツを必要とするクエリが実行されるまでキャッシュに読み込まれません。
有効にすると、cache_populated_by_fetch
は、全てのノードがクエリをトリガーすることなくストレージから新しいデータパーツをそのキャッシュに読み込むようになります。
参考
check_delay_period
廃止された設定で、何も行いません。
check_sample_column_is_correct
サンプリングまたはサンプリング式に対して、カラムのデータ型が正しいか確認するための設定を、テーブル作成時に有効にします。データ型は、符号なしの 整数型: UInt8
, UInt16
, UInt32
, UInt64
のいずれかでなければなりません。
可能な値:
true
— チェックが有効です。false
— テーブル作成時にチェックが無効です。
デフォルト値: true
。
デフォルトでは、ClickHouse サーバーはテーブル作成時に、サンプリングまたはサンプリング式のカラムのデータ型をチェックします。既に不正なサンプリング式を持つテーブルがあり、サーバーが起動時に例外を発生させないようにしたい場合は、check_sample_column_is_correct
を false
に設定します。
clean_deleted_rows
廃止された設定で、何も行いません。
cleanup_delay_period
古いキューログ、ブロックハッシュ、およびパーツをクリーンアップする最小期間。
cleanup_delay_period_random_add
cleanup_delay_period に対して均等に分布した値(0 から x 秒まで)を追加して、雷鳴効果を避け、大量のテーブルがある場合に ZooKeeper の DoS を回避します。
cleanup_thread_preferred_points_per_iteration
バックグラウンドクリーンアップのための推奨バッチサイズ(ポイントは抽象的ですが、1ポイントはおおよそ1挿入ブロックに相当します)。
cleanup_threads
古いスレッドのクリーンアップのためのスレッド。ClickHouse Cloud のみで利用可能
columns_and_secondary_indices_sizes_lazy_calculation
初回リクエストの際に columns と secondary indices のサイズを遅延計算します。
columns_to_prewarm_mark_cache
プリウォームマークキャッシュのためのカラムのリスト(有効な場合)。空の場合は全てのカラムを意味します。
compact_parts_max_bytes_to_buffer
ClickHouse Cloud のみで利用可能。コンパクトパーツの単一ストライプに書き込む最大バイト数。
compact_parts_max_granules_to_buffer
ClickHouse Cloud のみで利用可能。コンパクトパーツの単一ストライプに書き込む最大グラニュール数。
compact_parts_merge_max_bytes_to_prefetch_part
ClickHouse Cloud のみで利用可能。マージ中にメモリに全体を読み込む最大のコンパクトパートサイズ。
compatibility_allow_sampling_expression_not_in_primary_key
主キーに無いサンプリング式を持つテーブルの作成を許可します。これは、間違ったテーブルでサーバーを一時的に実行可能にするためにのみ必要です。
compress_marks
マークの圧縮をサポートし、マークファイルのサイズを削減し、ネットワーク転送をスピードアップします。
compress_primary_key
主キーの圧縮をサポートし、主キーファイルのサイズを削減し、ネットワーク転送をスピードアップします。
concurrent_part_removal_threshold
非アクティブなデータパーツの数がこの値以上の場合のみ、同時パート削除をアクティブ化します('max_part_removal_threads' を参照)。
deduplicate_merge_projection_mode
非クラシックな MergeTree のテーブル用のプロジェクションを作成することを許可するかどうかを決定します。非クラシックな MergeTree とは (Replicated, Shared) MergeTree ではないものです。Ignore オプションは単純に互換性のために存在し、誤った答えを生じる可能性があります。許可される場合は、マージプロジェクション時にどのアクションを行うか、つまり削除するか再構築するかです。したがって、クラシック MergeTree はこの設定を無視します。これにより OPTIMIZE DEDUPLICATE
も制御されますが、すべての MergeTree ファミリメンバーに影響を与えます。lightweight_mutation_projection_mode
オプションに似ており、これは部分レベルです。
可能な値:
ignore
throw
drop
rebuild
default_compression_codec
特定のカラムに対して定義されていない場合に使用されるデフォルトの圧縮コーデックを指定します。 カラムに対する圧縮コーデック選択順序:
- テーブル宣言でカラムのために定義された圧縮コーデック
default_compression_codec
で定義された圧縮コーデック(この設定)compression
設定で定義されたデフォルトの圧縮コーデック デフォルト値:空の文字列(未定義)。
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 クエリを無効にします。
disk
ストレージディスクの名前。ストレージポリシーの代わりに指定できます。
enable_block_number_column
各行のために _block_number カラムを永続化することを有効にします。
enable_block_offset_column
マージ時に仮想カラム _block_number
を永続化します。
enable_index_granularity_compression
可能な場合は、メモリ内のインデックスの粒度の値を圧縮します。
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
設定でグラニュールサイズを制御する移行を有効または無効にします。バージョン 19.11 より前は、グラニュールサイズを制限するための唯一の設定は 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_cleanup
、min_age_to_force_merge_seconds
、min_age_to_force_merge_on_partition_only
を有効にする必要があります。
可能な値:
true
false
enable_the_endpoint_id_with_zookeeper_name_prefix
レプリケートマージテーブルの zookeeper 名称接頭辞を使用したエンドポイント ID を有効にします。
enable_vertical_merge_algorithm
垂直マージアルゴリズムの使用を有効にします。
enforce_index_structure_match_on_partition_manipulation
パーティション操作クエリ(ATTACH/MOVE/REPLACE PARTITION
)の対象テーブルに対してこの設定が有効な場合、インデックスとプロジェクションはソーステーブルとデスティネーションテーブルの間で同一でなければなりません。そうでない場合、デスティネーションテーブルはソーステーブルのインデックスおよびプロジェクションのスーパーセットを持つことができます。
exclude_deleted_rows_for_part_size_in_merge
有効な場合、データパーツの推定実際のサイズ(つまり、DELETE FROM
を通じて削除された行を除外したもの)がマージする部分を選択する際に使用されます。この動作は、設定が有効になった後に実行された DELETE FROM
に影響を受けたデータパーツに対してのみトリガーされます。
可能な値:
true
false
参考
execute_merges_on_single_replica_time_threshold
この設定の値がゼロより大きい場合、単一のレプリカだけがすぐにマージを開始し、他のレプリカはその結果をダウンロードするために最大その時間だけ待機します。選択したレプリカがその時間内にマージを完了しなかった場合、標準の動作にフォールバックします。
可能な値:
- 任意の正の整数。
fault_probability_after_part_commit
テスト用。変更しないでください。
fault_probability_before_part_commit
テスト用。変更しないでください。
finished_mutations_to_keep
保持する完了したミューテーションのレコード数。ゼロの場合、全てを保持します。
force_read_through_cache_for_merges
マージのためにファイルシステムキャッシュを強制読み込みします。
fsync_after_insert
挿入された各パーツの fsync を実行します。挿入のパフォーマンスが著しく低下しますので、ワイドパーツと一緒に使用することはお勧めしません。
fsync_part_directory
全てのパート操作(書き込み、名前変更など)の後にパートディレクトリの fsync を実行します。
in_memory_parts_enable_wal
廃止された設定で、何も行いません。
in_memory_parts_insert_sync
廃止された設定で、何も行いません。
inactive_parts_to_delay_insert
テーブルの単一パーティション内に非アクティブなパーツの数が inactive_parts_to_delay_insert
値を超えると、INSERT
が人工的に遅延されます。
サーバーがパーツを迅速にクリーンアップできない場合に役立ちます。
可能な値:
- 任意の正の整数。
inactive_parts_to_throw_insert
単一パーティション内の非アクティブなパーツの数が inactive_parts_to_throw_insert
値を超えた場合、INSERT
が以下のエラーで中断されます:
"Too many inactive parts (N). Parts cleaning are processing significantly slower than inserts" 例外。
可能な値:
- 任意の正の整数。
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
はプロジェクションを再構築するので、現在のクエリのパフォーマンスに影響を与える可能性がありますが、将来のクエリを高速化する可能性があります。良い点は、これらのオプションは部分レベルでのみ機能し、触れられないパート内のプロジェクションはそのまま残るため、削除や再構築のようなアクションを引き起こすことはありません。
可能な値:
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
マージやミューテーションなどのバックグラウンド操作のため。テーブルロックを取得できないまでの秒数。
marks_compress_block_size
マーク圧縮ブロックサイズ、圧縮するブロックの実際のサイズ。
marks_compression_codec
マークによって使用される圧縮エンコーディング、マークは小さくキャッシュされるので、デフォルトの圧縮は ZSTD(3) です。
materialize_skip_indexes_on_merge
有効な場合、マージにおいて新しいパーツのためにスキップインデックスがビルドされ、保存されます。 そうでなければ、明示的に MATERIALIZE INDEX によって作成/保存されることがあります。
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_bytes_to_merge_at_max_space_in_pool
十分なリソースが利用可能な場合、1つのパーツにマージされる最大パーツサイズ(バイト単位)。
可能な値:
- 任意の非負整数。
マージスケジューラは定期的にパーティション内のサイズとパーツ数を分析し、プールに十分な空きリソースがある場合はバックグラウンドマージを開始します。マージは、ソースパーツの総サイズが 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倍にしてディスクスペースを予約します。
したがって、フリーのディスクスペースが少ない場合、すでに進行中の大規模なマージによってこのスペースが予約されているため、新たなマージが開始できず、各挿入で小さなパーツ数が増加する状況が発生する可能性があります。
max_cleanup_delay_period
古いキューログ、ブロックハッシュ、およびパーツをクリーンアップする最大期間。
max_compress_block_size
テーブルに書き込むために圧縮する前の非圧縮データブロックの最大サイズ。この設定はグローバル設定でも指定できます(max_compress_block_size 設定を参照)。テーブル作成時に指定された値は、この設定に対するグローバル値を上書きします。
max_delay_to_insert
アクティブなパーツの数が単一パーティションで parts_to_delay_insert 値を超えた場合の INSERT
遅延を計算するために使用される秒数の値。
可能な値:
- 任意の正の整数。
INSERT
の遅延(ミリ秒)は次の式で計算されます:
例えば、パーティションに299のアクティブパーツがあり、parts_to_throw_insert = 300、parts_to_delay_insert = 150、max_delay_to_insert = 1の場合、INSERT
は pow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000
ミリ秒遅延します。
バージョン23.1から、式が次のように変更されました:
例えば、パーティションに224のアクティブパーツがあり、parts_to_throw_insert = 300、parts_to_delay_insert = 150、max_delay_to_insert = 1、min_delay_to_insert_ms = 10の場合、INSERT
は max( 10, 1 * 1000 * (224 - 150 + 1) / (300 - 150) ) = 500
ミリ秒遅延します。
max_delay_to_mutate_ms
未完了の変異が多数存在する場合の、MergeTree テーブルの最大遅延(ミリ秒)。
max_digestion_size_per_segment
GIN インデックスを構築するために、セグメントごとに消化する最大バイト数。
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 の類似)。垂直マージのみに適用されます。
max_merge_selecting_sleep_ms
パーツが選択されなかった後に再度マージ用のパーツを選択する前に待機する最大時間。設定を低くすると、大規模クラスタにおいてzookeeperへのリクエストが大量に発生することになります。
max_number_of_merges_with_ttl_in_pool
プール内にTTLエントリを持つマージの指定数を超えた場合、新しいTTLを有するマージを割り当てない。この設定は通常のマージのための自由なスレッドを残し、"Too many parts" を避けるためです。
max_number_of_mutations_for_replica
レプリカあたりのパーツ変異の数を指定された数に制限します。 ゼロはレプリカあたりの変異の制限なしを意味します(他の設定によって実行が制約される場合があります)。
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
値を超えた場合、INSERT
は Too 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
失敗したレプリケートタスクに対する最大延期時間。この値は、タスクがフェッチ、マージ、または変異でない場合に使用されます。
max_projections
Merge tree プロジェクションの最大数。
max_replicated_fetches_network_bandwidth
Replicated フェッチにおけるネットワーク経由のデータ交換の最大速度をバイト/秒で制限します。この設定は特定のテーブルに適用され、サーバーに適用される 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 キューで同時に許可されるパーツの変異タスクの数。
max_replicated_sends_network_bandwidth
Replicated 送信におけるネットワーク経由のデータ交換の最大速度をバイト/秒で制限します。この設定は特定のテーブルに適用され、サーバーに適用される max_replicated_sends_network_bandwidth_for_server
設定とは異なります。
サーバーネットワークと特定のテーブルのネットワークの両方を制限できますが、テーブルレベルの設定の値はサーバーレベルのものより小さくする必要があります。さもなければ、サーバーは max_replicated_sends_network_bandwidth_for_server
設定のみを考慮します。
設定は完全に正確には遵守されません。
可能な値:
- 正の整数。
0
— 無制限。
使用方法
新しいノードを追加または置き換えるためにデータをレプリケートするときに速度を制限するために使用できる。
max_suspicious_broken_parts
単一パーティション内の破損したパーツの数が max_suspicious_broken_parts
値を超えると、自動削除が拒否されます。
可能な値:
- 任意の正の整数。
max_suspicious_broken_parts_bytes
破損したパーツの最大サイズ、これを超えると自動削除が拒否されます。
可能な値:
- 任意の正の整数。
merge_max_block_size
マージされたパーツからメモリに読み込まれる行の数。
可能な値:
- 任意の正の整数。
マージは merge_max_block_size
行ごとにパーツから行を読み込み、その後マージして新しいパーツに結果を書き込みます。読み取りブロックは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 のみで利用可能。マージの際にキャッシュを事前に温めるためのパーツ(コンパクトまたはパック)の最大サイズ。
merge_selecting_sleep_ms
パーツが選択されなかった後に再度マージ用のパーツを選択する前に待機する最小時間。設定を低くすると、大規模クラスタに於いてzookeeperへのリクエストが大量に発生します。
merge_selecting_sleep_slowdown_factor
マージ選択タスクの待機時間は、マージするものが何もないときはこのファクターで乗算され、マージが割当てられた場合は除算されます。
merge_selector_algorithm
マージの割当のためにパーツを選択するアルゴリズム。
merge_selector_base
割当られたマージの書き込み増幅に影響します(専門レベルの設定で、何をしているのかわからない場合は変更しないでください)。Simple および StochasticSimple マージセレクタに対して機能します。
merge_selector_blurry_base_scale_factor
パーティション内のパーツの数に対して論理の発動を制御します。ファクターが大きいほど、反応が遅れます。
merge_selector_enable_heuristic_to_remove_small_parts_at_right
指定された比率(0.01)の合計サイズに対して、小さなパーツを範囲の右側から削除するためのヒューリスティックを有効にします。Simple および StochasticSimple マージセレクタに対して機能します。
merge_selector_window_size
一度にどれだけのパーツを調べるか。
merge_total_max_bytes_to_prewarm_cache
ClickHouse Cloud のみで利用可能。マージの際にキャッシュを事前に温めるためのパーツの総最大サイズ。
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
削除TTLでのマージを再実行する前の最小遅延(秒)。
merge_workload
リソースの利用とマージおよび他のワークロード間の共有を調整するために使用されます。指定された値は、このテーブルのバックグラウンドマージに対する workload
設定値として使用されます。指定されていない場合(空文字列)、サーバー設定 merge_workload
が代わりに使用されます。
参照
min_absolute_delay_to_close
リクエストのサービスを停止し、ステータスチェック中に 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 のみで利用可能。パートデータのフルタイプストレージを使用するために必要な最小の未圧縮サイズ(バイト)。
min_bytes_for_wide_part
Wide
フォーマットで保存できるデータパーツ内の最小バイト数/行数。この設定の1つ、両方、またはどちらも指定できます。
min_bytes_to_prewarm_caches
新しいパーツのためにマークキャッシュとプライマリインデックスキャッシュを事前に温めるための最小サイズ(未圧縮バイト)。
min_bytes_to_rebalance_partition_over_jbod
新しい大きなパーツをボリュームディスク JBOD に分配するときに再バランスを有効にするための最小バイト数を設定します。
可能な値:
- 正の整数。
0
— バランスは無効。
使用方法
min_bytes_to_rebalance_partition_over_jbod
設定の値は、max_bytes_to_merge_at_max_space_in_pool の値 / 1024 より小さくするべきです。そうでない場合、ClickHouseは例外をスローします。
min_compress_block_size
次のマークを書き込むときに圧縮のために必要な未圧縮データの最小サイズのブロック。グローバル設定でこの設定を指定することもできます(min_compress_block_size 設定を参照)。テーブル作成時に指定した値は、この設定のグローバル値を上書きします。
min_compressed_bytes_to_fsync_after_fetch
フェッチ後にパートの fsync を行うための最小圧縮バイト数(0 - 無効)。
min_compressed_bytes_to_fsync_after_merge
マージ後にパートの fsync を行うための最小圧縮バイト数(0 - 無効)。
min_delay_to_insert_ms
単一パーティション内に多数の未マージパーツがある場合の、MergeTree テーブルにデータを挿入するための最小遅延(ミリ秒)。
min_delay_to_mutate_ms
未完了の変異が多数存在する場合の、MergeTree テーブルの最小遅延(ミリ秒)。
min_free_disk_bytes_to_perform_insert
データを挿入するためにディスクスペースに必要な最小バイト数。min_free_disk_bytes_to_perform_insert
よりも利用可能な空きバイトが少ない場合、例外がスローされ、挿入は実行されません。この設定は:
keep_free_space_bytes
設定を考慮します。INSERT
操作によって書き込まれるデータの量は考慮しません。- 正の(ゼロ以外の)バイト数が指定された場合にのみチェックされます。
可能な値:
- 任意の正の整数。
min_free_disk_bytes_to_perform_insert
と min_free_disk_ratio_to_perform_insert
の両方が指定されている場合、ClickHouse はより多くの空きメモリで挿入を行える値を考慮します。
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_insert
と min_free_disk_bytes_to_perform_insert
の両方が指定されている場合、ClickHouse はより多くの空きメモリで挿入を行える値を考慮します。
min_index_granularity_bytes
バイト単位でのデータグラニュールの最小許可サイズ。
非常に低い index_granularity_bytes
を持つテーブルが誤って作成されるのを防ぐための保護措置です。
min_marks_to_honor_max_concurrent_queries
max_concurrent_queries 設定を適用するためにクエリによって読み取られる最小のマーク数。
クエリは他の max_concurrent_queries
設定によっても制限されます。
可能な値:
- 正の整数。
0
— 無効(max_concurrent_queries
限界がクエリに適用されない)。
例
min_merge_bytes_to_use_direct_io
ストレージディスクへの直接 I/O アクセスを使用するために必要なマージ操作の最小データ量。この量を超えると、ClickHouseは直接 I/O インターフェース(O_DIRECT
オプション)を使用して、データをストレージディスクに読み書きします。min_merge_bytes_to_use_direct_io = 0
の場合、直接 I/O は無効になります。
min_parts_to_merge_at_once
マージセレクタが一度にマージするために選択できる最小データパーツ数(専門レベルの設定で、何をしているのかわからない場合は変更しないでください)。 0 - 無効。Simple および StochasticSimple マージセレクタに対して機能します。
min_relative_delay_to_close
他のレプリカからの最小遅延、閉じるために、リクエストのサービスを停止し、ステータスチェック中に 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 のみで利用可能。パートデータのフルタイプストレージを使用するのに必要な最小行数。
min_rows_for_wide_part
コンパクトではなく広域形式の部分を作成するための最小行数。
min_rows_to_fsync_after_merge
マージ後の部分の fsync のための最小行数(0 - 無効)。
mutation_workload
変異と他のワークロード間でリソースがどのように利用され、共有されるかを調整するために使用されます。指定された値は、このテーブルのバックグラウンド変異に対する workload
設定値として使用されます。指定されていない場合(空文字列)、サーバー設定 mutation_workload
が代わりに使用されます。
参照
non_replicated_deduplication_window
重複を確認するためにハッシュサムが保存される非レプリケート MergeTree テーブル内の最近挿入されたブロックの数。
可能な値:
- 任意の正の整数。
0
(重複排除無効)。
重複排除メカニズムは、レプリケートテーブルで使用されるものと類似しています(replicated_deduplication_window 設定を参照)。作成されたパーツのハッシュサムは、ディスク上のローカルファイルに書き込まれます。
notify_newest_block_number
SharedJoin または SharedSet に最新のブロック番号を通知します。ClickHouse Cloud のみに適用されます。
number_of_free_entries_in_pool_to_execute_mutation
プール内の空きエントリの指定された数が未満の場合、部分変異を実行しません。これは通常のマージのための自由なスレッドを残し、「Too many parts」エラーを避けるためです。
可能な値:
- 任意の正の整数。
使用方法
number_of_free_entries_in_pool_to_execute_mutation
設定の値は、background_pool_size と
background_merges_mutations_concurrency_ratio の値より小さくするべきです。そうでない場合、ClickHouseは例外をスローします。
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
が有効になっています)。これは通常のマージのための自由なスレッドを残し、「Too many parts」を避けるためです。
可能な値:
- 正の整数。
number_of_free_entries_in_pool_to_execute_optimize_entire_partition
設定の値は、background_pool_size と
background_merges_mutations_concurrency_ratio の値より小さくするべきです。そうでない場合、ClickHouseは例外をスローします。
number_of_free_entries_in_pool_to_lower_max_size_of_merge
プール内(またはレプリケートキュー)で空きエントリの数が指定された数未満になると、処理する最大マージサイズを下げます(またはキューに入れます)。 これは小さなマージが処理できるようにするためで、長時間実行されるマージでプールが埋まらないようにします。
可能な値:
- 任意の正の整数。
number_of_mutations_to_delay
テーブルに未完了のミューテーションがその数以上ある場合、テーブルのミューテーションを人工的に遅延させます。0に設定すると無効になります。
number_of_mutations_to_throw
テーブルに未完了のミューテーションがその数以上ある場合、'Too many mutations'例外がスローされます。0に設定すると無効になります。
number_of_partitions_to_consider_for_merge
ClickHouse Cloudでのみ利用可能です。マージを考慮する上位N個のパーティション。重み付けされたランダムな方法で選択され、重みはこのパーティションでマージ可能なデータパーツの量です。
old_parts_lifetime
inactiveなパーツを保存する時間(秒)。サーバーの自発的な再起動中のデータ損失を防ぐためのものです。
可能な値:
- 任意の正の整数。
複数のパーツを新しいパーツにマージした後、ClickHouseは元のパーツを非アクティブとしてマークし、old_parts_lifetime
秒経過後にのみ削除します。非アクティブなパーツは、現在のクエリで使用されていない場合に削除されます。つまり、パーツのrefcount
が1の場合です。
新しいパーツにはfsync
は呼び出されないため、新しいパーツはサーバーのRAM(OSキャッシュ)のみでしばらく存在します。サーバーが自発的に再起動されると、新しいパーツが失われたり損傷したりする可能性があります。データを保護するために、非アクティブなパーツはすぐに削除されません。
起動時にClickHouseはパーツの整合性をチェックします。マージされたパーツが損傷している場合、ClickHouseは非アクティブなパーツをアクティブリストに戻し、後で再度マージします。この後、損傷したパーツは名前が変更され(broken_
プレフィックスが追加され)、detached
フォルダーに移動されます。マージされたパーツが損傷していない場合、元の非アクティブなパーツは名前が変更され(ignored_
プレフィックスが追加され)、detached
フォルダーに移動されます。
デフォルトのdirty_expire_centisecs
値(Linuxカーネルの設定)は30秒です(書き込まれたデータがRAMにのみ保存される最大時間)が、ディスクシステムに負荷がかかると、データははるかに遅れて書き込まれる可能性があります。実験的に、old_parts_lifetime
の値は480秒に設定されており、この間に新しいパーツが確実にディスクに書き込まれることが保証されます。
optimize_row_order
挿入時に行の順序を最適化して、新しく挿入されたテーブルパーツの圧縮性を改善するかどうかを制御します。
これは通常のMergeTreeエンジンテーブルにのみ影響があります。特化したMergeTreeエンジンテーブル(例:CollapsingMergeTree)には何の効果もありません。
MergeTreeテーブルは、compression codecsを使用してオプションで圧縮されます。LZ4やZSTDなどの一般的な圧縮コーデックは、データにパターンが表示される場合に最大圧縮率を達成します。同じ値の長いランは通常、非常によく圧縮されます。
この設定が有効になっている場合、ClickHouseは新しく挿入されたパーツのデータを、カラムの列の間で同じ値のランの数を最小化する行の順序に格納しようとします。言い換えれば、少数の同じ値のランは、その個々のランが長く、よく圧縮されることを意味します。
最適な行の順序を見つけることは計算上扱いが難しい(NP困難)です。そのため、ClickHouseはオリジナルの行の順序よりも圧縮率を改善する行の順序を迅速に見つけるためのヒューリスティクスを使用します。
行の順序を見つけるためのヒューリスティクス
SQLでは同じテーブル(またはテーブルパーツ)を異なる行の順序で考慮することが等価と見なされるため、テーブルの行を自由にシャッフルすることが一般的に可能です。
テーブルに主キーが定義されている場合、この行のシャッフルの自由度は制限されます。ClickHouseでは、主キーC1, C2, ..., CN
は、テーブル行がC1
、C2
、... Cn
のカラムによってソートされることを強制します(clustered index)。そのため、行は「同値クラス」の内部でのみシャッフルできます。つまり、主キーカラムの値が同じ行です。主キーが高カーディナリティであると、たとえばDateTime64
タイムスタンプカラムを含む場合、非常に小さな同値クラスが多数生成されます。同様に、カーディナリティが低い主キーのテーブルは、少数の大きな同値クラスを生成します。主キーがないテーブルは、すべての行を網羅する単一の同値クラスの極端なケースを表します。
同値クラスの数が少なく、同値クラスが大きいほど、行を再シャッフルする自由度が高くなります。
各同値クラス内で最良の行の順序を見つけるために適用されるヒューリスティクスは、D. Lemire、O. Kaserによって提案されていますReordering columns for smaller indexesおよび非主キー列のカーディナリティの昇順で各同値クラス内の行をソートすることに基づいています。
3つのステップを実行します。
- 主キー列の行の値に基づいてすべての同値クラスを見つけます。
- 各同値クラスについて、非主キー列のカーディナリティを計算(通常は推定)します。
- 各同値クラスについて、非主キー列のカーディナリティの昇順で行をソートします。
これが有効な場合、挿入操作は、新しいデータの行の順序を分析し最適化するために追加のCPUコストが発生します。INSERTはデータの特性によっては30〜50%長くなると予想されます。LZ4またはZSTDの圧縮率は平均で20〜40%向上します。
この設定は、主キーがないテーブルやカーディナリティの低い主キーを持つテーブルに最適に機能します。つまり、異なる主キー値が少ないテーブルです。高カーディナリティの主キー、例:DateTime64
型タイムスタンプカラムを含むものは、この設定の恩恵を受けることは期待できません。
part_moves_between_shards_delay_seconds
シャード間でパーツを移動する前後の待機時間。
part_moves_between_shards_enable
シャード間でパーツを移動するための実験的/未完成の機能。シャーディング式は考慮しません。
parts_to_delay_insert
単一のパーティション内のアクティブなパーツの数がparts_to_delay_insert
値を超えると、INSERT
は人工的に遅延されます。
可能な値:
- 任意の正の整数。
ClickHouseはINSERT
を人工的に長く実行します('sleep'を追加)。これにより、バックグラウンドマージプロセスが追加されるよりも速くパーツをマージできます。
parts_to_throw_insert
単一のパーティション内のアクティブなパーツの数がparts_to_throw_insert
値を超えると、INSERT
がToo 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なら、マークキャッシュは挿入、マージ、フェッチ、サーバーの起動時にマークを保存することによってプレウォームされます。
prewarm_primary_key_cache
もしtrueなら、プライマリインデックスキャッシュは挿入、マージ、フェッチ、サーバーの起動時にマークを保存することによってプレウォームされます。
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
主キーデータパーツの列の値がこの比率以上に変化する場合、メモリに次のカラムをロードすることをスキップします。これは、主キーの無駄なカラムをロードしないことでメモリ使用量を節約できます。
ratio_of_defaults_for_sparse_serialization
列のすべての値に対するデフォルト値の数の最小比率。この値を設定すると、スパースシリアライズを使用して列が保存されます。
列がスパース(主にゼロを含む)の場合、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に設定します:
my_sparse_table
のs
カラムはディスク上でより少ないストレージスペースを使用しています:
スパースエンコーディングを使用しているかどうかを確認するには、system.parts_columns
テーブルのserialization_kind
カラムを表示します:
s
のどのパーツがスパースシリアリゼーションを使用して保存されているかを見ることができます:
reduce_blocking_parts_sleep_ms
ClickHouse Cloudでのみ使用可能。範囲が削除/置き換えられなかった後に再度ブロッキングパーツを減らそうとする最小時間。設定を低くすると、large-scaleクラスターで大量のリクエストがZooKeeperに発生するため、background_schedule_poolでタスクが頻繁にトリガーされます。
refresh_parts_interval
値がゼロより大きい場合 - 基本ファイルシステムからデータパーツのリストをリフレッシュして、データが内部で更新されたかどうかを確認します。この設定は、テーブルが読み取り専用ディスクにある場合のみ設定できます(これは、別のレプリカによってデータが書き込まれている間の読み取り専用レプリカを意味します)。
remote_fs_execute_merges_on_single_replica_time_threshold
この設定の値がゼロより大きい場合、共有ストレージ上のマージパーツでallow_remote_fs_zero_copy_replication
が有効であれば、単一のレプリカがすぐにマージを開始します。
ゼロコピー複製は本番環境にはまだ準備が整っていません。 ゼロコピー複製はClickHouseバージョン22.8以降、デフォルトで無効になっています。
この機能は本番環境での使用は推奨されません。
可能な値:
- 任意の正の整数。
remote_fs_zero_copy_path_compatible_mode
変換プロセス中に互換モードでゼロコピーを実行します。
remote_fs_zero_copy_zookeeper_path
ゼロコピーのテーブル非依存情報のためのZooKeeperパス。
remove_empty_parts
TTL、ミューテーション、またはコラプシングマージアルゴリズムでプルーニングされた後、空のパーツを削除します。
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が重複を確認するためにハッシュの合計を保持します。
可能な値:
- 任意の正の整数。
- 0(非同期挿入の重複排除を無効にする)
非同期挿入コマンドは1つ以上のブロック(パーツ)にキャッシュされます。挿入の重複排除のために、レプリケートテーブルに書き込む際、ClickHouseは各挿入のハッシュの合計を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
より古いハッシュの合計はClickHouse Keeperから削除されます。replicated_deduplication_window
未満の場合でも適用されます。
この時間は、最新のレコードの時間に対して相対的であり、壁の時間に対してではありません。唯一のレコードである場合、このレコードは永遠に保持されます。
replicated_deduplication_window_seconds_for_async_inserts
非同期挿入のハッシュの合計がClickHouse Keeperから削除されるまでの秒数。
可能な値:
- 任意の正の整数。
replicated_deduplication_window_for_async_insertsと同様に、replicated_deduplication_window_seconds_for_async_inserts
は非同期挿入の重複排除のためにハッシュの合計をどのくらいの期間保持するかを指定します。replicated_deduplication_window_seconds_for_async_inserts
より古いハッシュの合計はClickHouse Keeperから削除されます。replicated_deduplication_window_for_async_inserts
未満の場合でも適用されます。
この時間は、最新のレコードの時間に対して相対的であり、壁の時間に対してではありません。唯一のレコードである場合、このレコードは永遠に保持されます。
replicated_fetches_http_connection_timeout
廃止された設定で、何も行いません。
replicated_fetches_http_receive_timeout
廃止された設定で、何も行いません。
replicated_fetches_http_send_timeout
廃止された設定で、何も行いません。
replicated_max_mutations_in_one_entry
1つのMUTATE_PARTエントリでまとめて実行できる最大のミューテーションコマンド数(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
shared_merge_tree_create_per_replica_metadata_nodes
ZooKeeperにおけるレプリカごとの/metadataおよび/columnsノードの作成を有効にします。ClickHouse Cloudでのみ利用可能です。
shared_merge_tree_disable_merges_and_mutations_assignment
共有マージツリーのマージ割り当てを停止します。ClickHouse Cloudでのみ利用可能です。
shared_merge_tree_enable_coordinated_merges
コーディネートマージ戦略を有効にします。
shared_merge_tree_enable_keeper_parts_extra_data
仮想パーツ内に属性を書き込み、キーパーでブロックをコミットすることを有効にします。
shared_merge_tree_enable_outdated_parts_check
古いパーツのチェックを有効にします。ClickHouse Cloudでのみ利用可能です。
shared_merge_tree_idle_parts_update_seconds
共有マージツリーのZooKeeperウォッチによってトリガーされずにパーツの更新を行う間隔(秒)。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
挿入のリトライ中に誤ったアクションを避けるために、挿入メモ化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
コーディネーターが準備し、ワーカーに配布すべきマージエントリの数
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_partitions_hint_ratio_to_reload_merge_pred_for_mutations
<candidate partitions for mutations only (partitions that cannot be merged)>/<candidate partitions for mutations>
の比率がこの設定を超えた場合に、マージ/ミューテート選択タスクでマージ述語を再読み込みします。ClickHouse Cloud でのみ利用可能です。
shared_merge_tree_parts_load_batch_size
一度にスケジュール可能なフェッチ部分メタデータジョブの量。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_try_fetch_part_in_memory_data_from_replicas
有効にすると、すべてのレプリカが他のレプリカからメモリ上のデータ(プライマリキー、パーティション情報など)を取得しようとします。
shared_merge_tree_use_metadata_hints_cache
他のレプリカのメモリ内キャッシュから FS キャッシュヒントを要求することを有効にします。ClickHouse Cloud でのみ利用可能です。
shared_merge_tree_use_outdated_parts_compact_format
古いパーツのコンパクトフォーマットを使用します:Keeperへの負荷を軽減し、古いパーツの処理を改善します。ClickHouse Cloud でのみ利用可能です。
shared_merge_tree_use_too_many_parts_count_from_virtual_parts
有効にすると、多すぎるパーツのカウンターはローカルレプリカの状態ではなく、Keeper の共有データに依存します。ClickHouse Cloud でのみ利用可能です。
simultaneous_parts_removal_limit
古いパーツが多数ある場合、クリーンスレッドは1回の反復中にsimultaneous_parts_removal_limit
個のパーツを削除しようとします。simultaneous_parts_removal_limit
が0
に設定されている場合、無制限を意味します。
sleep_before_commit_local_part_in_replicated_table_ms
テスト用です。変更しないでください。
sleep_before_loading_outdated_parts_ms
テスト用です。変更しないでください。
storage_policy
ストレージディスクポリシーの名前
table_disk
これはテーブルディスクであり、パス/エンドポイントはデータベースデータではなくテーブルデータを指す必要があります。s3_plain/s3_plain_rewritable/web のみ設定できます。
temporary_directories_lifetime
tmp_-ディレクトリを保持する秒数。この値を低く設定しないでください。マージやミューテーションがこの設定の低い値で機能できなくなる可能性があります。
try_fetch_recompressed_part_timeout
再圧縮とのマージを開始する前のタイムアウト(秒単位)。この間、ClickHouseは再圧縮を伴うマージを割り当てられたレプリカから再圧縮されたパーツを取得しようとします。
ほとんどのケースで再圧縮は遅いため、このタイムアウトが終了するまで再圧縮を伴うマージを開始せず、再圧縮されたパーツを取得しようとします。
可能な値:
- 任意の正の整数。
ttl_only_drop_parts
MergeTree テーブルで、すべての行がその TTL
設定に従って期限切れになったときにデータパーツが完全に削除されるかどうかを制御します。
ttl_only_drop_parts
が無効(デフォルト)になっている場合、TTL 設定に基づいて期限切れになった行のみが削除されます。
ttl_only_drop_parts
が有効になっている場合、そのパーツ内のすべての行が TTL 設定に従って期限切れになった場合、全体のパーツが削除されます。
use_adaptive_write_buffer_for_dynamic_subcolumns
動的サブカラムを書き込む際にメモリ使用量を減らすために、適応型ライターバッファの使用を許可します。
use_async_block_ids_cache
TRUEの場合、非同期挿入のハッシュサムをキャッシュします。
可能な値:
true
false
複数の非同期挿入を持つブロックは、複数のハッシュサムを生成します。 挿入の一部が重複している場合、Keeperは1つのRPCで重複したハッシュサムをのみ返し、これにより不要なRPCの再試行が発生します。このキャッシュはKeeper内のハッシュサムパスを監視します。Keeperで更新が監視されると、キャッシュはできるだけ早く更新され、メモリ内の重複する挿入をフィルタリングできるようになります。
use_compact_variant_discriminators_serialization
Variant データ型における識別子のバイナリシリアライズにコンパクトモードを有効にします。 このモードにより、ほとんど1つのバリアントか多くの NULL 値がある場合に、パーツ内に識別子を保存するために必要なメモリを大幅に減らすことができます。
use_const_adaptive_granularity
全体のパーツに対して一定の粒度を常に使用します。これにより、インデックス粒度の値をメモリ内で圧縮できます。非常に大規模なワークロードで薄いテーブルで役立つ場合があります。
use_metadata_cache
廃止された設定で、何もしません。
use_minimalistic_checksums_in_zookeeper
ZooKeeper 内のパーツチェックサムに小さなフォーマット(数十バイト)を使用します。普通のフォーマット(数十KB)ではなく、すべてのレプリカが新しいフォーマットをサポートしていることを確認してから有効にしてください。
use_minimalistic_part_header_in_zookeeper
ZooKeeper におけるデータパーツヘッダーの保存方法です。これを有効にすると、ZooKeeper が格納するデータが少なくなります。詳細は こちら を参照してください。
use_primary_key_cache
すべてのインデックスをメモリに保存するのではなく、プライマリインデックスのためのキャッシュを使用します。非常に大きなテーブルで役立つ場合があります。
vertical_merge_algorithm_min_bytes_to_activate
垂直マージアルゴリズムを有効にするためのマージパーツの最小(おおよその)未圧縮サイズ(バイト単位)。
vertical_merge_algorithm_min_columns_to_activate
垂直マージアルゴリズムを有効にするための最小の非PKカラム数。
vertical_merge_algorithm_min_rows_to_activate
垂直マージアルゴリズムを有効にするためのマージパーツの最小(おおよその)行数の合計。
vertical_merge_remote_filesystem_prefetch
TRUEの場合、マージ中の次のカラムのためにリモートファイルシステムからデータをプレフェッチします。
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
コンパクトパーツ内の各サブストリームごとにマークを記録することを有効にします。これにより、データパーツから個別のサブカラムを効率的に読み取ることが可能になります。
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
ゼロコピーのレプリケーションが有効になっている場合、マージまたはミューテーションのためにロックを試みる前に、最大500ミリ秒の間ランダムな時間スリープします。
zookeeper_session_expiration_check_period
ZooKeeper セッションの有効期限切れを確認する間隔(秒単位)。
可能な値:
- 任意の正の整数。