이러한 설정은 system.settings에서 확인할 수 있으며, 소스로부터 자동으로 생성됩니다.
parallel_replicas_allow_in_with_subquery
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.3 | 1 | 값이 true이면 IN용 서브쿼리가 모든 팔로워 레플리카에서 실행됩니다 |
값이 true이면 IN용 서브쿼리가 모든 팔로워 레플리카에서 실행됩니다.
parallel_replicas_allow_materialized_views
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.12 | 1 | 병렬 레플리카에서 materialized view 사용 허용 |
병렬 레플리카에서 materialized view를 사용할 수 있도록 허용합니다
parallel_replicas_allow_view_over_mergetree
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 26.4 | 0 | 새로운 설정 |
병렬 레플리카가 MergeTree 테이블 기반의 단순 뷰에서 뷰의 내부 쿼리 대신 바깥쪽 쿼리를 실행하도록 허용하여, 노드 간 병렬화를 향상합니다. 이 설정은 모든 분기가 서로 다른 MergeTree 테이블을 읽는 UNION ALL 뷰에도 적용됩니다.
parallel_replicas_connect_timeout_ms
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.6 | 300 | 병렬 레플리카 쿼리를 위한 별도의 연결 타임아웃 |
병렬 레플리카를 사용해 쿼리를 실행할 때 원격 레플리카에 연결하는 데 적용되는 밀리초 단위 타임아웃입니다. 타임아웃이 초과되면 해당 레플리카는 쿼리 실행에 사용되지 않습니다.
parallel_replicas_count
이 설정은 내부용이므로 직접 사용해서는 안 되며, '병렬 레플리카' 모드의 구현 세부 사항입니다. 분산 쿼리에서는 쿼리 처리에 참여하는 병렬 레플리카 수에 맞춰 initiator server가 이 설정을 자동으로 지정합니다.
parallel_replicas_custom_key
특정 테이블에 대해 레플리카 간 작업을 분할하는 데 사용할 수 있는 임의의 정수 표현식입니다. 값은 어떤 정수 표현식이든 될 수 있습니다.
프라이머리 키(primary key)를 사용하는 단순한 표현식을 권장합니다.
이 설정을 여러 레플리카를 가진 단일 세그먼트로 구성된 클러스터에서 사용하면, 해당 레플리카는 가상 세그먼트로 변환됩니다.
그렇지 않으면 SAMPLE 키와 동일하게 동작하며, 각 세그먼트의 여러 레플리카를 사용합니다.
parallel_replicas_custom_key_range_lower
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.6 | 0 | 동적 세그먼트에서 병렬 레플리카를 사용할 때 `range` 필터를 제어하는 설정 추가 |
사용자 지정 범위 [parallel_replicas_custom_key_range_lower, INT_MAX]를 기준으로 range 필터 유형이 레플리카 간 작업을 균등하게 분할할 수 있도록 합니다.
parallel_replicas_custom_key_range_upper와 함께 사용하면 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] 범위에서 필터가 레플리카 전체에 작업을 균등하게 분할할 수 있습니다.
참고: 이 설정은 쿼리 처리 중 추가 데이터를 필터링하지 않습니다. 대신 병렬 처리를 위해 range 필터가 [0, INT_MAX] 범위를 분할하는 지점을 변경합니다.
parallel_replicas_custom_key_range_upper
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.6 | 0 | 병렬 레플리카와 동적 세그먼트를 사용할 때 range 필터를 제어하는 설정이 추가되었습니다. 값이 0이면 상한이 비활성화됩니다 |
range 필터 유형이 사용자 지정 범위 [0, parallel_replicas_custom_key_range_upper]를 기준으로 레플리카 간 작업을 균등하게 분할할 수 있도록 합니다. 값이 0이면 상한이 비활성화되며, 이 경우 사용자 지정 키 표현식의 최댓값이 사용됩니다.
parallel_replicas_custom_key_range_lower와 함께 사용하면, 범위 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]에서 필터가 레플리카 전체에 작업을 균등하게 분할할 수 있습니다.
참고: 이 설정은 쿼리 처리 중 추가 데이터를 필터링하지 않습니다. 대신 병렬 처리를 위해 range 필터가 범위 [0, INT_MAX]를 분할하는 지점을 변경합니다.
parallel_replicas_filter_pushdown
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 26.2 | 0 | 새로운 설정 |
병렬 레플리카가 실행하도록 선택한 쿼리 부분에 필터를 푸시다운할 수 있도록 허용합니다
parallel_replicas_for_cluster_engines
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.3 | 1 | 새 설정입니다. |
테이블 함수 엔진을 해당 -Cluster 버전으로 대체합니다
parallel_replicas_for_non_replicated_merge_tree
true이면 ClickHouse는 복제되지 않은 MergeTree 테이블에도 병렬 레플리카 알고리즘을 사용합니다
parallel_replicas_index_analysis_only_on_coordinator
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.12 | 1 | 인덱스 분석은 레플리카 코디네이터에서만 수행되며 다른 레플리카에서는 생략됩니다. `parallel_replicas_local_plan`이 활성화된 경우에만 적용됩니다. |
| 24.10 | 1 | 인덱스 분석은 레플리카 코디네이터에서만 수행되며 다른 레플리카에서는 생략됩니다. `parallel_replicas_local_plan`이 활성화된 경우에만 적용됩니다. |
인덱스 분석은 레플리카 코디네이터에서만 수행되며 다른 레플리카에서는 생략됩니다. parallel_replicas_local_pla가 활성화된 경우에만 적용됩니다.
parallel_replicas_insert_select_local_pipeline
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.5 | 1 | 병렬 레플리카를 사용하는 분산 INSERT SELECT에서 로컬 파이프라인을 사용합니다. 현재는 성능 문제로 인해 비활성화되어 있습니다 |
| 25.4 | 0 | 병렬 레플리카를 사용하는 분산 INSERT SELECT에서 로컬 파이프라인을 사용합니다. 현재는 성능 문제로 인해 비활성화되어 있습니다 |
병렬 레플리카를 사용하는 분산 INSERT SELECT에서 로컬 파이프라인을 사용합니다
parallel_replicas_local_plan
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.9 | 0 | 병렬 레플리카 쿼리에서 로컬 레플리카에 로컬 계획을 사용합니다 |
| 24.11 | 1 | 병렬 레플리카 쿼리에서 로컬 레플리카에 로컬 계획을 사용합니다 |
| 24.10 | 1 | 병렬 레플리카 쿼리에서 로컬 레플리카에 로컬 계획을 사용합니다 |
로컬 레플리카용 로컬 계획을 생성합니다
parallel_replicas_mark_segment_size
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.9 | 0 | 이 설정의 값은 이제 자동으로 결정됩니다 |
| 24.1 | 128 | 새로운 병렬 레플리카 코디네이터 구현에서 세그먼트 크기를 제어하기 위한 새로운 설정 추가 |
병렬 읽기를 위해 레플리카 간에 분배할 수 있도록 파트를 가상으로 세그먼트로 나눕니다. 이 설정은 해당 세그먼트의 크기를 제어합니다. 수행 중인 작업을 완전히 이해하고 확신하는 경우가 아니라면 변경하지 않는 것이 좋습니다. 값은 [128; 16384] 범위여야 합니다.
parallel_replicas_min_number_of_rows_per_replica
쿼리에서 사용할 레플리카 수를 (읽을 것으로 예상되는 행 수 / min_number_of_rows_per_replica)로 제한합니다. 최대값은 여전히 'max_parallel_replicas'로 제한됩니다.
parallel_replicas_mode
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.10 | read_tasks | 이 설정은 병렬 레플리카 기능이 베타가 되는 과정의 일부로 도입되었습니다 |
병렬 레플리카에서 사용자 지정 키와 함께 사용할 필터의 유형입니다. default - 사용자 지정 키에 modulo 연산을 사용합니다. range - 사용자 지정 키의 값 유형에서 가능한 모든 값을 사용해 사용자 지정 키에 범위 필터를 적용합니다.
parallel_replicas_only_with_analyzer
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.2 | 1 | 분석기가 활성화된 경우에만 병렬 레플리카가 지원됩니다 |
병렬 레플리카를 사용하려면 분석기가 활성화되어 있어야 합니다. 분석기가 비활성화되어 있으면 레플리카의 병렬 읽기가 활성화되어 있더라도 쿼리 실행은 로컬 실행으로 폴백됩니다. 분석기가 활성화되지 않은 상태에서 병렬 레플리카를 사용하는 것은 지원되지 않습니다.
parallel_replicas_plan_based
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 26.7 | 0 | 새로운 설정 |
쿼리 트리 기반 분석 대신 쿼리 계획을 분석하여 병렬 레플리카를 사용할지와 사용할 위치를 결정합니다. 그 결과 SQL 쿼리 대신 계획 프래그먼트가 원격 레플리카로 전송됩니다. 실험적 기능입니다.
parallel_replicas_prefer_local_join
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.2 | 1 | true이고 JOIN을 병렬 레플리카 알고리즘으로 실행할 수 있으며, 오른쪽 JOIN 부분의 모든 스토리지가 *MergeTree인 경우 GLOBAL JOIN 대신 로컬 JOIN을 사용합니다. |
true이고 JOIN을 병렬 레플리카 알고리즘으로 실행할 수 있으며, 오른쪽 JOIN 부분의 모든 스토리지가 *MergeTree인 경우 GLOBAL JOIN 대신 로컬 JOIN을 사용합니다.
parallel_replicas_prefer_local_replica
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 26.5 | 1 | 새 설정입니다. 비활성화하면 병렬 읽기용 레플리카는 로컬 레플리카를 집합에 강제로 포함하지 않고 부하 분산 알고리즘에 따라 선택됩니다. |
활성화된 경우(기본값) 로컬 레플리카는 병렬 읽기에 사용되는 레플리카 집합에 항상 포함됩니다.
비활성화된 경우 로컬 레플리카에는 우선권이 부여되지 않으며, 레플리카는 부하 분산 알고리즘에 따라서만 선택됩니다.
이렇게 하면 max_parallel_replicas = 1인 쿼리를 다른 호스트로 보낼 수 있으므로, 많은 짧은 쿼리가 클러스터 전체에 분산될 때 캐시 지역성을 개선할 수 있습니다.
parallel_replicas_support_projection
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.8 | 1 | 새 설정입니다. 프로젝션 최적화는 병렬 레플리카에서 적용할 수 있습니다. parallel_replicas_local_plan이 활성화되어 있고 aggregation_in_order가 비활성화된 경우에만 적용됩니다. |
프로젝션 최적화는 병렬 레플리카에서 적용할 수 있습니다. parallel_replicas_local_plan이 활성화되어 있고 aggregation_in_order가 비활성화된 경우에만 적용됩니다.