exclude MergeTree 설정

exclude MergeTree 설정 (exclude_* MergeTree settings)

이 문서는 병합에서 제외할 항목과 관련된 MergeTree 설정들을 다루는 페이지예요. 삭제된 행 제외 및 병합 중 스킵 인덱스 빌드/저장 제외를 설정합니다.

출처: 문서

본문

이 설정들은 system.merge_tree_settings에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성됩니다.

exclude_deleted_rows_for_part_size_in_merge

활성화하면 병합할 파트를 선택할 때 데이터 파트의 추정 실제 크기(즉, DELETE FROM으로 삭제된 행을 제외한 크기)가 사용돼요. 이 동작은 이 설정이 활성화된 후 실행된 DELETE FROM의 영향을 받은 데이터 파트에 대해서만 발생합니다. 가능한 값:

  • true
  • false

See Also- load_existing_rows_count_for_old_parts setting

exclude_materialize_skip_indexes_on_merge

제공된 쉼표로 구분된 스킵 인덱스 목록을 병합 중에 빌드·저장되지 않도록 제외해요. materialize_skip_indexes_on_merge가 false이면 효과가 없습니다. 제외된 스킵 인덱스는 MATERIALIZE INDEX 쿼리로 명시적으로, 또는 materialize_skip_indexes_on_insert 세션 설정에 따라 INSERT 중에 여전히 빌드·저장됩니다. Example:

CREATE TABLE tab
(
a UInt64,
b UInt64,
INDEX idx_a a TYPE minmax,
INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple() SETTINGS exclude_materialize_skip_indexes_on_merge = 'idx_a';

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- setting has no effect on INSERTs

-- idx_a will be excluded from update during background or explicit merge via OPTIMIZE TABLE FINAL

-- can exclude multiple indexes by providing a list
ALTER TABLE tab MODIFY SETTING exclude_materialize_skip_indexes_on_merge = 'idx_a, idx_b';

-- default setting, no indexes excluded from being updated during merge
ALTER TABLE tab MODIFY SETTING exclude_materialize_skip_indexes_on_merge = '';

더 알아보기 (Learn more)