adaptive_write_buffer_initial_size
add_implicit_sign_column_constraint_for_collapsing_engine
sign カラムに暗黙的な制約が追加され、
有効な値 (1 と -1) のみを許可します。
alter_column_secondary_index_mode
ALTER コマンドを許可するかどうか、および
許可する場合にどのような処理を行うかを設定します。デフォルトでは、このような ALTER コマンドは許可され、索引は再構築されます。
設定可能な値:
rebuild(default):ALTERコマンド内のカラムの影響を受けるセカンダリ索引を再構築します。throw: 例外を送出し、明示的 なセカンダリ索引の対象になっているカラムに対するALTERをすべて禁止します。暗黙的な索引はこの制限の対象外であり、再構築されます。drop: 依存するセカンダリ索引を削除します。新しいパーツにはその索引が含まれなくなるため、再作成するにはMATERIALIZE INDEXが必要です。compatibility: 元の動作に合わせます。ALTER ... MODIFY COLUMNではthrow、ALTER ... UPDATE/DELETEではrebuildになります。ignore: 熟練者向けです。索引を不整合な状態のままにするため、誤ったクエリ結果を招く可能性があります。
apply_patches_on_merge
assign_part_uuids
auto_statistics_types
minmax 統計タイプは非推奨です。これは basic の部分集合であるため、代わりに basic を使用してください。
background_task_preferred_step_execution_time_ms
clean_deleted_rows
clone_replica_zookeeper_create_get_part_batch_size
compatibility_allow_sampling_expression_not_in_primary_key
compute_exact_num_defaults_for_sparse_columns
num_defaults カウンターを利用する
optimize_trivial_count_with_sparsity_filter で必要になります (Nullable カラムでは、
さらに nullable_serialization_version = 'allow_sparse' が必要です) 。
無効のままにしておけば inserts/merges の速度は従来どおり維持されますが、有効にすると
スパース化の対象となり得る各カラムごとに O(rows) の追加パスが発生します。
deduplicate_merge_projection_mode
ignore オプションは互換性のためだけのものであり、誤った結果を招く可能性があります。それ以外の値では、許可する場合に
プロジェクションのマージ時にどう処理するかを指定します。動作は drop または rebuild のいずれかです。したがって、従来型の
MergeTree ではこの設定は無視されます。これは OPTIMIZE DEDUPLICATE
も制御しますが、効果は MergeTree family のすべてのメンバーに及びます。lightweight_mutation_projection_mode
オプションと同様に、これも part level です。
設定可能な値:
ignorethrowdroprebuild
deduplication_hashes_cache_update_wait_ms
deduplication_hashes cache が
より新しいバージョンに更新されるのを待つ時間です。この cache は ClickHouse Keeper 内の
deduplication_hashes ディレクトリを反映しているため、insert は
Keeper との往復変換なしで重複を検出できます。
default_compression_codec
- テーブル宣言でそのカラムに定義された圧縮コーデック
default_compression_codecで定義された圧縮コーデック (この設定)compression設定で定義されたデフォルトの圧縮コーデック デフォルト値: 空文字列 (未定義) 。
ディスク
dynamic_serialization_version
v1v2v3
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION) の宛先テーブルに対して有効にすると、
ソーステーブルと宛先テーブルの索引およびプロジェクションは
同一である必要があります。無効な場合は、宛先テーブルが
ソーステーブルの索引およびプロジェクションの上位集合を持つことができます。
execute_merges_on_single_replica_time_threshold
- 任意の正の整数。
finished_mutations_to_keep
force_read_through_cache_for_merges
initialization_retry_period
kill_threads
lightweight_mutation_projection_mode
DELETE は
プロジェクション を持つテーブルでは機能しません。これは、projection 内の行が
DELETE 操作の影響を受ける可能性があるためです。そのため、デフォルト値は throw
です。ただし、このオプションで動作を変更できます。値を drop または rebuild
のいずれかにすると、プロジェクション に対しても deletes が機能するようになります。drop は projection を削除するため、
現在のクエリでは projection が削除されることで高速になる可能性がありますが、
以降のクエリでは projection がアタッチされなくなるため低速になる可能性があります。rebuild は
projection を再構築するため、現在のクエリのパフォーマンスに影響する可能性がありますが、
以降のクエリは高速化される可能性があります。さらに、これらのオプションは
パーツ level でのみ機能するため、変更対象にならない パーツ 内の プロジェクション は、
drop や rebuild のようなアクションをトリガーすることなく、そのまま維持されます。
設定可能な値:
throwdroprebuild
load_existing_rows_count_for_old_parts
truefalse
lock_acquire_timeout_for_background_operations
mutation_workload
workload 設定の値として使用されます。指定しない場合 (空文字列) は、代わりにサーバー設定 mutation_workload が使用されます。
関連項目
non_replicated_deduplication_window
- 任意の正の整数。
0(重複排除を無効化) 。
notify_newest_block_number
nullable_serialization_version
Nullable(T) カラムで使用するシリアライゼーション方式を制御します。
設定可能な値:
-
basic —
Nullable(T)に標準のシリアライゼーションを使用します。 -
allow_sparse —
Nullable(T)でスパースエンコーディングの使用を許可します。
object_serialization_version
v1v2v3
v3 のみです。
old_parts_lifetime
- 任意の正の整数。
old_parts_lifetime 秒が経過した後にのみ削除します。
非アクティブなパーツは、現在のクエリで使用されていない場合、つまり
そのパーツの refcount が 1 の場合に削除されます。
新しいパーツに対しては fsync が呼び出されないため、しばらくの間、新しいパーツは
server の RAM (OS キャッシュ) 上にしか存在しません。server が突発的に再起動すると、
新しいパーツが失われたり破損したりする可能性があります。データ保護のため、
非アクティブなパーツはすぐには削除されません。
起動時に ClickHouse はパーツの整合性を確認します。マージ済みの
パーツが破損している場合、ClickHouse は非アクティブなパーツをアクティブな一覧に戻し、
その後それらを再度マージします。次に、破損したパーツはリネームされ (broken_
プレフィックスが追加され) 、detached フォルダーに移動されます。マージ済みのパーツが
破損していない場合は、元の非アクティブなパーツがリネームされ (ignored_
プレフィックスが追加され) 、detached フォルダーに移動されます。
デフォルトの dirty_expire_centisecs 値 (Linux カーネルの設定) は 30
秒 (書き込まれたデータが RAM にのみ保持される最大時間) ですが、
ディスクシステムに高い負荷がかかっている場合、実際の書き込みはそれよりかなり遅くなることがあります。実験的に、
old_parts_lifetime には 480 秒という値が選ばれており、この間に
新しいパーツが確実にディスクへ書き込まれることが保証されます。
optimize_row_order
DateTime64 の timestamp カラムを含む主キーでは、この設定の恩恵は
期待できません。
packed_skip_index_max_bytes
skp_idx_<name>.idx2 / .mrk2
ファイルとして書き込む代わりに、パーツごとに単一の skp_idx.packed
アーカイブへまとめるしきい値です (シリアライズ後のディスク上バイト数、つまりサブストリームの圧縮と hashing
chain の後のサイズ) 。この値より大きいサブストリームは、従来のファイル単位レイアウトのままです。判定は
書き込み時にサブストリームごとに独立して行われるため、1 つのパーツ内で小さい索引
(例: minmax) はパックされ、大きいもの (例: 重い bloom_filter) はファイル単位のままになる場合があります。パッキングを完全に無効化するには 0 を設定します
(既定値) 。
各 skip-index サブストリームは実際には data file と marks file で構成されており、spill の判定が行われるまで両方が
しきい値までメモリ内に buffer されます。そのため、書き込み中の Peak memory
は 2 * packed_skip_index_max_bytes * (number of substreams that stay below the threshold) に比例します。
全文索引はこの設定ではサポートされず、パックされることはありません。
パッキングにより、table に多数の skip 索引が定義されている場合の inode 負荷を軽減できます (たとえば
add_minmax_index_for_numeric_columns を使用する場合) 。
ディスク上フォーマットは自己記述的です。reader は skp_idx.packed を検出し、その内部のパック済み
サブストリームを透過的に提供します。この設定の変更は新しく書き込まれるパーツにのみ影響し、
既存のパーツは書き込み時のレイアウトを保持します。
part_minmax_index_columns
partition_key_only— パーティションキーのカラムのみを追跡します。with_block_number_offset— パーティションキーのカラムに加えて、永続化された仮想カラム_block_numberと_block_offsetも追跡します。これにより、これらのカラムによるパートレベルの pruning が有効になります。
propagate_types_serialization_versions_to_nested_types
string_serialization_version のようなシリアライゼーションバージョンは、Array/Map/Nullable/JSON/etc. のようなネスト型の内部にも伝播されます。無効にすると、シリアライゼーションバージョンはこの型のトップレベルのカラムと Tuple el にのみ適用されます
ratio_of_defaults_for_sparse_serialization
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
replace_long_file_name_to_hash
replicated_can_become_leader
true の場合、このノード上のレプリケートテーブルのレプリカは
リーダーになることを試みます。
設定可能な値:
truefalse
search_orphaned_parts_disks
- any - 範囲は制限されません。
- local - 範囲はローカルディスクに制限されます。
- none - 対象範囲を空にし、検索しません
serialization_info_version
serialization.json の書き込み時に使用するシリアライゼーションバージョンです。
この設定は、クラスターのアップグレード時に互換性を保つために必要です。
設定可能な値:
basic- 基本フォーマット。with_types- 追加のtypes_serialization_versionsフィールドを含むフォーマットで、型ごとのシリアライゼーションバージョンを使用できます。 これにより、string_serialization_versionのような設定が有効になります。
basic に設定し、新しいサーバーが
古いサーバーと互換性のあるデータパーツを生成するようにします。アップグレード完了後は、
型ごとのシリアライゼーションバージョンを有効にするため、WITH_TYPES に切り替えます。
有効時 (デフォルト) には、共通のプレフィックスを持つドット区切りの名前の Array カラム (例: n.a および n.b)
は Nested 構造の一部として扱われます。これらはディスク上の単一の offsets ファイル (例: n.size0) を共有し、
INSERT 時には配列サイズが同一であることが検証されます。
無効時には、各 Array カラムがそれぞれ独立した offsets ファイルを持ち、ドット区切りの名前に特別な
セマンティクスはなくなります。また、同じプレフィックスを共有するドット区切りの Array カラムと
スカラー カラムを共存させることもできます
(例: n UInt32 と n.a Array(String)) 。この設定はテーブル作成後は変更できません。
simultaneous_parts_removal_limit
simultaneous_parts_removal_limit 個のパーツを削除しようとします。
simultaneous_parts_removal_limit を 0 に設定すると、上限なしを意味します。
storage_policy
string_serialization_version
String カラムのシリアライゼーション フォーマットを制御します。
この設定は、serialization_info_version が “with_types” に設定されている場合にのみ有効です。
with_size_stream に設定すると、トップレベルの String カラムは、サイズをインラインで格納するのではなく、
文字列長を格納する独立した .size サブカラムを使ってシリアライズされます。これにより実際の .size
サブカラムを利用できるようになり、圧縮効率が向上する場合があります。
ネストされた String 型 (たとえば Nullable、LowCardinality、Array、Map の内部にあるもの)
は、Tuple 内に現れる場合を除き、影響を受けません。
設定可能な値:
single_stream— サイズをインラインで格納する標準のシリアライゼーション フォーマットを使用します。with_size_stream— トップレベルのStringカラムに対して、独立したサイズストリームを使用します。
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- 任意の正の整数。
ttl_only_drop_parts
TTL 設定に従ってそのパーツ内のすべての行の有効期限が切れた場合に、
MergeTree テーブルでデータパーツ全体を完全に削除するかどうかを制御します。
ttl_only_drop_parts が無効な場合 (デフォルト) 、
TTL 設定に基づいて有効期限が切れた行のみが削除されます。
ttl_only_drop_parts が有効な場合、
TTL 設定に従ってそのパーツ内のすべての行の有効期限が切れていれば、パーツ全体が削除されます。
wait_for_unique_parts_send_before_shutdown_ms
zookeeper_session_expiration_check_period
- 任意の正の整数。