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 │
└───────────────────┴──────────────┴─────────────┘