병렬 처리 세션 설정

병렬 처리 세션 설정 (parallel_*)

이 페이지에서는 병렬 처리와 관련된 다양한 parallel_* 세션 설정들을 다뤄요. 분산 INSERT ... SELECT, 해시 조인, 뷰 처리 등을 병렬로 실행하는 동작을 제어해요. 이 설정들은 system.settings 테이블에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성돼요.

출처: 문서

본문

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

parallel_distributed_insert_select

병렬 분산 INSERT ... SELECT 쿼리를 활성화해요. INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b 쿼리를 실행하고 두 테이블이 같은 클러스터를 사용하며, 두 테이블이 모두 replicated이거나 모두 비-replicated이면, 이 쿼리는 각 샤드에서 로컬로 처리돼요. 가능한 값:

  • 0 — 비활성화.

  • 1SELECT가 분산 엔진의 기본 테이블에서 각 샤드에서 실행돼요.

  • 2SELECTINSERT가 분산 엔진의 기본 테이블에서/로 각 샤드에서 실행돼요.

v25.4부터 ReplicatedMergeTree 또는 SharedMergeTree 소스에서의 INSERT ... SELECT도 레플리카 간에 병렬화될 수 있어요. 활성화하려면:

  • parallel_distributed_insert_select = 2

  • enable_parallel_replicas = 1

parallel_hash_join_threshold

해시 기반 조인 알고리즘이 적용될 때, 이 임계값은 hashparallel_hash 중 무엇을 사용할지 결정하는 데 도움을 줘요(오른쪽 테이블 크기 추정이 가능한 경우에만). 오른쪽 테이블 크기가 임계값보다 작다고 알려진 경우 전자를 사용해요.

parallel_non_joined_rows_processing

RIGHTFULL JOIN 중 오른쪽 테이블의 비조인(row)을 여러 스레드가 병렬로 처리하도록 허용해요. 큰 테이블에서 parallel_hash 조인 알고리즘을 사용할 때 비조인 단계를 빠르게 할 수 있어요. 비활성화되면 비조인 행은 단일 스레드로 처리돼요.

parallel_replica_offset

직접 사용해서는 안 되는 내부 설정이며, '병렬 레플리카' 모드의 구현 세부 사항을 나타내요. 이 설정은 분산 쿼리의 경우 병렬 레플리카 중 쿼리 처리에 참여하는 레플리카의 인덱스로 이니시에이터 서버에 의해 자동으로 설정돼요.

parallel_view_processing

연결된 뷰를 순차적으로가 아니라 동시에 푸시할 수 있게 해요.

더 알아보기 (Learn more)