system.replicas 시스템 테이블

system.replicas 시스템 테이블

system.replicas 는 로컬 서버에 존재하는 복제 테이블에 대한 정보와 상태를 담고 있어요. 모니터링에 사용할 수 있으며, 각 Replicated* 테이블마다 하나의 행이 생성돼요.

출처: 문서

본문

Description

로컬 서버에 존재하는 복제 테이블에 대한 정보와 상태를 포함해요. 이 테이블은 모니터링에 사용할 수 있어요. 각 Replicated* 테이블마다 하나의 행이 들어 있어요.

Columns

  • database (String) — 데이터베이스 이름이에요.

  • table (String) — 테이블 이름이에요.

  • uuid (UUID) — 테이블 UUID예요.

  • engine (String) — 테이블 엔진 이름이에요.

  • is_leader (UInt8) — 복제본이 리더인지 여부예요. 여러 복제본이 동시에 리더일 수 있어요. 복제본은 merge_tree 설정인 replicated_can_become_leader 를 사용해 리더가 되는 것을 막을 수 있어요. 리더는 백그라운드 병합을 스케줄링하는 역할을 해요. 쓰기는 리더 여부와 무관하게 ZK에 세션이 있는 사용 가능한 복제본에 수행될 수 있다는 점을 유의하세요.

  • can_become_leader (UInt8) — 복제본이 리더가 될 수 있는지 여부예요.

  • is_readonly (UInt8) — 복제본이 읽기 전용 모드인지 여부예요. 이 모드는 구성에 ClickHouse Keeper 섹션이 없거나, ClickHouse Keeper에서 세션을 다시 초기화할 때 알 수 없는 오류가 발생했거나, ClickHouse Keeper에서 세션 초기화 중일 때 켜져요.

  • readonly_start_time (Nullable(DateTime)) — 복제본이 읽기 전용 모드로 전환된 타임스탬프예요. 복제본이 읽기 전용 모드가 아니면 Null이에요.

  • is_session_expired (UInt8) — ClickHouse Keeper와의 세션이 만료되었는지 여부예요. 기본적으로 is_readonly 와 같아요.

  • future_parts (UInt32) — 아직 수행되지 않은 INSERT나 병합의 결과로 나타날 데이터 파트 수예요.

  • parts_to_check (UInt32) — 검증 대기열에 있는 데이터 파트 수예요. 파트가 손상되었을 수 있다는 의심이 있으면 검증 대기열에 들어가요.

  • zookeeper_name (String) — 테이블 메타데이터가 저장된 [Zoo]Keeper 클러스터(보조 클러스터일 수 있음)의 이름이에요.

  • zookeeper_path (String) — ClickHouse Keeper에서 테이블 데이터로 가는 경로예요.

  • replica_name (String) — ClickHouse Keeper에서의 복제본 이름이에요. 같은 테이블의 서로 다른 복제본은 서로 다른 이름을 가져요.

  • replica_path (String) — ClickHouse Keeper에서 복제본 데이터로 가는 경로예요. ‘zookeeper_path/replicas/replica_path’ 를 연결한 것과 같아요.

  • columns_version (Int32) — 테이블 구조의 버전 번호예요. ALTER가 수행된 횟수를 나타내요. 복제본들이 다른 버전을 가지면 일부 복제본이 아직 모든 ALTER를 수행하지 않았음을 의미해요.

  • queue_size (UInt32) — 수행을 기다리는 작업의 대기열 크기예요. 작업에는 데이터 블록 삽입, 병합, 기타 특정 동작이 포함돼요. 보통 future_parts 와 일치해요.

  • inserts_in_queue (UInt32) — 수행해야 할 데이터 블록 삽입 수예요. 삽입은 보통 꽤 빠르게 복제돼요. 이 숫자가 크면 뭔가 잘못된 것이에요.

  • merges_in_queue (UInt32) — 수행을 기다리는 병합 수예요. 때로는 병합이 오래 걸리므로 이 값이 오랫동안 0보다 클 수 있어요.

  • part_mutations_in_queue (UInt32) — 수행을 기다리는 돌연변이 수예요.

  • queue_oldest_time (DateTime) — queue_size 가 0보다 크면 가장 오래된 작업이 대기열에 추가된 시각을 보여줘요.

  • inserts_oldest_time (DateTime) — queue_oldest_time 을 참고하세요.

  • merges_oldest_time (DateTime) — queue_oldest_time 을 참고하세요.

  • part_mutations_oldest_time (DateTime) — queue_oldest_time 을 참고하세요.

  • oldest_part_to_get (String) — 복제 대기열에서 가장 오래된 GET_PARTS 항목에서 얻은, 다른 복제본에서 가져올 파트의 이름이에요.

  • oldest_part_to_merge_to (String) — 복제 대기열에서 가장 오래된 MERGE_PARTS 항목에서 얻은, 병합할 결과 파트 이름이에요.

  • oldest_part_to_mutate_to (String) — 복제 대기열에서 가장 오래된 MUTATE_PARTS 항목에서 얻은, 돌연변이할 결과 파트 이름이에요.

  • log_max_index (UInt64) — 일반 활동 로그의 최대 항목 번호예요. 이 열과 다음 세 열(log_pointer, total_replicas, active_replicas)은 ClickHouse Keeper와의 활성 세션이 있는 경우에만 0이 아닌 값을 가져요.

  • log_pointer (UInt64) — 복제본이 실행 대기열로 복사한 일반 활동 로그의 최대 항목 번호에 1을 더한 값이에요. log_pointer 가 log_max_index 보다 훨씬 작으면 뭔가 잘못된 것이에요.

  • last_queue_update (DateTime) — 대기열이 마지막으로 업데이트된 시각이에요.

  • absolute_delay (UInt64) — 현재 복제본의 지연이 초 단위로 얼마나 큰지예요.

  • total_replicas (UInt32) — 이 테이블의 알려진 전체 복제본 수예요.

  • active_replicas (UInt32) — ClickHouse Keeper에 세션이 있는 이 테이블의 복제본 수(즉, 작동 중인 복제본 수)예요.

  • lost_part_count (UInt64) — 테이블 생성 이후 모든 복제본이 합쳐서 잃어버린 데이터 파트 수예요. 값은 ClickHouse Keeper에 유지되며 증가만 할 수 있어요.

  • last_queue_update_exception (String) — 대기열에 손상된 항목이 있을 때의 메시지예요. ClickHouse가 버전 간 하위 호환성을 깨뜨리고 최신 버전이 쓴 로그 항목을 이전 버전이 파싱하지 못할 때 특히 중요해요.

  • zookeeper_exception (String) — ClickHouse Keeper에서 정보를 가져올 때 오류가 발생한 경우 마지막 예외 메시지예요.

  • replica_is_active (Map(String, UInt8)) — 복제본 이름과 복제본 활성 여부 사이의 맵이에요.

별칭(Aliases):

  • readonly_durationif(isNull(readonly_start_time), NULL, now() - readonly_start_time) 의 별칭이에요.

Example

SELECT *
FROM system.replicas
WHERE table = 'test_table'
FORMAT Vertical
Query id: dc6dcbcb-dc28-4df9-ae27-4354f5b3b13e

Row 1:
───────
database:                    db
table:                       test_table
engine:                      ReplicatedMergeTree
is_leader:                   1
can_become_leader:           1
is_readonly:                 0
is_session_expired:          0
future_parts:                0
parts_to_check:              0
zookeeper_path:              /test/test_table
replica_name:                r1
replica_path:                /test/test_table/replicas/r1
columns_version:             -1
queue_size:                  27
inserts_in_queue:            27
merges_in_queue:             0
part_mutations_in_queue:     0
queue_oldest_time:           2021-10-12 14:48:48
inserts_oldest_time:         2021-10-12 14:48:48
merges_oldest_time:          1970-01-01 03:00:00
part_mutations_oldest_time:  1970-01-01 03:00:00
oldest_part_to_get:          1_17_17_0
oldest_part_to_merge_to:
oldest_part_to_mutate_to:
log_max_index:               206
log_pointer:                 207
last_queue_update:           2021-10-12 14:50:08
absolute_delay:              99
total_replicas:              5
active_replicas:             5
lost_part_count:             0
last_queue_update_exception:
zookeeper_exception:
replica_is_active:           {'r1':1,'r2':1}