system.merge_tree_settings는 전역으로 설정된 MergeTree 설정을 표시합니다.
MergeTree 설정은 서버 구성 파일의 merge_tree 섹션에서 설정하거나, 각 MergeTree 테이블별로 CREATE TABLE 문의 SETTINGS 절에서 개별적으로 지정할 수 있습니다.
설정 max_suspicious_broken_parts를 사용자 지정하는 예시:
서버 구성 파일에서 모든 MergeTree 테이블의 기본값을 설정합니다:
ALTER TABLE ... MODIFY SETTING을 사용하여 변경합니다:
MergeTree 설정
adaptive_write_buffer_initial_size
add_implicit_sign_column_constraint_for_collapsing_engine
sign 컬럼에 유효한 값(1 및 -1)만 허용하는 암시적 제약 조건을 추가합니다.
add_minmax_index_for_block_number_column
_block_number에 암시적 min-max(스키핑) 인덱스가 추가됩니다.
이 설정이 적용되려면 enable_block_number_column = 1이어야 합니다. 인덱스는 삽입 중에는 생성되지 않고 머지 중에만 생성됩니다.
삽입 시점의 블록 번호는 임시값이므로 상수만 인덱싱하게 됩니다.
add_minmax_index_for_block_offset_column
_block_offset에 암시적 min-max(스키핑) 인덱스가 추가됩니다.
이 설정을 적용하려면 enable_block_offset_column = 1이어야 합니다. 인덱스는 삽입 중에는 생성되지 않으며 머지 중에만
생성됩니다.
add_minmax_index_for_numeric_columns
add_minmax_index_for_string_columns
add_minmax_index_for_temporal_columns
allow_coalescing_columns_in_partition_or_order_key
allow_commit_order_projection
_block_number 및 _block_offset 가상 컬럼을 저장하는 커밋 순서 프로젝션을 활성화하며, 머지 이후에도 원래 삽입 순서를 유지합니다.
이 기능을 사용하려면 enable_block_number_column 및 enable_block_offset_column이 활성화되어 있어야 합니다.
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
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
allow_part_offset_column_in_projections
allow_reduce_blocking_parts_task
allow_remote_fs_zero_copy_replication
allow_summing_columns_in_partition_or_order_key
allow_suspicious_indices
allow_vertical_merges_from_compact_to_wide_parts
alter_column_secondary_index_mode
ALTER 명령을 허용할지와,
허용하는 경우 어떤 작업을 수행할지 구성합니다. 기본적으로 이러한 ALTER 명령은 허용되며 인덱스는 다시 빌드됩니다.
가능한 값:
rebuild(기본값):ALTER명령에서 해당 컬럼의 영향을 받는 모든 보조 인덱스를 다시 빌드합니다.throw: 예외를 발생시켜 명시적 보조 인덱스가 적용된 컬럼에 대한 모든ALTER를 방지합니다. 암시적 인덱스는 이 제한에서 제외되며 다시 빌드됩니다.drop: 종속된 보조 인덱스를 삭제합니다. 새 파트에는 인덱스가 포함되지 않으므로, 이를 다시 생성하려면MATERIALIZE INDEX가 필요합니다.compatibility: 원래 동작과 일치합니다.ALTER ... MODIFY COLUMN에서는throw를,ALTER ... UPDATE/DELETE에서는rebuild를 적용합니다.ignore: 전문가용 옵션입니다. 인덱스가 불일치한 상태로 유지되므로 잘못된 쿼리 결과가 발생할 수 있습니다.
always_fetch_merged_part
- true, false
always_use_copy_instead_of_hardlinks
apply_patches_on_merge
assign_part_uuids
async_block_ids_cache_update_wait_ms
async_insert
auto_statistics_types
background_task_preferred_step_execution_time_ms
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초까지의 균등 분포 값을 추가합니다.
cleanup_thread_preferred_points_per_iteration
cleanup_threads
clone_replica_zookeeper_create_get_part_batch_size
columns_and_secondary_indices_sizes_lazy_calculation
columns_to_prewarm_mark_cache
compact_parts_max_bytes_to_buffer
compact_parts_max_granules_to_buffer
compact_parts_merge_max_bytes_to_prefetch_part
compatibility_allow_sampling_expression_not_in_primary_key
compress_marks
compress_per_column_in_compact_parts
compress_primary_key
concurrent_part_removal_threshold
concurrent_part_removal_threshold_for_remote_disk
concurrent_part_removal_threshold와 동일하지만, 제거되는
파트 중 하나 이상이 원격 디스크에 저장된 경우에 사용됩니다. 기본값이 더 낮은
이유는 원격 스토리지에서 각 파트를 제거할 때 일반적으로 네트워크
왕복이 필요하기 때문입니다(예: 객체 스토리지에서는 파트마다 HTTP DELETE 1회). 따라서
파트 100개를 순차적으로 제거하는 것만으로도 DROP TABLE이 수십 초 동안
지연될 수 있습니다.
deduplicate_merge_projection_mode
ignore 옵션은 순전히 호환성을 위한 것으로,
잘못된 결과를 초래할 수 있습니다. 그 외의 경우에는 허용 시
프로젝션을 머지할 때 어떤 동작을 수행할지, 즉 삭제할지 다시 빌드할지를 지정합니다. 따라서 고전적인
MergeTree는 이 설정을 무시합니다. 또한 OPTIMIZE DEDUPLICATE도 제어하지만,
효과는 모든 MergeTree 엔진 계열 구성원에 적용됩니다. lightweight_mutation_projection_mode
옵션과 유사하게, 이것도 part 수준입니다.
가능한 값:
ignorethrowdroprebuild
default_compression_codec
- 테이블 선언에서 해당 컬럼에 정의된 압축 코덱
default_compression_codec에 정의된 압축 코덱(이 설정)compression설정에 정의된 기본 압축 코덱 기본값: 빈 문자열(정의되지 않음)입니다.
detach_not_byte_identical_parts
MergeTree 테이블에 적용됩니다.
가능한 값:
0— 파트가 제거됩니다.1— 파트가 분리됩니다.
detach_old_local_parts_when_cloning_replica
truefalse
disable_detach_partition_for_zero_copy_replication
disable_fetch_partition_for_zero_copy_replication
disable_freeze_partition_for_zero_copy_replication
디스크
distributed_index_analysis_min_indexes_bytes_to_activate
distributed_index_analysis_min_parts_to_activate
dynamic_serialization_version
v1v2v3
enable_block_number_column
_block_number 컬럼이 저장되도록 활성화합니다.
enable_block_offset_column
_block_offset을 저장합니다.
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을 따를지 여부를 지정합니다.
가능한 값:
truefalse
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
allow_experimental_replacing_merge_with_cleanup,
min_age_to_force_merge_seconds, min_age_to_force_merge_on_partition_only가
활성화되어 있어야 합니다.
가능한 값:
truefalse
enable_the_endpoint_id_with_zookeeper_name_prefix
enable_vertical_merge_algorithm
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION)의 대상 테이블에 이 설정을 활성화하면,
원본 테이블과 대상 테이블의 인덱스와 프로젝션이 반드시 동일해야 합니다. 그렇지 않으면 대상
테이블은 원본 테이블의 인덱스와 프로젝션을 모두 포함하는 상위 집합이어도 됩니다.
escape_index_filenames
escape_variant_subcolumn_filenames
exclude_deleted_rows_for_part_size_in_merge
DELETE FROM으로 삭제된 행 제외)를 사용합니다. 이 동작은 이 설정을 활성화한 후 실행된 DELETE FROM의 영향을 받은 데이터 파트에서만 트리거됩니다.
가능한 값:
truefalse
exclude_materialize_skip_indexes_on_merge
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_part_directory
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
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은 프로젝션을 삭제하므로 현재 쿼리에서는 빠를 수 있지만, 프로젝션이 attached 상태가 아니게 되므로 이후 쿼리에서는 느려질 수 있습니다. rebuild는 프로젝션을 다시 빌드하므로 현재 쿼리의 성능에 영향을 줄 수 있지만, 이후 쿼리에서는 속도를 높일 수 있습니다. 또한 이러한 옵션은 part 수준에서만 작동합니다. 즉, 변경되지 않은 part의 프로젝션은 삭제나 재빌드 같은 작업을 트리거하지 않고 그대로 유지됩니다.
가능한 값:
throwdroprebuild
load_existing_rows_count_for_old_parts
truefalse
lock_acquire_timeout_for_background_operations
map_buckets_coefficient
sqrt 및 linear map_buckets_strategy에서 사용하는 계수입니다.
sqrt strategy의 경우: round(map_buckets_coefficient * sqrt(avg_map_size)).
linear strategy의 경우: round(map_buckets_coefficient * avg_map_size).
map_buckets_strategy가 constant이면 무시됩니다.
map_buckets_min_avg_size
with_buckets 직렬화를 적용하는 데 필요한 최소 평균 맵 크기(행당 키 수)입니다.
평균 맵 크기가 이 값보다 작으면 다른 버킷 설정과 관계없이 단일 버킷이 사용됩니다.
값이 0이면 임계값이 비활성화되며 버킷팅 전략이 항상 적용됩니다.
이 설정은 효과가 거의 없는 작은 맵에 대해 버킷 단위 직렬화의 오버헤드를 피하는 데 유용합니다.
map_buckets_strategy
with_buckets Map 직렬화에서 버킷 수를 선택하는 전략을 제어합니다.
가능한 값:
- constant — 평균 맵 크기와 관계없이 항상 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 직렬화의 버킷 수는 max_buckets_in_map 및 map_buckets_strategy에 따라 결정됩니다.
map_serialization_version_for_zero_level_parts
Map 컬럼에 대해 다른 직렬화 버전을 지정할 수 있습니다.
삽입 시 성능 저하를 방지하기 위해 제로 레벨 파트에는 basic
직렬화를 유지하고, 병합된 파트에는 with_buckets를 사용하는 경우에 유용합니다.
marks_compress_block_size
marks_compression_codec
materialize_skip_indexes_on_merge
materialize_statistics_on_merge
materialize_ttl_recalculate_only
max_avg_part_size_for_too_many_parts
max_buckets_in_map
Map 직렬화의 최대 버킷 수입니다. 이 설정은 with_buckets Map 직렬화에 적용됩니다.
실제 버킷 수는 map_buckets_strategy에 따라 결정됩니다.
허용되는 최대값은 256입니다.
max_bytes_to_merge_at_max_space_in_pool
- 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
- 모든 양의 정수.
max_bytes_to_merge_at_min_space_in_pool은 사용 가능한 디스크 공간이 부족한 경우에도
머지할 수 있는 파트의 최대 총 크기(풀 내)를 정의합니다.
이 설정은 작은 파트 수를 줄이고
Too many parts 오류가 발생할 가능성을 낮추는 데 필요합니다.
머지는 병합되는 파트 전체 크기의 2배에 해당하는 디스크 공간을 예약합니다.
따라서 여유 디스크 공간이 적으면,
사용 가능한 공간이 있더라도 그 공간이 이미 진행 중인 대규모 머지에 예약되어 있어
다른 머지를 시작할 수 없고, 삽입이 이루어질 때마다
작은 파트 수가 계속 늘어나는 상황이 발생할 수 있습니다.
max_cleanup_delay_period
max_compress_block_size
max_concurrent_queries
max_concurrent_queries 설정에 따른 제한도 적용됩니다.
가능한 값:
- 양의 정수.
0— 제한 없음.
0 (제한 없음).
예시
max_delay_to_insert
INSERT 지연을 계산하는 데 사용되는 초 단위 값입니다.
가능한 값:
- 양의 정수.
INSERT 지연 시간(밀리초)은 다음 공식으로 계산됩니다:
INSERT는
pow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000
밀리초만큼 지연됩니다.
버전 23.1부터는 수식이 다음과 같이 변경되었습니다:
INSERT는 max( 10, 1 * 1000 * (224 - 150 + 1) / (300 - 150) ) = 500밀리초만큼 지연됩니다.
max_delay_to_mutate_ms
max_digestion_size_per_segment
max_file_name_length
replace_long_file_name_to_hash 설정이 활성화되어 있을 때만 적용됩니다.
이 설정값에는 파일 확장자의 길이가 포함되지 않습니다. 따라서
파일 시스템 오류를 방지할 수 있도록 여유를 두고 최대 파일 이름 길이(일반적으로 255
바이트)보다 낮게 설정하는 것이 좋습니다.
max_files_to_modify_in_alter_columns
- 임의의 양의 정수.
max_files_to_remove_in_alter_columns
- 임의의 양의 정수.
max_merge_delayed_streams_for_parallel_write
max_insert_delayed_streams_for_parallel_write의 머지 버전). 수직 병합에만
적용됩니다.
max_merge_selecting_sleep_ms
max_number_of_merges_with_ttl_in_pool
max_number_of_mutations_for_replica
max_part_loading_threads
max_part_removal_threads
max_partitions_to_read
- 임의의 양의 정수.
max_parts_in_total
max_parts_in_total 값 INSERT가 Too many parts (N) 예외와 함께 중단됩니다.
Possible values:
- 임의의 양의 정수
max_parts_to_merge_at_once
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
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
- 임의의 양의 정수.
max_replicated_merges_in_queue
max_replicated_merges_with_ttl_in_queue
max_replicated_mutations_in_queue
max_replicated_sends_network_bandwidth
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
- 임의의 양의 정수.
max_uncompressed_bytes_in_patches
merge_max_block_size
- 모든 양의 정수.
merge_max_block_size행씩 블록 단위로 읽은 다음,
이를 병합하여 새 파트에 씁니다. 읽기 블록은 RAM에 적재되므로,
merge_max_block_size는 머지에 필요한 RAM 크기에 영향을 줍니다.
따라서 행이 매우 wide한 테이블에서는 머지가 많은 양의 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
merge_max_dynamic_subcolumns_in_compact_part
merge_max_dynamic_subcolumns_in_wide_part
merge_max_dynamic_subcolumns_in_wide_part가 128로 설정되어 있으면,
Wide 데이터 파트로 머지된 후 이 파트의 동적 경로 수는 128로 줄어들며 128개의 경로만 동적 서브컬럼으로 저장됩니다.
merge_selecting_sleep_ms
merge_selecting_sleep_slowdown_factor
merge_selector_algorithm
merge_selector_base
merge_selector_blurry_base_scale_factor
merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once
merge_selector_enable_heuristic_to_remove_small_parts_at_right
sum_size의 지정된 비율(0.01)보다 작은 파트를 범위의 오른쪽 끝에서 제거하도록, 머지할 파트를 선택하는 휴리스틱을 활성화합니다.
Simple 및 StochasticSimple 머지 선택기에서 작동합니다.
merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent
merge_selector_window_size
merge_total_max_bytes_to_prewarm_cache
merge_tree_clear_old_broken_detached_parts_ttl_timeout_seconds
merge_tree_clear_old_parts_interval_seconds
- 양의 정수.
merge_tree_clear_old_temporary_directories_interval_seconds
- 임의의 양의 정수.
merge_tree_enable_clear_old_broken_detached
merge_with_recompression_ttl_timeout
merge_with_ttl_timeout
merge_workload
workload 설정 값으로 사용됩니다. 지정하지 않으면(빈 문자열) 대신 서버 설정 merge_workload가 사용됩니다.
관련 항목
min_absolute_delay_to_close
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 참조).
Possible values:
- 양의 정수.
min_bytes_for_compact_part
min_bytes_for_full_part_storage
min_bytes_for_wide_part
Wide 포맷으로 저장할 수 있는 데이터 파트의 최소 바이트 수 또는 행 수입니다. 이 설정은 하나만 지정할 수도 있고, 둘 다 지정할 수도 있으며, 둘 다 지정하지 않을 수도 있습니다.
min_bytes_to_prewarm_caches
min_bytes_to_rebalance_partition_over_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
min_compressed_bytes_to_fsync_after_fetch
min_compressed_bytes_to_fsync_after_merge
min_delay_to_insert_ms
min_delay_to_mutate_ms
min_free_disk_bytes_to_perform_insert
min_free_disk_bytes_to_perform_insert보다 적으면 예외가 발생하고
삽입은 실행되지 않습니다. 이 설정은 다음과 같습니다.
keep_free_space_bytes설정을 고려합니다.INSERT작업으로 기록될 데이터의 양은 고려하지 않습니다.- 양수(0이 아닌) 바이트 수가 지정된 경우에만 확인됩니다.
- 임의의 양의 정수.
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이 아닌) 비율이 지정된 경우에만 검사됩니다.
- 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_level_for_full_part_storage
min_level_for_wide_part
Compact 대신 Wide 포맷으로 생성하기 위한 최소 파트 수준입니다.
min_marks_to_honor_max_concurrent_queries
쿼리는 여전히 다른
max_concurrent_queries 설정의 제한을 받습니다.- 양의 정수
0— 비활성화됨(max_concurrent_queries제한이 어떤 쿼리에도 적용되지 않음)
min_merge_bytes_to_use_direct_io
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
min_relative_delay_to_close
min_relative_delay_to_measure
리더십 양보를 위한 최소 상대 지연 시간
min_replicated_logs_to_keep
- 모든 양의 정수.
min_rows_for_compact_part
min_rows_for_full_part_storage
min_rows_for_wide_part
Compact 대신 Wide 포맷의 데이터 파트(data part)를 생성하기 위한 최소 행 수입니다.
min_rows_to_fsync_after_merge
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)에서 희소 인코딩 사용을 허용합니다.
number_of_free_entries_in_pool_to_execute_mutation
- 모든 양의 정수.
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
number_of_partitions_to_consider_for_merge
object_serialization_version
v1v2v3
v3 버전에서만 지원됩니다.
Compact 파트에서 JSON 공유 데이터 직렬화에 사용할 버킷 수입니다. map_with_buckets 및 advanced 공유 데이터 직렬화에서 사용됩니다.
허용되는 최대값은 256입니다.
Wide 파트의 JSON 공유 데이터 직렬화에 사용하는 버킷 수입니다. map_with_buckets 및 advanced 공유 데이터 직렬화와 함께 사용됩니다.
허용되는 최대값은 256입니다.
JSON 데이터 타입 내 공유 데이터에 사용하는 직렬화 버전입니다.
가능한 값:
map- 공유 데이터를Map(String, String)으로 저장합니다.map_with_buckets- 공유 데이터를 여러 개의 개별Map(String, String)컬럼으로 저장합니다. 버킷을 사용하면 공유 데이터에서 개별 경로를 더 효율적으로 읽을 수 있습니다.advanced- 공유 데이터에서 개별 경로를 읽는 성능을 크게 향상하도록 설계된 공유 데이터용 특수 serialization입니다. 이 serialization은 많은 추가 정보를 저장하므로 디스크의 공유 데이터 저장 크기가 증가합니다.
map_with_buckets 및 advanced serialization의 버킷 수는 다음 설정으로 결정됩니다.
object_shared_data_buckets_for_compact_part/object_shared_data_buckets_for_wide_part.
이 설정을 사용하면 삽입 중 생성되는 zero level 파트에 대해 JSON 타입 내부의 공유 데이터에 서로 다른 직렬화 버전을 지정할 수 있습니다.
advanced 공유 데이터 serialization은 삽입 시간이 크게 늘어날 수 있으므로 zero level 파트에는 사용하지 않는 것이 좋습니다.
old_parts_lifetime
- 임의의 양의 정수.
old_parts_lifetime초가 지난 후에만 삭제합니다.
비활성 파트는 현재 쿼리에서 사용되지 않는 경우, 즉
파트의 refcount가 1인 경우 제거됩니다.
새 파트에 대해서는 fsync가 호출되지 않으므로, 일정 시간 동안 새 파트는
서버의 RAM(OS 캐시)에만 존재합니다. 서버가 예기치 않게 재부팅되면 새
파트가 손실되거나 손상될 수 있습니다. 데이터를 보호하기 위해 비활성 파트는
즉시 삭제되지 않습니다.
시작 시 ClickHouse는 파트의 무결성을 확인합니다. 병합된
파트가 손상된 경우 ClickHouse는 비활성 파트들을 다시 활성 목록으로 되돌린
후 나중에 다시 머지합니다. 그런 다음 손상된 파트의 이름을 변경하고(broken_
접두사를 추가) detached 폴더로 이동합니다. 병합된 파트가
손상되지 않은 경우에는 원래의 비활성 파트들의 이름을 변경하고(ignored_
접두사를 추가) detached 폴더로 이동합니다.
기본 dirty_expire_centisecs 값(리눅스 커널 설정)은 30
초(RAM에만 기록된 데이터가 저장되는 최대 시간)이지만,
디스크 시스템에 부하가 큰 경우 데이터는 훨씬 나중에 기록될 수 있습니다. 실험적으로
old_parts_lifetime에는 480초가 선택되었으며, 이 시간 동안
새 파트가 디스크에 기록되는 것이 보장됩니다.
optimize_row_order
DateTime64 유형의 timestamp 컬럼이 포함된 경우처럼 카디널리티가 높은 프라이머리 키에는 이 설정의 효과를 기대하기 어렵습니다.
part_minmax_index_columns
partition_key_only— 파티션 키 컬럼만 추적합니다.with_block_number_offset— 파티션 키 컬럼에 더해 저장된_block_number및_block_offset가상 컬럼도 추적합니다. 이 컬럼을 기준으로 part 단위 프루닝을 수행할 수 있습니다.
part_moves_between_shards_delay_seconds
part_moves_between_shards_enable
parts_to_delay_insert
parts_to_delay_insert 값을 초과하면 INSERT가 인위적으로 지연됩니다.
Possible values:
- 양의 정수라면 무엇이든 가능합니다.
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
prefer_fetch_merged_part_size_threshold보다 크면, 로컬에서 머지를 수행하는 대신
레플리카에서 병합된 파트를 가져오는 방식을 우선적으로 선택합니다. 이는
매우 오래 걸리는 머지 속도를 높이기 위한 것입니다.
가능한 값:
- 모든 양의 정수.
prewarm_mark_cache
prewarm_primary_key_cache
프라이머리 압축 블록 크기입니다. 실제로 압축되는 블록의 크기를 나타냅니다.
primary_key_compression_codec
primary_key_lazy_load
primary_key_ratio_of_unique_prefix_values_to_skip_suffix_columns
propagate_types_serialization_versions_to_nested_types
ratio_of_defaults_for_sparse_serialization
ratio_of_defaults_for_sparse_serialization
설정을 1.0보다 작은 값으로 지정하십시오. 값이 1.0보다 크거나 같으면
컬럼은 항상 일반적인 전체 직렬화를 사용해 기록됩니다.
Possible values:
- 희소 직렬화를 활성화하려면
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
refresh_parts_interval
refresh_statistics_interval
remote_fs_execute_merges_on_single_replica_time_threshold
zero-copy 복제는 production 환경에서 사용할 준비가 되어 있지 않습니다.
ClickHouse 버전 22.8 이상에서는 zero-copy 복제가 기본적으로
비활성화되어 있습니다.이 기능은 production 환경에서 사용하는 것을 권장하지 않습니다.
- 임의의 양의 정수.
remote_fs_zero_copy_path_compatible_mode
remote_fs_zero_copy_zookeeper_path
remove_empty_parts
remove_rolled_back_parts_immediately
remove_unused_patch_parts
replace_long_file_name_to_hash
replicated_can_become_leader
true이면 이 노드의 복제된 테이블 레플리카가 리더 역할을 획득하려고 시도합니다.
Possible values:
truefalse
replicated_deduplication_window
- 임의의 양의 정수
- 0 (중복 제거 비활성화)
Insert 명령은 하나 이상의 블록(파트)을 생성합니다. 삽입 중복 제거의 경우,
복제된 테이블에 쓸 때 ClickHouse는 생성된
파트의 해시 합을 ClickHouse Keeper에 기록합니다. 해시 합은 가장 최근의
replicated_deduplication_window개 블록에 대해서만 저장됩니다. 가장 오래된 해시 합은
ClickHouse Keeper에서 제거됩니다.
replicated_deduplication_window 값이 크면 비교해야 하는 항목이 더 많아지므로 Inserts
속도가 느려집니다. 해시 합은
필드 이름과 타입의 구성, 그리고 삽입된
파트의 데이터(바이트 스트림)로부터 계산됩니다.
replicated_deduplication_window_for_async_inserts
- 임의의 양의 정수
- 0 (
async_inserts의 중복 제거 비활성화)
replicated_deduplication_window_for_async_inserts개 블록에 대해서만 저장됩니다. 가장 오래된 해시
합은 ClickHouse Keeper에서 제거됩니다.
replicated_deduplication_window_for_async_inserts 값이 크면
비교해야 하는 항목이 더 많아지므로 Async Inserts가 느려집니다.
해시 합은 필드 이름과 타입의 구성,
그리고 삽입 데이터(바이트 스트림)를 기준으로 계산됩니다.
replicated_deduplication_window_seconds
- 임의의 양의 정수.
replicated_deduplication_window_seconds는 삽입 중복 제거를 위해 블록의 해시
합을 얼마나 오래 저장할지 지정합니다. replicated_deduplication_window_seconds보다 오래된 해시 합은
replicated_deduplication_window보다 작더라도 ClickHouse Keeper에서 제거됩니다.
이 시간은 실제 시각이 아니라 가장 최근 레코드의 시각을 기준으로
계산됩니다. 해당 레코드가 유일한 레코드라면 영구적으로 저장됩니다.
replicated_deduplication_window_seconds_for_async_inserts
- 모든 양의 정수.
replicated_deduplication_window_seconds_for_async_inserts는 비동기 삽입 중복 제거를 위해 블록의 해시 합을
얼마 동안 저장할지 지정합니다. replicated_deduplication_window_seconds_for_async_inserts보다
오래된 해시 합은
replicated_deduplication_window_for_async_inserts보다 작더라도
ClickHouse Keeper에서 제거됩니다.
이 시간은 실제 경과 시간이 아니라 가장 최근 레코드의 시간을 기준으로
계산됩니다. 레코드가 하나뿐이면 영구적으로 저장됩니다.
replicated_fetches_http_connection_timeout
replicated_fetches_http_receive_timeout
replicated_fetches_http_send_timeout
replicated_fetches_min_part_level
replicated_fetches_min_part_level_timeout_seconds
replicated_max_mutations_in_one_entry
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
- any - 범위가 제한되지 않습니다.
- local - 범위가 로컬 디스크로 제한됩니다.
- none - 범위가 비어 있으며, 검색하지 않습니다
serialization_info_version
serialization.json을 작성할 때 사용하는 직렬화 정보 버전입니다.
이 설정은 클러스터(cluster) 업그레이드 중 호환성을 유지하는 데 필요합니다.
가능한 값:
basic- 기본 포맷입니다.with_types- 추가types_serialization_versions필드가 포함된 포맷으로, 타입별 직렬화 버전을 사용할 수 있습니다. 이 설정을 사용하면string_serialization_version같은 설정이 적용됩니다.
basic으로 설정하십시오. 업그레이드가 완료되면
타입별 직렬화 버전을 활성화하려면 WITH_TYPES로 전환하십시오.
활성화되면(기본값) 공통 접두사를 공유하는 점 표기 이름의 배열(Array) 컬럼(예: n.a 및 n.b)은
Nested 구조의 일부로 처리됩니다. 이들은 디스크에서 하나의 offsets 파일(예: n.size0)을 공유하며,
INSERT 시 배열 크기가 동일한지 검증됩니다.
비활성화되면 각 배열(Array) 컬럼은 자체적인 독립 offset 파일을 가지며, 점 표기 이름은 더 이상 특별한
의미를 갖지 않습니다. 또한 동일한 접두사를 공유하는 점 표기 배열(Array) 컬럼과 스칼라 컬럼이 함께 존재할 수 있습니다
(예: n UInt32와 n.a Array(String)). 이 설정은 테이블 생성 후에는 변경할 수 없습니다.
조정된 머지 작업의 재스케줄링을 활성화합니다. shared_merge_tree_enable_coordinated_merges=0인 경우에도
머지 코디네이터 통계가 채워지도록 하여 콜드 스타트에 도움이 되므로 유용할 수 있습니다.
ZooKeeper에서 레플리카별 /metadata 및 /columns 노드를 생성하도록 활성화합니다.
ClickHouse Cloud에서만 사용할 수 있습니다.
shared merge tree의 머지 및 뮤테이션 할당을 중지합니다. ClickHouse
Cloud에서만 사용할 수 있습니다.
파트가 없는 파티션을 Keeper에 몇 초 동안 저장할지 지정합니다.
빈 파티션에 대한 Keeper 항목 정리를 활성화합니다.
조정된 머지 전략을 사용하도록 설정합니다
virtual parts에 속성을 기록하고 Keeper에서 블록을 커밋하는 기능을 활성화합니다
오래된 파트 확인을 활성화합니다. ClickHouse Cloud에서만 사용할 수 있습니다
shared merge tree에서 ZooKeeper watch로 트리거되지 않을 때 파트를 업데이트하는 인터벌(초)입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
파트 업데이트의 초기 백오프입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
서버 간 HTTP 연결의 timeout입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
서버 간 HTTP 통신의 timeout입니다. ClickHouse
Cloud에서만 사용할 수 있습니다.
shared_merge_tree_leader_update_period에 0초부터 x초까지의 균등 분포 값을 추가하여
thundering herd 현상을 방지합니다. ClickHouse Cloud에서만
사용할 수 있습니다.
파트 업데이트의 리더를 다시 확인하는 최대 주기입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
리더가 한 번의 HTTP 요청으로 제거 확인을 시도할 수 있는 오래된 파트의 최대 개수입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
파트 업데이트의 최대 백오프입니다. ClickHouse Cloud에서만 사용할 수 있습니다
파트 업데이트 리더의 최대 개수입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
파트 업데이트 리더의 최대 개수입니다. ClickHouse Cloud에서만 사용할 수 있습니다
파트 삭제(killer thread)에 참여하는 최대 레플리카 수입니다. ClickHouse Cloud에서만
사용할 수 있습니다
잠재적으로 충돌할 수 있는 머지를 할당하려고 시도하는 최대 레플리카 수입니다(머지 할당 시 불필요한 충돌을 방지할 수 있습니다). 0은 비활성화를 의미합니다. ClickHouse Cloud에서만 사용할 수 있습니다.
SMT의 손상된 파트 최대 개수입니다. 이를 초과하면 자동 detach를 허용하지 않습니다.
SMT에서 손상된 모든 파트의 최대 크기입니다. 이 값을 초과하면 자동 detach가 거부됩니다.
삽입 재시도 중 잘못된 동작을 방지하기 위해 삽입 메모이제이션 ID를
얼마나 오래 저장할지 지정합니다. ClickHouse Cloud에서만 사용할 수 있습니다.
머지 코디네이터 선출 스레드의 실행 간격
코디네이터 스레드 지연 시간의 변경 계수
머지 코디네이터가 최신 메타데이터를 가져오기 위해 ZooKeeper와 동기화하는 주기
코디네이터가 MergerMutator에 한 번에 요청할 수 있는 머지 개수
머지 코디네이터 스레드 실행 사이의 최대 시간
코디네이터가 준비하여 workers에 분배해야 하는 머지 항목 수입니다.
‘auto’로 설정하면 활성 레플리카 수에 단일 레플리카에서 허용되는 최대 머지 작업 수를 곱한 값과 같습니다.
머지 코디네이터 스레드 실행 사이의 최소 시간
즉시 작업 후 상태를 업데이트해야 하는 경우 머지 worker 스레드가 사용하는 timeout입니다
merge worker 스레드 실행 사이의 시간
오래된 파트 정리 시 동일한 rendezvous hash 그룹에 포함되는 레플리카 수입니다.
ClickHouse Cloud에서만 사용할 수 있습니다.
<뮤테이션 전용 후보 파티션(머지할 수 없는 파티션)>/<뮤테이션 후보 파티션> 비율이 이 설정값보다 높으면, 머지/뮤테이션 선택 작업에서 머지 프레디케이트를 다시 로드합니다. ClickHouse Cloud에서만 사용할 수
있습니다.
한 번에 예약할 fetch 파트 메타데이터 job 수입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
로컬에서 병합된 파트를 포함하는 새 머지를 시작하지 않고 해당 파트를 유지하는 시간입니다.
다른 레플리카가 이 파트를 fetch하고 해당 머지를 시작할 수 있는 시간을 제공합니다.
ClickHouse Cloud에서만 사용할 수 있습니다.
로컬에서 파트를 머지한 직후 다음 머지가 할당되는 시점을 늦추기 위한 파트의 최소 크기(행 수)입니다. ClickHouse Cloud에서만 사용할 수 있습니다.
이 파트를 포함하는 새 머지를 시작하지 않은 상태에서 로컬에서 병합된 파트를 유지하는 시간입니다.
다른 레플리카가 이 파트를 가져와 이 머지를 시작할 수 있도록 합니다.
ClickHouse Cloud에서만 사용할 수 있습니다.
가능하면 리더에서 가상 파트를 읽습니다. ClickHouse
Cloud에서만 사용할 수 있습니다.
레플리카가 백그라운드에서 레플리카 세트를 업데이트하려고 시도하는 간격입니다. 다음 실행 시점에는 [0, value]초 범위에서
균등하게 지터가 적용됩니다. 예외: value = 0에는 이 규칙이 적용되지 않습니다;
구현상 최소 200ms를 적용하므로 다음 실행 시점에는 [0, 200]ms 범위에서 지터가 적용됩니다.
활성화하면 모든 레플리카가 이미 해당 데이터가 있는 다른 레플리카에서 파트의 인메모리 데이터(프라이머리
키, 파티션 정보 등)를 가져오려고 시도합니다.
백그라운드 스케줄에 따라 레플리카 플래그를 다시 로드하려고 시도하는 간격입니다.
다른 레플리카의 메모리 내 캐시에서 FS 캐시 힌트를 요청하도록 설정합니다. ClickHouse Cloud에서만 사용할 수 있습니다.
오래된 파트에 compact 포맷을 사용합니다. Keeper 부하를 줄이고
오래된 파트 처리를 개선합니다. ClickHouse Cloud에서만 사용할 수 있습니다
활성화하면 Too many parts 카운터는 로컬 레플리카 상태가 아니라 Keeper의 공유 데이터를 사용합니다. ClickHouse Cloud에서만 사용할 수 있습니다.
활성화하면 SharedMergeTree는 서버 수준에서 풀링된 ZooKeeper 세션 중 하나를 사용합니다.
하나의 배치에 패킹할 파티션 디스커버리 개수
simultaneous_parts_removal_limit
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”로 설정된 경우에만 적용됩니다.
with_size_stream으로 설정하면 최상위 String 컬럼은 문자열 길이를 저장하는 별도의
.size 서브컬럼으로 직렬화되며, 인라인으로 저장되지 않습니다. 이렇게 하면 실제 .size
서브컬럼을 사용할 수 있고 압축 효율도 향상될 수 있습니다.
중첩된 String 타입(Nullable, LowCardinality, Array, Map 내부 등)은
Tuple 안에 나타나는 경우를 제외하면 영향을 받지 않습니다.
가능한 값:
single_stream— 인라인 크기를 사용하는 표준 직렬화 포맷을 사용합니다.with_size_stream— 최상위String컬럼에 별도의 크기 스트림을 사용합니다.
table_disk
table_readonly
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- 임의의 양의 정수.
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이면 async 삽입의 해시 합을 캐시합니다.
가능한 값:
truefalse
use_compact_variant_discriminators_serialization
use_const_adaptive_granularity
use_metadata_cache
use_minimalistic_checksums_in_zookeeper
use_minimalistic_part_header_in_zookeeper
use_primary_key_cache
vertical_merge_algorithm_min_bytes_to_activate
vertical_merge_algorithm_min_columns_to_activate
vertical_merge_algorithm_min_rows_to_activate
vertical_merge_optimize_lightweight_delete
vertical_merge_optimize_ttl_delete
vertical_merge_remote_filesystem_prefetch
wait_for_unique_parts_send_before_shutdown_ms
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))) 는 다음 서브스트림으로 직렬화됩니다:
- 튜플 요소
a의 String 데이터에 대한t.a - 튜플 요소
b의 UInt32 데이터에 대한t.b - 튜플 요소
c의 배열 크기에 대한t.c.size0 - 튜플 요소
c의 중첩 배열 요소에 대한 null 맵에 대한t.c.null - 튜플 요소
c의 중첩 배열 요소에 대한 UInt32 데이터에 대한t.c
t.c를 읽으려는 경우,
서브스트림 t.c.size0, t.c.null, t.c의 데이터만 읽고 서브스트림 t.a와 t.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
zookeeper_session_expiration_check_period
- 임의의 양의 정수.