system.keeper_storage 시스템 테이블

system.keeper_storage 시스템 테이블

system.keeper_storage 는 clickhouse server(그리고 clickhouse keeper 가 아닌) 프로세스를 사용하는 ClickHouse Keeper 배포에만 존재하는 테이블이에요. 로컬 Keeper 노드에 저장된 데이터 트리( /keeper 시스템 노드 포함)의 노드마다 하나의 행을 포함해요.

출처: 문서

본문

ClickHouse Cloud에서의 조회 — 이 시스템 테이블의 데이터는 ClickHouse Cloud에서 각 노드에 로컬로 저장돼요. 따라서 모든 데이터의 완전한 뷰를 얻으려면 clusterAllReplicas 함수가 필요해요. 자세한 내용은 여기 를 참고하세요.

Description

이 테이블은 clickhouse server(그리고 clickhouse keeper 가 아닌) 프로세스를 사용하는 ClickHouse Keeper 배포에만 존재해요. 로컬 Keeper 노드에 저장된 데이터 트리의 노드마다 하나의 행을 포함하며, /keeper 시스템 노드도 포함해요. system.zookeeper 와 달리 이 테이블은 Keeper 클러스터에 요청을 보내지 않아요. 일관된 락 없는(lock-free) 뷰에서 로컬 Keeper의 커밋된 상태를 직접 읽으며, 요청 처리에 영향을 주지 않아요. 테이블을 읽는 데 경로 조건이 필요하지 않고 전체 트리를 반환하므로, 가장 많은 자식을 가진 노드나 가장 큰 데이터를 찾는 것처럼 모든 노드를 스캔하는 쿼리에 적합해요.

Columns

  • path (String) — 노드의 절대 경로예요.

  • data (String) — 노드에 저장된 데이터예요.

  • czxid (Int64) — 노드를 만든 트랜잭션의 ID예요.

  • mzxid (Int64) — 노드를 마지막으로 수정한 트랜잭션의 ID예요.

  • ctime (DateTime64(3)) — 노드가 만들어진 시간이에요.

  • mtime (DateTime64(3)) — 노드가 마지막으로 수정된 시간이에요.

  • version (Int32) — 노드 데이터의 수정 횟수예요.

  • cversion (Int32) — 노드 자식의 수정 횟수예요.

  • aversion (Int32) — 노드 ACL의 수정 횟수예요.

  • ephemeral_owner (Int64) — 노드가 임시(ephemeral) 노드이면 소유한 세션의 ID, 그렇지 않으면 0이에요.

  • data_length (UInt32) — 노드 데이터의 크기(바이트)예요.

  • num_children (Int32) — 노드의 자식 수예요.

  • pzxid (Int64) — 노드의 자식을 마지막으로 추가하거나 제거한 트랜잭션의 ID예요.

  • seq_num (Int64) — 노드의 순차 자식 이름을 만드는 데 사용되는 카운터예요.

  • ttl (Int64) — TTL 노드이면 밀리초 단위의 노드 TTL, 그렇지 않으면 0이에요.

  • acl_id (UInt32) — 노드 ACL의 내부 ID이며, 노드에 ACL이 없으면 0이에요.

Example

SELECT path, num_children, data_length
FROM system.keeper_storage
ORDER BY num_children DESC
LIMIT 3;
┌─path──────────────┬─num_children─┬─data_length─┐
│ /                 │            3 │           0 │
│ /clickhouse/tasks │            2 │           0 │
│ /keeper           │            1 │           0 │
└───────────────────┴──────────────┴─────────────┘