skip_unavailable_shards* 세션 설정

skip_unavailable_shards* 세션 설정

이 페이지에서는 사용할 수 없는 샤드를 건너뛰는 동작과 관련된 skip_unavailable_shards* 세션 설정들을 다뤄요. 샤드가 사용 불가할 때 이를 조용히 건너뛸지, 어떤 예외를 무시할지를 제어해요. 이 설정들은 system.settings 테이블에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성돼요.

출처: 문서

본문

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

skip_unavailable_shards

사용할 수 없는 샤드를 조용히 건너뛰는 동작을 활성화 또는 비활성화해요. 이 설정의 동작은 skip_unavailable_shards_mode 매개변수로 제어돼요. 가능한 값:

  • 1 — 건너뛰기 활성화. 샤드가 사용 불가하면 ClickHouse는 부분 데이터를 기반으로 결과를 반환하고 노드 가용성 문제를 보고하지 않아요.

  • 0 — 건너뛰기 비활성화. 샤드가 사용 불가하면 ClickHouse는 예외를 던져요.

skip_unavailable_shards_mode

skip_unavailable_shards가 활성화되었을 때 원격 샤드의 어떤 예외를 조용히 무시할지 제어해요. 이 설정은 skip_unavailable_shards = 0이면 효과가 없어요. 가능한 값:

  • unavailable — 연결 관련 오류만 무시돼요. ClickHouse가 레플리카 중 하나에도 연결할 수 없거나, 한 레플리카의 호스트명을 DNS로 해석할 수 없을 때 샤드가 사용 불가한 것으로 간주돼요.

  • unavailable_or_table_missingunavailable에 더해, 샤드에서 테이블이나 데이터베이스가 없어서 발생한 오류도 무시돼요. 테이블이 클러스터 전체에서 생성되거나 삭제되는 동안 유용해요. 이것이 기본값이며 skip_unavailable_shards의 기존 동작과 일치해요. 기존 동작도 테이블이 존재하지 않는 샤드를 사용 불가로 취급했어요.

  • unavailable_or_exception_before_processingunavailable에 더해, 샤드가 이니시에이터에 데이터 블록을 반환하기 전에 받은 모든 예외가 무시돼요. 샤드가 이미 일부 데이터를 반환한 후 도착한 예외는 항상 다시 던져져요. 단, "데이터를 반환하기 전"인지는 이니시에이터에서 확인된다는 점에 유의해요: 블로킹 계산(예: 집계, 정렬, LIMIT BY)을 수행하는 샤드는 블록을 내보내기 전에 행을 처리하고 실패할 수 있으며, 이 경우 부분 작업은 조용히 버려지고 나머지 샤드들로 만든 결과가 반환돼요. 따라서 이것은 가장 관대한 모드이므로 주의해서 사용해야 해요.

더 알아보기 (Learn more)