distributed_aggregation_memory_efficient
distributed_connections_pool_size
distributed_foreground_insert
insert_distributed_sync
분산 테이블에 데이터를 동기식으로 삽입할지 여부를 설정합니다.
기본적으로 Distributed 테이블에 데이터를 삽입하면 ClickHouse 서버는 데이터를 백그라운드 모드로 클러스터 노드에 전송합니다. distributed_foreground_insert=1이면 데이터가 동기식으로 처리되며, 모든 세그먼트에 데이터가 저장된 후에만 INSERT 작업이 성공합니다(internal_replication이 true이면 각 세그먼트에서 최소 1개의 레플리카에 저장).
가능한 값:
0— 데이터가 백그라운드 모드로 삽입됩니다.1— 데이터가 동기식 모드로 삽입됩니다.
1.
관련 항목
distributed_group_by_no_merge
0— 비활성화됨(최종 쿼리 처리는 시작 노드에서 수행됩니다).1- 분산 쿼리 처리에서 서로 다른 서버의 집계 상태를 머지하지 않습니다(쿼리는 세그먼트에서 완전히 처리되며, 시작 노드는 데이터만 프록시합니다). 서로 다른 세그먼트에 서로 다른 키가 있는 것이 확실할 때 사용할 수 있습니다.2-1과 같지만ORDER BY및LIMIT는 시작 노드에 적용합니다(distributed_group_by_no_merge=1처럼 쿼리가 원격 노드에서 완전히 처리되는 경우에는 적용할 수 없습니다).ORDER BY및/또는LIMIT가 있는 쿼리에 사용할 수 있습니다.
distributed_insert_skip_read_only_replicas
- 0 — INSERT는 평소처럼 수행되며, 읽기 전용 레플리카로 전송되면 실패합니다
- 1 — 시작 노드가 데이터를 세그먼트로 보내기 전에 읽기 전용 레플리카를 건너뜁니다.
distributed_product_mode
- IN 및 JOIN 서브쿼리에만 적용됩니다.
- FROM 절에서 2개 이상의 세그먼트를 포함하는 분산 테이블을 사용하는 경우에만 적용됩니다.
- 서브쿼리가 2개 이상의 세그먼트를 포함하는 분산 테이블에 관련된 경우에만 적용됩니다.
- 테이블 값 remote 함수에는 사용되지 않습니다.
deny— 기본값입니다. 이러한 유형의 서브쿼리 사용을 금지합니다(“Double-distributed in/JOIN subqueries is denied” 예외를 반환합니다).local— 서브쿼리의 데이터베이스와 테이블을 대상 서버(세그먼트)의 로컬 데이터베이스 및 테이블로 바꾸고, 일반IN/JOIN은 그대로 유지합니다.global—IN/JOIN쿼리를GLOBAL IN/GLOBAL JOIN으로 바꿉니다.allow— 이러한 유형의 서브쿼리 사용을 허용합니다.
distributed_push_down_limit
- 네트워크를 통해 불필요한 추가 행을 전송하는 것
- 시작 노드에서 LIMIT을 초과하는 행을 처리하는 것
distributed_push_down_limit가 아래 조건 중 하나 이상이 충족되는 경우에만 쿼리 실행을 변경하므로, 더 이상 부정확한 결과가 발생하지 않습니다.
- distributed_group_by_no_merge > 0.
- 쿼리에
GROUP BY/DISTINCT/LIMIT BY는 없고,ORDER BY/LIMIT는 있습니다. - 쿼리에
GROUP BY/DISTINCT/LIMIT BY와ORDER BY/LIMIT가 있으며, 다음 조건을 만족합니다.- optimize_skip_unused_shards가 활성화되어 있습니다.
- optimize_distributed_group_by_sharding_key가 활성화되어 있습니다.
- 0 — 비활성화됨.
- 1 — 활성화됨.