deduplicate_insert
INSERT INTO의 블록 중복 제거를 활성화하거나 비활성화합니다(복제된 테이블의 경우).
이 설정은 동기 및 비동기 삽입 모두에 적용되며, insert_deduplicate 및 async_insert_deduplicate 설정보다 우선 적용됩니다.
이 설정에는 다음과 같은 3개의 가능한 값이 있습니다:
- disable —
INSERT INTO쿼리의 중복 제거를 비활성화합니다. - enable —
INSERT INTO쿼리의 중복 제거를 활성화합니다. - backward_compatible_choice — 특정 삽입 유형에서
insert_deduplicate또는async_insert_deduplicate가 활성화된 경우 중복 제거를 활성화합니다.
INSERT SELECT 쿼리의 경우 먼저 deduplicate_insert_select을 확인합니다. 중복 제거를 수행하려면 대상 테이블에서 중복 제거 로그도 유지해야 합니다. replicated_deduplication_window 및 non_replicated_deduplication_window를 참조하십시오.
deduplicate_insert_select
INSERT SELECT의 블록 중복 제거를 활성화하거나 비활성화합니다(복제된 테이블용).
INSERT SELECT 쿼리에서는 deduplicate_insert보다 먼저 이 설정을 확인합니다.
SELECT는 ORDER BY ALL을 포함하고 파이프라인이 단일 스트림으로 끝나는 경우 안정적입니다. 비어 있지 않은 insert_deduplication_token은 안정성을 보장하는 동등한 대안입니다.
이 설정에는 4개의 가능한 값이 있습니다:
- 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결과가 안정적이지 않으면 메시지가 로그에 기록되지만, 쿼리는 중복 제거와 함께 실행됩니다. 이 옵션은 이전 버전과의 호환성을 위한 것입니다. 예기치 않은 결과가 발생할 수 있으므로 가능하면 다른 옵션을 사용하십시오.