replicated_deduplication_window_* MergeTree 테이블 설정
replicated_deduplication_window_* MergeTree 테이블 설정
이 페이지에서는 복제 테이블의 insert 중복 제거에 사용하는 해시 합을 ClickHouse Keeper에 얼마나 오래, 몇 개까지 저장할지를 제어하는 replicated_deduplication_window_* 계열 설정을 설명할게요. 이 설정들은 system.merge_tree_settings 테이블에서 확인할 수 있고, ClickHouse 소스 코드에서 자동으로 생성된 값이에요.
출처: 문서
본문
이 설정들은 system.merge_tree_settings 테이블에서 확인할 수 있으며, ClickHouse 소스에서 자동으로 생성돼요.
replicated_deduplication_window
중복을 확인하기 위해 해시 합을 저장하는 가장 최근에 삽입된 블록의 수예요.
가능한 값:
- 임의의 양의 정수
- 0 (중복 제거 비활성화)
insert 중복 제거를 위해 복제 테이블에 쓸 때, ClickHouse는 중복 제거 해시 합을 ClickHouse Keeper에 기록해요. 해시 합은 가장 최근의 replicated_deduplication_window 블록에 대해서만 저장돼요. 가장 오래된 해시 합은 ClickHouse Keeper에서 제거돼요.
해시 합은 삽입된 전체 블록을 덮으므로, insert는 전체 데이터가 이전 insert와 일치할 때만(재시도) 중복 제거되며, 개별 파트별로는 중복 제거되지 않아요.
replicated_deduplication_window의 값이 크면 비교해야 할 항목이 많아져 Insert가 느려져요.
replicated_deduplication_window_for_async_inserts
혼합 버전 롤링 업그레이드를 위해 유지되는 레거시 설정이에요. 새로운 insert는 replicated_deduplication_window가 관리하는 통합 해시로 중복 제거되며, 이 설정은 현재 리더가 정리하기 전까지 ClickHouse Keeper의 async_blocks 디렉터리에 보관되는 레거시 async-insert 해시의 개수만 제한해요 (이 해시는 롤링 업그레이드 중에 이전 버전의 레플리카가 계속 작성해요).
값을 0으로 설정하면 아무 것도 보관하지 않아요 — 다음 정리 과정이 모든 항목을 제거해요 — 따라서 업그레이드 중 레거시 async 중복 제거 창을 유지하려면 기본값(또는 더 큰 값)을 유지하세요.
replicated_deduplication_window_seconds
삽입된 블록의 해시 합을 ClickHouse Keeper에서 제거하기까지의 시간(초)이에요.
가능한 값:
- 임의의 양의 정수
replicated_deduplication_window와 유사하게, replicated_deduplication_window_seconds는 insert 중복 제거를 위해 블록의 해시 합을 얼마나 오래 저장할지 지정해요. replicated_deduplication_window_seconds보다 오래된 해시 합은 replicated_deduplication_window보다 작은 경우에도 ClickHouse Keeper에서 제거돼요.
이 시간은 벽시계(wall time)가 아니라 가장 최근 레코드의 시간을 기준으로 해요. 유일한 레코드라면 영원히 저장돼요.
replicated_deduplication_window_seconds_for_async_inserts
혼합 버전 롤링 업그레이드를 위해 유지되는 레거시 설정이에요. replicated_deduplication_window_for_async_inserts와 함께, ClickHouse Keeper의 async_blocks 디렉터리(롤링 업그레이드 중 이전 버전의 레플리카가 작성하고 현재 리더가 정리)에 레거시 async-insert 해시를 얼마나 오래 보관할지를 제한해요. 새로운 insert는 replicated_deduplication_window_seconds를 사용해요.