파티션 최대 관련 설정

파티션 최대 관련 설정

단일 삽입 블록과 단일 쿼리에서 접근할 수 있는 최대 파티션 수를 제어하는 설정들이에요. 과도한 파티션 사용은 성능에 심각한 영향을 주므로 안전 임계값 역할을 해요. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.

max_partitions_per_insert_block

단일 삽입 블록의 최대 파티션 수를 제한하고, 블록에 너무 많은 파티션이 있으면 예외가 발생해요.

  • 양의 정수.
  • 0 — 파티션 수가 무제한이에요.

상세

데이터를 삽입할 때 ClickHouse는 삽입된 블록의 파티션 수를 계산해요. 파티션 수가 max_partitions_per_insert_block보다 많으면 ClickHouse는 throw_on_max_partitions_per_insert_block에 따라 경고를 기록하거나 예외를 던져요. 예외는 다음 텍스트를 가져요:

"(partitions_count 파티션, 한도는 " + toString(max_partitions) + ") 단일 INSERT 블록에 대한 파티션이 너무 많습니다. 한도는 'max_partitions_per_insert_block' 설정으로 제어됩니다. 많은 수의 파티션은 흔한 오해입니다. 그것은 느린 서버 시작, 느린 INSERT 쿼리, 느린 SELECT 쿼리를 포함한 심각한 부정적 성능 영향으로 이어집니다. 테이블의 권장 총 파티션 수는 1000..10000 미만입니다. 파티셔닝은 SELECT 쿼리를 빠르게 하기 위한 것이 아니라는 점에 유의하세요(ORDER BY 키가 범위 쿼리를 빠르게 하기에 충분합니다). 파티션은 데이터 조작(DROP PARTITION 등)을 위한 것입니다."

이 설정은 많은 수의 파티션을 사용하는 것이 흔한 오해이기 때문에 안전 임계값이에요.

max_partitions_to_read

단일 쿼리에서 접근할 수 있는 최대 파티션 수를 제한해요. 테이블 생성 시 지정된 설정 값은 쿼리 레벨 설정으로 재정의할 수 있어요.

가능한 값:

  • 양의 정수
  • -1 - 무제한(기본값)

또한 테이블 설정에 MergeTree 설정 max_partitions_to_read를 지정할 수 있어요.

더 알아보기 (Learn more)