MergeTree テーブル設定
System table system.merge_tree_settings
は、全体的に設定された MergeTree の設定を表示します。
MergeTree の設定は、サーバの設定ファイルの merge_tree
セクションで設定することもできますし、各 MergeTree
テーブル個別に CREATE TABLE
ステートメントの SETTINGS
式に指定することもできます。
設定 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
有効な場合、テーブルの全ての数値カラムに対して最小-最大(スキッピング)インデックスが追加されます。
add_minmax_index_for_string_columns
有効な場合、テーブルの全ての文字列カラムに対して最小-最大(スキッピング)インデックスが追加されます。
allow_coalescing_columns_in_partition_or_order_key
有効な場合、CoalescingMergeTree テーブルの結合されるカラムをパーティションまたはソートキーで使用することを許可します。
allow_experimental_replacing_merge_with_cleanup
is_deleted
カラムを持つ ReplacingMergeTree に対して、実験的な CLEANUP マージを許可します。これを有効にすると、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
式に降順を定義できます。これにより、降順クエリの際に ReadInOrder
最適化を利用でき、ReadInReverseOrder
よりも効率的です。
例
クエリで 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
共有のマージツリー テーブルのためにブロックされたパーツを削減するバックグラウンドタスクです。 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
は全てのノードが新しいデータパーツをストレージからキャッシュに、クエリをトリガーする必要なくロードする原因になります。
参照
cache_populated_by_fetch_filename_regexp
この設定は ClickHouse Cloud のみ適用されます。
空でない場合、この正規表現に一致するファイルのみがフェッチ後にキャッシュに事前にウォームアップされます(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
廃止された設定、何も行いません。
columns_and_secondary_indices_sizes_lazy_calculation
テーブル初期化時ではなく、最初のリクエスト時に lazy にカラムおよび二次インデックスのサイズを計算します。
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(Replicated、Shared でない)テーブルにプロジェクションを作成することを許可するかどうか。無視オプションは互換性のためだけであり、間違った答えになる可能性があります。それ以外に、マージプロジェクションの際のアクション、破棄または再構築どちらかの行動を指示できます。したがって、クラシック 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
ストレージディスクの名前。ストレージポリシーの代わりに指定できます。
dynamic_serialization_version
Dynamic データ型のためのシリアル化バージョンです。互換性のために必要です。
可能な値:
v1
v2
v3
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
参照
exclude_materialize_skip_indexes_on_merge
指定されたカンマ区切りリストのスキップインデックスを、マージ時に構築および保存から除外します。materialize_skip_indexes_on_merge が false の場合には影響を持ちません。
除外されたスキップインデックスは、MATERIALIZE INDEX
クエリや、INSERT 時に materialize_skip_indexes_on_insert
セッション設定に従って、依然として構築および保存されるでしょう。
例:
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
は以下のエラーで中断されます:
"非アクティブなパーツが多すぎます (N)。パーツのクリーニングが挿入よりも著しく遅れています" という例外。
可能な値:
- どの正の整数でも。
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 や INSERT 時 によって作成/保存されます。
exclude_materialize_skip_indexes_on_merge
についても参照して、より細かな制御を行います。
materialize_ttl_recalculate_only
MATERIALIZE TTLの際のみ ttl 情報を再計算します。
max_avg_part_size_for_too_many_parts
'too many parts' のチェックは、'parts_to_delay_insert' と 'parts_to_throw_insert' に従って、平均パートサイズ(関連するパーティション内)が指定された閾値を超えない場合にのみアクティブになります。閾値が超えた場合、INSERTは遅延または拒否されません。これにより、パーツが成功裏に大きなパーツにマージされる限り、単一サーバー上で数百テラバイトのデータを一つのテーブルに保存できます。これは非アクティブパーツまたは総パーツの閾値には影響を与えません。
max_bytes_to_merge_at_max_space_in_pool
十分なリソースがある場合に、一つのパーツにマージされる最大パーツサイズ(バイト単位)。
可能な値:
- どの非負整数でも。
マージスケジューラは、定期的にパーティション内のサイズおよびパーツの数を分析します。そして、プール内の十分な空きリソースがあれば、バックグラウンドマージを開始します。マージは、ソースパーツの合計サイズが 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
バックグラウンドプールでの最小利用可能リソースで、一つのパーツにマージされる最大パーツサイズ(バイト単位)。
可能な値:
- どの正の整数でも。
max_bytes_to_merge_at_min_space_in_pool
は、利用可能なディスクスペースの不足にもかかわらず、マージ可能なパーツの最大総サイズを定義します。これは、小さなパーツの数を減らすために必要です。マージは合計マージパーツサイズを2倍にしてディスクスペースを確保します。したがって、フリーディスクスペースが少ない場合、現在の状態でフリースペースがあっても大規模なマージが進行中のため、他のマージが開始できず、小さなパーツの数が挿入のたびに増加する可能性があります。
max_cleanup_delay_period
古いキューログ、ブロックのハッシュ、およびパーツをクリーンアップするための最大期間です。
max_compress_block_size
テーブルに書き込む前に未圧縮データのブロックの最大サイズ。この設定はグローバル設定でも指定できます(max_compress_block_size 設定を参照)。テーブルが作成される際に指定された値がこの設定のグローバル値を上書きします。
max_concurrent_queries
MergeTree テーブルに関連して同時に実行可能なクエリの最大数です。
クエリは他の max_concurrent_queries
設定によって制限されます。
可能な値:
- 正の整数。
0
— 制限なし。
デフォルト値:0
(制限なし)。
例
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
廃止された設定、何も行いません。
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
廃止された設定、何も行いません。
Evaluation of Translation:
- The translation adheres to the specified HTML and markdown formatting, preserving original structure and tags.
- Technical terms were translated correctly, maintaining context and precision.
- No content or links were incorrectly omitted or altered.
- The original meaning was conveyed clearly in a fluent and professional Japanese wording.
The final translated content is consistent with the translation requirements, ensuring accuracy and adherence to technical terminology.
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
MergeTreeプロジェクションの最大数。
max_replicated_fetches_network_bandwidth
レプリケートされた 取得のためのネットワーク越しのデータ交換の最大速度をバイト毎秒で制限します。この設定は特定のテーブルに適用され、サーバーに適用される 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
レプリケートされた 送信のためのネットワーク越しのデータ交換の最大速度をバイト毎秒で制限します。この設定は特定のテーブルに適用され、サーバーに適用される 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
行のブロックでパーツから行を読み込み、その結果を新しいパートにマージして書き込みます。読み取られたブロックは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
パーツが選択されなかった場合、再度マージするためのパーツを選択するまでの最小待機時間。低い設定により、background_schedule_pool 内で頻繁に選択タスクがトリガーされ、大規模クラスターでは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
操作によって書き込まれるデータの量は考慮されません。- 正の(ゼロでない)比率が指定された場合のみチェックされます。
可能な値:
- 浮動小数点、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はマージされるすべてのデータの合計ストレージボリュームを計算します。このボリュームが min_merge_bytes_to_use_direct_io
バイトを超えると、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ログに保存しておく必要がある最後のレコードの数です。
可能な値:
- 任意の正の整数。
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
テーブルに少なくともこれだけの未完了の変異がある場合、テーブルの変異を人工的に遅くします。 ゼロが設定されている場合は無効です。
number_of_mutations_to_throw
テーブルに少なくともこれだけの未完了の変異がある場合、「Too many mutations」例外をスローします。 ゼロが設定されている場合は無効です。
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
共有データシリアル化で機能します。
object_shared_data_buckets_for_wide_part
Wide パーツにおけるJSON共有データシリアル化のためのバケットの数。map_with_buckets
および advanced
共有データシリアル化で機能します。
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
この設定は、挿入中に作成されるゼロレベルパーツ内の共有データのシリアル化バージョンを指定することを可能にします。ゼロレベルのパーツには、advanced
共有データシリアル化を使用しないことをお勧めします。挿入時間が大幅に増加する可能性があります。
old_parts_lifetime
サーバーが自発的に再起動された際にデータ損失を防ぐために、非アクティブパーツを保管する時間(秒単位)。
可能な値:
- 任意の正の整数。
複数のパーツを新しいパーツにマージした後、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テーブルは、圧縮コーデック を使用して(オプションで)圧縮されます。LZ4 や ZSTD などの一般的な圧縮コーデックは、データにパターンがある場合に最大の圧縮率を達成します。同じ値の長いランは通常非常によく圧縮されます。
この設定が有効な場合、ClickHouseは新しく挿入されたパーツ内のデータを、列の新しいテーブルパート内で等しい値のランの数を最小限に抑えるように行順に保存しようとします。他の言葉で言えば、少ない等しい値の走行は、個々の走行が長く、よく圧縮されることを意味します。
最適な行順序を見つけることは計算上困難(NP困難)です。そのため、ClickHouseはヒューリスティクスを使用して、元の行順序を改善する行順序を迅速に見つけます。
行順序を見つけるためのヒューリスティクス
テーブル(またはテーブルパーツ)の行を自由にシャッフルすることが一般的に可能です。SQLは異なる行順序で同じテーブル(テーブルパーツ)を同等と見なします。
この行をシャッフルする自由は、テーブルに対してプライマリキーが定義されている場合には制限されます。ClickHouseでは、プライマリキー C1, C2, ..., CN
が定義されているテーブルは、それに応じて行は C1
, C2
, ... Cn
カラムでソートされます(クラスタリングインデックス)。その結果、行は「等価クラス」内でのみシャッフルできます。つまり、それらのプライマリキーのカラムで同じ値を持つ行です。高いカーディナリティを持つプライマリーキー(例: DateTime64
タイムスタンプカラムを含むプライマリキー)は、多くの小さな等価クラスをもたらします。低いカーディナリティのプライマリキーを持つテーブルは、少なくて大きな等価クラスを作成します。プライマリキーがないテーブルは、すべての行を含む一つの等価クラスになります。
等価クラスが少なく、大きいほど、行を再シャッフルする際の自由度が高くなります。
各等価クラス内で最適行順を見つけるために適用されるヒューリスティクスは、D. Lemire, O. Kaser によって提案され、小さいインデックスのためのカラムの順序変更 に基づいており、各等価クラス内の行を非プライマリキーのカラムの昇順にソートしています。
三つのステップを実行します:
- プライマリキーのカラムの行値に基づいて、すべての等価クラスを見つけます。
- 各等価クラスに対して、非プライマリキーのカラムのカーディナリティを計算(通常は推定)します。
- 各等価クラスに対して、非プライマリキーのカラムのカーディナリティの昇順で行をソートします。
有効化された場合、挿入操作は新しいデータの行順序を分析し最適化するために追加の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
真の場合、マークキャッシュは、挿入、マージ、フェッチ、サーバーの起動時にマークをマークキャッシュに保存することで、事前にウォームアップされます。
prewarm_primary_key_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
プライマリキーのデータパート内のカラムの値がこの比率の回数以上変わる場合、次のカラムをメモリにロードするのをスキップします。これにより、不要なプライマリキーのカラムをロードせずにメモリ使用量を節約できます。
ratio_of_defaults_for_sparse_serialization
カラム内の default 値の数と 全 値の数の最小比率。この値を設定すると、カラムがスパースシリアライゼーションを使用して保存されるようになります。
カラムがスパース(ほとんどゼロを含む)である場合、ClickHouse はそれをスパースフォーマットでエンコードし、計算を自動的に最適化できます - データはクエリ中に完全なデコンプレッションを必要としません。このスパースシリアライゼーションを有効にするには、ratio_of_defaults_for_sparse_serialization
設定を 1.0 未満に設定してください。値が 1.0 以上の場合、カラムは常に通常のフルシリアライゼーションを使用して書き込まれます。
可能な値:
- スパースシリアライゼーションを有効にするための
0
と1
の間の浮動小数点数。 - スパースシリアライゼーションを使用しない場合は
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 へのリクエストが大量に発生することになります。
refresh_parts_interval
ゼロより大きい場合は、基盤となるファイルシステムからデータパーツのリストを更新して、背景でデータが更新されたかどうかを確認します。 これは、テーブルが読み取り専用ディスクにある場合にのみ設定できます(つまり、データが別のレプリカによって書き込まれている間に、これは読み取り専用のレプリカです)。
remote_fs_execute_merges_on_single_replica_time_threshold
この設定の値がゼロより大きい場合、共有ストレージ上のマージされたパーツがある場合、すぐに単一のレプリカがマージを開始します。
ゼロコピー複製は生産向けではありません。 ゼロコピー複製は、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
false
replicated_deduplication_window
ClickHouse Keeper が重複をチェックするためにハッシュサムを保存する最近挿入されたブロックの数。
可能な値:
- 任意の正の整数。
- 0(重複排除を無効にする)
Insert
コマンドは 1 つ以上のブロック(パーツ)を作成します。insert deduplication において、複製テーブルに書き込むとき、ClickHouse は作成されたパーツのハッシュサムを ClickHouse Keeper に書き込みます。ハッシュサムは、最近の replicated_deduplication_window
ブロックのみに保存されます。最も古いハッシュサムは ClickHouse Keeper から削除されます。
replicated_deduplication_window
の大きな数は、比較するエントリが増えるため Inserts
を遅くします。ハッシュサムは、フィールド名とタイプの構成および挿入されたパートのデータ(バイトのストリーム)から計算されます。
replicated_deduplication_window_for_async_inserts
ClickHouse Keeper が重複をチェックするためにハッシュサムを保存する最近非同期挿入されたブロックの数。
可能な値:
- 任意の正の整数。
- 0(非同期挿入の重複排除を無効にする)
Async Insert コマンドは 1 つ以上のブロック(パーツ)にキャッシュされます。insert deduplication において、複製テーブルに書き込むとき、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
不正なパーツの比率が全体のパーツ数未満の場合 - 開始を許可します。
可能な値:
- 浮動小数点数、0.0 - 1.0。
search_orphaned_parts_disks
ClickHouse は ATTACH または CREATE テーブルのいずれかを行う際に孤立したパーツを探すためにすべてのディスクをスキャンします。これにより、未定義(ポリシーに含まれていない)ディスクでのデータパーツのミスを防ぎます。 孤立したパーツは、ストレージポリシーからディスクが除外された場合など、潜在的な安全性のないストレージ再構成から生じます。 この設定は、ディスクの特性によって検索範囲を制限します。
可能な値:
- any - 範囲は制限されません。
- local - 範囲はローカルディスクによって制限されます。
- none - 空の範囲、検索しません。
serialization_info_version
serialization.json
を書き込む際に使用されるシリアル化情報のバージョン。この設定は、クラスタのアップグレード中の互換性のために必要です。
可能な値:
DEFAULT
WITH_TYPES
タイプのシリアル化バージョンを許可するtypes_serialization_versions
フィールドを持つ新しいフォーマットを書き込みます。これにより、string_serialization_version
などの設定が有効になります。
ロールアップグレード中は、これを DEFAULT
に設定して、新しいサーバーが古いサーバーと互換性のあるデータパーツを生成できるようにします。アップグレードが完了したら、WITH_TYPES
に切り替えてタイプ別のシリアル化バージョンを有効にします。
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_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
共有マージツリーで 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
共有マージツリーのリーダー更新期間に 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
マージコーディネーターが新しいメタデータと同期を取る頻度。
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_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>
の比率が設定値より高い場合、マージ/ミューテート選択タスクでマージ条件を再読み込みします。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_update_replica_flags_delay_ms
レプリカがバックグラウンドスケジュールに応じてフラグを再ロードしようとする頻度。
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 のみで利用可能です。
shared_merge_tree_virtual_parts_discovery_batch
バッチにパックされるべきパーティション発見の数。
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
ストレージディスクポリシーの名前。
string_serialization_version
トップレベルの String
カラムのシリアル化形式を制御します。
この設定は、serialization_info_version
が "with_types" に設定されている場合のみ有効です。
有効にすると、トップレベルの String
カラムは、インラインではなく、文字列の長さを保存する別の .size
サブカラムでシリアル化されます。これにより、実際の .size
サブカラムが可能になり、圧縮効率が向上する可能性があります。
ネストされた String
タイプ(例えば、Nullable
、LowCardinality
、Array
、または Map
内)には影響しませんが、Tuple
内に出現する場合は対象となります。
可能な値:
DEFAULT
— インラインサイズを使用した標準のシリアル化形式を使用します。WITH_SIZE_STREAM
— トップレベルのString
カラム用に別のサイズストリームを使用します。
table_disk
これはテーブルディスクであり、パス/エンドポイントはデータベースデータではなくテーブルデータを指す必要があります。s3_plain/s3_plain_rewritable/web のみ設定可能です。
temporary_directories_lifetime
tmp_-ディレクトリを保持する秒数。この設定の低い値ではマージやミューテーションが正しく機能しない可能性があるため、この値を下げないでください。
try_fetch_recompressed_part_timeout
再圧縮を伴うマージを開始する前のタイムアウト(秒)。この間、ClickHouse は再圧縮されたパーツを持つレプリカから再圧縮されているパーツをフェッチしようとします。
再圧縮はほとんどの場合遅いため、このタイムアウトまで再圧縮を伴うマージを開始せず、再圧縮されたパーツをフェッチしようとします。
可能な値:
- 任意の正の整数。
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
false
複数の非同期挿入を含むブロックは、複数のハッシュサムを生成します。 いくつかの挿入が重複している場合、Keeper は 1 つの RPC 内で 1 つの重複ハッシュサムのみを返すため、不要な RPC リトライが発生します。 このキャッシュは Keeper のハッシュサムパスを監視します。Keeper 内で更新が監視されると、キャッシュはできるだけ早く更新され、重複挿入をメモリ内でフィルタリングできるようになります。
use_compact_variant_discriminators_serialization
バイナリシリアル化におけるディスクリミネーターのコンパクトモードを有効にします。このモードにより、ほとんどの部分に 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_optimize_lightweight_delete
真の場合、軽量削除は垂直マージで最適化されます。
vertical_merge_remote_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
コンパクトパーツ内の各サブストリームごとにマークを書くことを有効にします。これにより、データパーツから個々のサブカラムを効率的に読み取ることができます。
例えば、カラム 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つのサブストリームのそれぞれのためにマークを書き込みます。必要に応じて、各個別のサブストリームのデータをグラニュールから別々に読み取ることができることを意味します。例えば、サブカラム t.c
を読みたい場合、 t.c.size0
、t.c.null
、および t.c
のデータのみを読み、t.a
および t.b
のサブストリームからはデータを読みません。この設定が無効な場合は、トップレベルカラム t
のみのためにマークを書き込むことになり、必要に応じて一部のサブストリームのデータしか必要ない場合でも、常にグラニュールから全カラムデータを読み取ります。
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セッションの有効期限チェック期間(秒単位)。
可能な値:
- 任意の正の整数。