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은 타임아웃이 없다는 뜻이에요.

더 알아보기 (Learn more)