TopK 동적 필터링 세션 설정

TopK 동적 필터링 세션 설정 (use_top_k_dynamic_filtering*)

이 페이지에서는 TopK 동적 필터링 최적화와 관련된 use_top_k_dynamic_filtering* 세션 설정들을 다뤄요. ORDER BY <column> LIMIT n 쿼리에서 최종 결과에 포함되지 않을 granule과 행을 건너뛰는 동작과 가변 길이 타입에의 적용 여부를 제어해요. 이 설정들은 system.settings 테이블에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성돼요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있으며 소스에서 자동 생성돼요.

use_top_k_dynamic_filtering

ORDER BY <column> LIMIT n 쿼리를 실행할 때 동적 필터링 최적화를 활성화해요. 활성화하면 쿼리 실행기가 결과 집합의 최종 상위 N 행의 일부가 되지 않을 granule과 행을 건너뛰려고 시도해요. 이 최적화는 본질적으로 동적이며 지연 개선은 데이터 분포와 쿼리의 다른 조건 존재 여부에 따라 달라져요. 가능한 값:

  • 0 — 비활성화.

  • 1 — 활성화.

use_top_k_dynamic_filtering_for_variable_length_types

정렬 컬럼이 가변 길이 데이터 타입(예: 가변 길이 요소를 포함하는 String, Array, Map, Tuple)일 때 use_top_k_dynamic_filtering이 적용되도록 허용해요. 그런 타입의 경우 동적 필터가 수행하는 행별 임계값 비교는, 컬럼의 사전순 최솟값이 지배할 때(예: 대부분 빈 문자열) 절약보다 클 수 있고 건너뛸 수 있는 granule이 거의 없어요. 그 경우 동적 필터는 쿼리 지연을 개선하는 대신 악화시켜요. 이 설정이 0이면 동적 필터링은 메모리에서 고정 최대 크기를 가진 값의 컬럼(숫자, Date, DateTime, FixedString, Enum, 그러한 타입의 Nullable, 그러한 타입의 Tuple)으로 제한돼요. 1로 설정하면 동적 필터링이 가변 길이 타입에도 적용돼요. 가능한 값:

  • 0 — 비활성화.

  • 1 — 활성화.

더 알아보기 (Learn more)