deduplicate_insert / deduplicate_insert_select 세션 설정

deduplicate_insert / deduplicate_insert_select 세션 설정

이 설정들은 Replicated* 테이블에 대한 INSERT INTOINSERT SELECT의 블록 중복 제거를 제어해요. ClickHouse 소스 코드에서 자동으로 생성된 세션 설정 문서예요.

출처: 문서

본문

이 설정들은 system.settings에서 사용할 수 있으며 소스 코드에서 자동으로 생성돼요.

deduplicate_insert

INSERT INTO의 블록 중복 제거를 활성화하거나 비활성화해요(Replicated* 테이블). 동기 및 비동기 삽입 모두에 적용되며, insert_deduplicateasync_insert_deduplicate 설정을 대체해요.

이 설정은 세 가지 가능한 값이 있어요:

  • disable — INSERT INTO 쿼리에 대한 중복 제거가 비활성화됨.
  • enable — INSERT INTO 쿼리에 대한 중복 제거가 활성화됨.
  • backward_compatible_choice — 특정 삽입 유형에 대해 insert_deduplicate 또는 async_insert_deduplicate가 활성화되어 있으면 중복 제거가 활성화됨.

INSERT SELECT 쿼리의 경우 deduplicate_insert_select를 먼저 확인해요. 중복 제거는 또한 대상 테이블이 중복 제거 로그를 유지해야 해요. replicated_deduplication_windownon_replicated_deduplication_window를 참고해요.

deduplicate_insert_select

INSERT SELECT의 블록 중복 제거를 활성화하거나 비활성화해요(Replicated* 테이블). INSERT SELECT 쿼리의 경우 이 설정은 deduplicate_insert보다 먼저 확인돼요.

SELECTORDER BY ALL을 갖고 파이프라인이 단일 스트림으로 끝날 때 안정적(stable)이에요. 비어 있지 않은 insert_deduplication_token은 안정성의 동등한 대체물이에요.

이 설정은 네 가지 가능한 값이 있어요:

  • disable — INSERT SELECT 쿼리에 대한 중복 제거가 비활성화됨.
  • force_enable — deduplicate_insert와 관계없이 INSERT SELECT 쿼리에 대한 중복 제거가 활성화됨. select 결과가 안정적이지 않고 토큰이 제공되지 않으면 예외가 발생함.
  • enable_when_possible — deduplicate_insert에 의해 활성화되고 select 결과가 안정적이면 중복 제거가 활성화되고, 그렇지 않으면 비활성화됨.
  • enable_even_for_bad_queries - deduplicate_insert에 의해 활성화되어 있으면 select 결과의 안정성과 관계없이 중복 제거가 활성화됨. select 결과가 안정적이지 않으면 메시지가 기록되지만 쿼리는 중복 제거와 함께 실행됨. 이 옵션은 하위 호환용이에요. 예상치 못한 결과로 이어질 수 있으므로 다른 옵션 사용을 고려해요.

더 알아보기 (Learn more)