메인 콘텐츠로 건너뛰기

개요

설정에서는 ClickHouse가 쿼리 복잡도에 제한을 설정할 수 있는 기능을 제공합니다. 이를 통해 잠재적으로 리소스를 많이 소모하는 쿼리로부터 보호할 수 있으며, 특히 사용자 인터페이스를 사용할 때 더 안전하고 예측 가능한 실행을 보장합니다. 거의 모든 제한은 SELECT 쿼리에만 적용되며, 분산 쿼리 처리에서는 제한이 각 서버에 개별적으로 적용됩니다. ClickHouse는 일반적으로 각 행마다 제한을 확인하지 않고, 데이터 파트가 완전히 처리된 후에만 제한을 확인합니다. 따라서 파트가 처리되는 동안 제한이 위반되는 상황이 발생할 수 있습니다.

overflow_mode 설정

대부분의 제한에는 overflow_mode 설정도 있으며, 이 설정은 한도를 초과했을 때 어떻게 동작할지를 정의합니다. 값으로는 다음 두 가지 중 하나를 사용할 수 있습니다:
  • throw: 예외를 발생시킵니다(기본값).
  • break: 쿼리 실행을 중지하고 부분 결과를 반환합니다. 이는 소스 데이터가 소진된 것처럼 처리합니다.

group_by_overflow_mode 설정

group_by_overflow_mode 설정에는 any 값도 있습니다:
  • any : 집합에 이미 들어간 키에 대해서는 집계를 계속하지만, 집합에 새 키는 추가하지 않습니다.

설정 목록

다음 설정은 쿼리 복잡도 제한을 적용할 때 사용됩니다.
“어떤 항목의 최대값”에 대한 제한은 0으로 설정할 수 있으며, 이는 “제한 없음”을 의미합니다.

더 이상 사용되지 않는 설정

다음 설정은 더 이상 사용되지 않습니다.

max_pipeline_depth

최대 파이프라인 깊이입니다. 각 데이터 블록이 쿼리 처리 중 거치는 변환 횟수에 해당합니다. 단일 서버의 한도 내에서 계산됩니다. 파이프라인 깊이가 이 값을 초과하면 예외가 발생합니다.
마지막 수정일 2026년 7월 2일