distributed_background_insert_* 세션 설정
distributed_background_insert_* 세션 설정
이 설정들은 Distributed 테이블 엔진의 백그라운드 데이터 전송(배치, 수면 시간, 배치 분할, 타임아웃)을 제어해요. ClickHouse 소스 코드에서 자동으로 생성된 세션 설정 문서예요.
출처: 문서
본문
이 설정들은 system.settings에서 사용할 수 있으며 소스 코드에서 자동으로 생성돼요.
distributed_background_insert_batch
별칭(Aliases): distributed_directory_monitor_batch_inserts
삽입된 데이터를 배치로 보내는 것을 활성화/비활성화해요.
배치 전송이 활성화되면 Distributed 테이블 엔진은 삽입된 데이터의 여러 파일을 개별적으로 보내는 대신 한 작업으로 보내려고 해요. 배치 전송은 서버와 네트워크 리소스를 더 잘 활용해 클러스터 성능을 향상시켜요.
가능한 값:
- 1 — 활성화.
- 0 — 비활성화.
distributed_background_insert_max_sleep_time_ms
별칭(Aliases): distributed_directory_monitor_max_sleep_time_ms
Distributed 테이블 엔진이 데이터를 보내는 최대 간격이에요. distributed_background_insert_sleep_time_ms 설정에 설정된 간격의 지수 성장을 제한해요.
가능한 값:
- 양의 정수 밀리초.
distributed_background_insert_sleep_time_ms
별칭(Aliases): distributed_directory_monitor_sleep_time_ms
Distributed 테이블 엔진이 데이터를 보내는 기본 간격이에요. 실제 간격은 오류 발생 시 지수적으로 증가해요.
가능한 값:
- 양의 정수 밀리초.
distributed_background_insert_split_batch_on_failure
별칭(Aliases): distributed_directory_monitor_split_batch_on_failure
실패 시 배치 분할을 활성화/비활성화해요.
때로 특정 배치를 원격 샤드로 보내는 것이, 그 뒤의 복잡한 파이프라인(예: GROUP BY가 있는 MATERIALIZED VIEW) 때문에 Memory limit exceeded 같은 오류로 실패할 수 있어요. 이 경우 재시도는 도움이 되지 않고(분산 전송이 테이블에 멈춰버릴 수 있음) 그 배치의 파일을 하나씩 보내면 INSERT가 성공할 수 있어요.
따라서 이 설정을 1로 하면 그런 배치에 대해 배치 처리를 비활성화해요(즉 실패한 배치에 대해 distributed_background_insert_batch를 일시적으로 비활성화).
가능한 값:
- 1 — 활성화.
- 0 — 비활성화.
이 설정은 (비정상적인 서버(머신) 종료와 Distributed 테이블 엔진의 fsync_after_insert/fsync_directories 부재 때문일 수 있는) 손상된 배치에도 영향을 줘요.
자동 배치 분할에 의존해서는 안 돼요. 성능을 해칠 수 있기 때문이에요.
distributed_background_insert_timeout
별칭(Aliases): insert_distributed_timeout
distributed로의 insert 쿼리 타임아웃이에요. 이 설정은 insert_distributed_sync가 활성화된 경우에만 사용돼요. 값 0은 타임아웃이 없다는 뜻이에요.