개요
SELECT 쿼리에만 적용되며, 분산
쿼리 처리에서는 제한이 각 서버에 개별적으로 적용됩니다.
ClickHouse는 일반적으로 각 행마다 제한을 확인하지 않고, 데이터 파트가
완전히 처리된 후에만 제한을 확인합니다. 따라서 파트가 처리되는 동안
제한이 위반되는 상황이 발생할 수 있습니다.
overflow_mode 설정
overflow_mode 설정도 있으며, 이 설정은 한도를 초과했을 때
어떻게 동작할지를 정의합니다. 값으로는 다음 두 가지 중 하나를 사용할 수 있습니다:
throw: 예외를 발생시킵니다(기본값).break: 쿼리 실행을 중지하고 부분 결과를 반환합니다. 이는 소스 데이터가 소진된 것처럼 처리합니다.
break와 함께 max_execution_time에 의해 쿼리가 중지되면 일부 작업은 부분 결과를 안전하게 반환할 수
없으므로, 더 적은 결과를 반환하는 대신 결과를 생성하지 않고 중지됩니다. 단일 값을 계산하는 함수는 해당 값을 생성하지
않고 중지됩니다. 중지 신호가 TIMEOUT_EXCEEDED 오류로 클라이언트까지 전달되는지, 아니면 단순히 결과가 누락되는지는 쿼리가
중단된 위치에 따라 달라집니다. 시간 초과로 인해 완료되지 않은 Memory 테이블 mutation은 테이블을 변경하지 않은 채
유지되며 TIMEOUT_EXCEEDED를 보고합니다. INSERT는 QUERY_WAS_CANCELLED를 보고할 수 있습니다. 다른 레플리카 또는
백그라운드 작업을 기다리는 일부 작업은 max_execution_time에 도달해도 전혀 중지되지 않습니다. quorum 쓰기는 quorum이
충족될 때까지 계속 기다리거나, insert_quorum_timeout이 먼저 경과하면 UNKNOWN_STATUS_OF_INSERT를
보고합니다.
group_by_overflow_mode 설정
group_by_overflow_mode 설정에는
any 값도 있습니다:
any: 집합에 이미 들어간 키에 대해서는 집계를 계속하지만, 집합에 새 키는 추가하지 않습니다.
설정 목록
“어떤 항목의 최대값”에 대한 제한은
0으로 설정할 수 있으며,
이는 “제한 없음”을 의미합니다.더 이상 사용되지 않는 설정
다음 설정은 더 이상 사용되지 않습니다.