> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ZooKeeper server로 전송된 요청의 매개변수와 그에 대한 응답 정보를 포함하는 시스템 테이블입니다.

# system.zookeeper_log

<div id="description">
  ## 설명
</div>

이 테이블에는 ZooKeeper 서버로 전송되는 요청의 매개변수와 해당 서버의 응답 정보가 포함되어 있습니다.

요청의 경우 요청 매개변수가 있는 컬럼만 채워지고, 나머지 컬럼은 기본값(`0` 또는 `NULL`)으로 채워집니다. 응답이 도착하면 응답 데이터가 다른 컬럼에 추가됩니다.

<div id="columns">
  ## 컬럼
</div>

* `hostname` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 쿼리를 실행하는 server의 호스트명입니다.
* `type` ([Enum8('Request' = 1, 'Response' = 2, 'Finalize' = 3)](/ko/reference/data-types/enum)) — ZooKeeper 클라이언트의 이벤트 유형입니다. 값은 다음 중 하나입니다: Request — 요청이 전송됨, Response — 응답을 수신함, Finalize — 연결이 끊겨 응답을 수신하지 못함.
* `event_date` ([Date](/ko/reference/data-types/date)) — 이벤트가 발생한 날짜입니다.
* `event_time` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 이벤트가 발생한 시각입니다.
* `thread_id` ([UInt64](/ko/reference/data-types/int-uint)) — 이 요청을 실행한 스레드의 ID입니다.
* `query_id` ([String](/ko/reference/data-types/string)) — 이 요청이 실행된 쿼리의 ID입니다.
* `address` ([IPv6](/ko/reference/data-types/ipv6)) — 요청을 보내는 데 사용된 ZooKeeper 서버의 IP 주소입니다.
* `port` ([UInt16](/ko/reference/data-types/int-uint)) — 요청을 보내는 데 사용된 ZooKeeper 서버의 포트입니다.
* `session_id` ([Int64](/ko/reference/data-types/int-uint)) — ZooKeeper 서버가 각 연결에 설정하는 세션 ID입니다.
* `duration_microseconds` ([UInt64](/ko/reference/data-types/int-uint)) — ZooKeeper가 요청을 처리하는 데 걸린 시간입니다.
* `xid` ([Int64](/ko/reference/data-types/int-uint)) — 세션 내 요청의 ID입니다. 일반적으로 순차적인 요청 번호입니다. 요청 행과 짝을 이루는 응답/finalize 행에서 동일한 값을 가집니다.
* `has_watch` ([UInt8](/ko/reference/data-types/int-uint)) — watch가 설정되었는지 여부를 나타내는 요청입니다.
* `op_num` ([Enum16('Close' = -11, 'Error' = -1, 'Watch' = 0, 'Create' = 1, 'Remove' = 2, 'Exists' = 3, 'Get' = 4, 'Set' = 5, 'GetACL' = 6, 'SetACL' = 7, 'SimpleList' = 8, 'Sync' = 9, 'Heartbeat' = 11, 'List' = 12, 'Check' = 13, 'Multi' = 14, 'Create2' = 15, 'Reconfig' = 16, 'CheckWatch' = 17, 'RemoveWatch' = 18, 'MultiRead' = 22, 'Auth' = 100, 'SetWatch' = 101, 'SetWatch2' = 105, 'AddWatch' = 106, 'FilteredList' = 500, 'CheckNotExists' = 501, 'CreateIfNotExists' = 502, 'RemoveRecursive' = 503, 'CheckStat' = 504, 'TryRemove' = 505, 'FilteredListWithStatsAndData' = 506, 'ListRecursive' = 507, 'SessionID' = 997)](/ko/reference/data-types/enum)) — 요청 또는 응답 유형.
* `path` ([String](/ko/reference/data-types/string)) — 요청에서 지정된 ZooKeeper 노드의 경로이며, 요청에 경로를 지정할 필요가 없으면 빈 문자열입니다.
* `data` ([String](/ko/reference/data-types/string)) — ZooKeeper 노드에 기록되는 데이터(SET 및 CREATE 요청의 경우 요청에서 기록하려는 내용, GET 요청에 대한 응답의 경우 읽은 내용) 또는 빈 문자열입니다.
* `is_ephemeral` ([UInt8](/ko/reference/data-types/int-uint)) — ZooKeeper 노드가 ephemeral 노드로 생성되는지 여부입니다.
* `is_sequential` ([UInt8](/ko/reference/data-types/int-uint)) — ZooKeeper 노드가 sequential 모드로 생성되는지 여부입니다.
* `version` ([Nullable(Int32)](/ko/reference/data-types/nullable)) — 요청 실행 시 예상하는 ZooKeeper 노드의 버전입니다. 이는 CHECK, SET, REMOVE 요청에서 지원됩니다(요청이 버전을 확인하지 않으면 -1이 사용되며, 버전 확인을 지원하지 않는 다른 요청에서는 NULL이 사용됩니다).
* `requests_size` ([UInt32](/ko/reference/data-types/int-uint)) — 다중 요청에 포함된 요청의 수입니다(다중 요청은 여러 개의 연속된 일반 요청으로 구성되며, 이를 원자적으로 실행하는 특수한 요청입니다). 다중 요청에 포함된 모든 요청은 동일한 xid를 가집니다.
* `request_idx` ([UInt32](/ko/reference/data-types/int-uint)) — 멀티 요청에 포함된 요청 번호입니다(멀티 요청의 경우 — 0, 이후 1부터 순서대로 증가합니다).
* `zxid` ([Int64](/ko/reference/data-types/int-uint)) — ZooKeeper 트랜잭션 ID입니다. 성공적으로 처리된 요청에 대한 응답으로 ZooKeeper 서버가 부여하는 일련번호입니다(요청이 실행되지 않았거나/오류가 반환되었거나/클라이언트가 요청 실행 여부를 알 수 없는 경우에는 0).
* `error` ([Nullable(Enum8('ZNOWATCHER' = -121, 'ZNOTREADONLY' = -119, 'ZSESSIONMOVED' = -118, 'ZNOTHING' = -117, 'ZCLOSING' = -116, 'ZAUTHFAILED' = -115, 'ZINVALIDACL' = -114, 'ZINVALIDCALLBACK' = -113, 'ZSESSIONEXPIRED' = -112, 'ZNOTEMPTY' = -111, 'ZNODEEXISTS' = -110, 'ZNOCHILDRENFOREPHEMERALS' = -108, 'ZBADVERSION' = -103, 'ZNOAUTH' = -102, 'ZNONODE' = -101, 'ZAPIERROR' = -100, 'ZOUTOFMEMORY' = -10, 'ZINVALIDSTATE' = -9, 'ZBADARGUMENTS' = -8, 'ZOPERATIONTIMEOUT' = -7, 'ZUNIMPLEMENTED' = -6, 'ZMARSHALLINGERROR' = -5, 'ZCONNECTIONLOSS' = -4, 'ZDATAINCONSISTENCY' = -3, 'ZRUNTIMEINCONSISTENCY' = -2, 'ZSYSTEMERROR' = -1, 'ZOK' = 0))](/ko/reference/data-types/nullable)) — 오류 코드입니다. 가질 수 있는 값은 많으며, 여기에 일부만 나와 있습니다: ZOK — 요청이 성공적으로 실행되었습니다, ZCONNECTIONLOSS — 연결이 끊어졌습니다, ZOPERATIONTIMEOUT — 요청 실행 시간 초과가 발생했습니다, ZSESSIONEXPIRED — 세션이 만료되었습니다, NULL — 요청이 완료되었습니다.
* `watch_type` ([널 허용(Enum8('NOTWATCHING' = -2, 'SESSION' = -1, 'CREATED' = 1, 'DELETED' = 2, 'CHANGED' = 3, 'CHILD' = 4))](/ko/reference/data-types/nullable)) — watch 이벤트의 유형입니다(`op&#95;num = Watch`인 응답의 경우). 그 외 응답에서는 NULL입니다.
* `watch_state` ([Nullable(Enum16('AUTH\_FAILED' = -113, 'EXPIRED\_SESSION' = -112, 'CONNECTING' = 1, 'ASSOCIATING' = 2, 'CONNECTED' = 3, 'READONLY' = 5, 'NOTCONNECTED' = 999))](/ko/reference/data-types/nullable)) — watch 이벤트의 상태입니다(op\_num = Watch인 응답의 경우). 그 외 응답에서는 NULL입니다.
* `path_created` ([String](/ko/reference/data-types/string)) — 생성된 ZooKeeper 노드의 경로입니다(CREATE 요청에 대한 응답에서). 노드가 sequential로 생성되면 `path`와 다를 수 있습니다.
* `stat_czxid` ([Int64](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드를 생성한 변경의 zxid입니다.
* `stat_mzxid` ([Int64](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드를 마지막으로 변경한 작업의 zxid입니다.
* `stat_pzxid` ([Int64](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드의 자식 노드를 마지막으로 수정한 변경의 트랜잭션 ID입니다.
* `stat_version` ([Int32](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드 데이터의 변경 횟수입니다.
* `stat_cversion` ([Int32](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드의 자식 노드 변경 횟수입니다.
* `stat_dataLength` ([Int32](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드의 데이터 필드의 길이입니다.
* `stat_numChildren` ([Int32](/ko/reference/data-types/int-uint)) — 이 ZooKeeper 노드의 하위 노드 수입니다.
* `children` ([Array(String)](/ko/reference/data-types/array)) — 하위 ZooKeeper 노드의 목록입니다(LIST 요청에 대한 응답).

<div id="example">
  ## 예시
</div>

```sql title="Query" theme={null}
SELECT * FROM system.zookeeper_log WHERE (session_id = '106662742089334927') AND (xid = '10858') FORMAT Vertical;
```

```text title="Response" theme={null}
Row 1:
──────
hostname:         clickhouse.eu-central1.internal
type:             Request
event_date:       2021-08-09
event_time:       2021-08-09 21:38:30.291792
address:          ::
port:             2181
session_id:       106662742089334927
xid:              10858
has_watch:        1
op_num:           List
path:             /clickhouse/task_queue/ddl
data:
is_ephemeral:     0
is_sequential:    0
version:          ᴺᵁᴸᴸ
requests_size:    0
request_idx:      0
zxid:             0
error:            ᴺᵁᴸᴸ
watch_type:       ᴺᵁᴸᴸ
watch_state:      ᴺᵁᴸᴸ
path_created:
stat_czxid:       0
stat_mzxid:       0
stat_pzxid:       0
stat_version:     0
stat_cversion:    0
stat_dataLength:  0
stat_numChildren: 0
children:         []

Row 2:
──────
type:             Response
event_date:       2021-08-09
event_time:       2021-08-09 21:38:30.292086
address:          ::
port:             2181
session_id:       106662742089334927
xid:              10858
has_watch:        1
op_num:           List
path:             /clickhouse/task_queue/ddl
data:
is_ephemeral:     0
is_sequential:    0
version:          ᴺᵁᴸᴸ
requests_size:    0
request_idx:      0
zxid:             16926267
error:            ZOK
watch_type:       ᴺᵁᴸᴸ
watch_state:      ᴺᵁᴸᴸ
path_created:
stat_czxid:       16925469
stat_mzxid:       16925469
stat_pzxid:       16926179
stat_version:     0
stat_cversion:    7
stat_dataLength:  0
stat_numChildren: 7
children:         ['query-0000000006','query-0000000005','query-0000000004','query-0000000003','query-0000000002','query-0000000001','query-0000000000']
```

<div id="see-also">
  ## 관련 항목
</div>

* [ZooKeeper](/ko/guides/oss/best-practices/tips#zookeeper)
* [ZooKeeper 안내서](https://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html)
