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

> 包含发送到 ZooKeeper 服务器的请求参数及其响应信息的系统表。

# system.zookeeper_log

<div id="description">
  ## 描述
</div>

此表包含发送到 ZooKeeper 服务器的请求参数及其响应信息。

对于请求，只填充包含请求参数的列，其余列使用默认值 (`0` 或 `NULL`) 填充。收到响应后，响应中的数据会补充到其他列中。

<div id="columns">
  ## 列
</div>

* `hostname` ([LowCardinality(String)](/zh/reference/data-types/lowcardinality)) — 执行该查询的服务器主机名。
* `type` ([Enum8('Request' = 1, 'Response' = 2, 'Finalize' = 3)](/zh/reference/data-types/enum)) — ZooKeeper 客户端中的事件类型。可取以下值之一：Request — 请求已发送，Response — 已收到响应，Finalize — 连接已断开，未收到响应。
* `event_date` ([Date](/zh/reference/data-types/date)) — 事件发生日期。
* `event_time` ([DateTime64(6)](/zh/reference/data-types/datetime64)) — 事件发生的日期和时间。
* `thread_id` ([UInt64](/zh/reference/data-types/int-uint)) — 执行该请求的线程 ID。
* `query_id` ([String](/zh/reference/data-types/string)) — 执行此请求时所属查询的 ID。
* `address` ([IPv6](/zh/reference/data-types/ipv6)) — 用于发出该请求的 ZooKeeper 服务器的 IP 地址。
* `port` ([UInt16](/zh/reference/data-types/int-uint)) — 用于发起该请求的 ZooKeeper 服务器端口。
* `session_id` ([Int64](/zh/reference/data-types/int-uint)) — ZooKeeper 服务器为每个连接分配的会话 ID。
* `duration_microseconds` ([UInt64](/zh/reference/data-types/int-uint)) — ZooKeeper 执行该请求所耗费的时间。
* `xid` ([Int64](/zh/reference/data-types/int-uint)) — 会话中请求的 ID。通常是按顺序递增的请求编号。对于请求行及与之配对的响应/完成行，该值相同。
* `has_watch` ([UInt8](/zh/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)](/zh/reference/data-types/enum)) — 表示请求或响应的类型。
* `path` ([String](/zh/reference/data-types/string)) — 请求中指定的 ZooKeeper 节点路径；如果该请求无需指定路径，则为空字符串。
* `data` ([String](/zh/reference/data-types/string)) — 写入 ZooKeeper 节点的数据 (对于 SET 和 CREATE 请求，即请求要写入的内容；对于 GET 请求的响应，即读取到的内容) ，或者是空字符串。
* `is_ephemeral` ([UInt8](/zh/reference/data-types/int-uint)) — ZooKeeper 节点是否为临时节点。
* `is_sequential` ([UInt8](/zh/reference/data-types/int-uint)) — 是否以 sequential 模式创建 ZooKeeper 节点。
* `version` ([Nullable(Int32)](/zh/reference/data-types/nullable)) — 执行请求时期望的 ZooKeeper 节点版本。此项适用于 CHECK、SET、REMOVE 请求 (如果请求不检查版本，则该值为 -1；对于其他不支持版本检查的请求，则为 NULL) 。
* `requests_size` ([UInt32](/zh/reference/data-types/int-uint)) — 多请求中包含的请求数 (这是一种特殊请求，由多个连续的普通请求组成，并以原子方式执行) 。多请求中包含的所有请求都将具有相同的 xid。
* `request_idx` ([UInt32](/zh/reference/data-types/int-uint)) — 多请求中的请求序号 (对于多请求，第一个为 0，之后按顺序从 1 开始) 。
* `zxid` ([Int64](/zh/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))](/zh/reference/data-types/nullable)) — 错误代码。可取很多值，这里仅列出其中一部分：ZOK — 请求已成功执行，ZCONNECTIONLOSS — 连接已丢失，ZOPERATIONTIMEOUT — 请求执行已超时，ZSESSIONEXPIRED — 会话已过期，NULL — 请求已完成。
* `watch_type` ([Nullable(Enum8('NOTWATCHING' = -2, 'SESSION' = -1, 'CREATED' = 1, 'DELETED' = 2, 'CHANGED' = 3, 'CHILD' = 4))](/zh/reference/data-types/nullable)) — watch 事件类型 (用于 op\_num = Watch 的响应) ，其余响应为 NULL。
* `watch_state` ([Nullable(Enum16('AUTH\_FAILED' = -113, 'EXPIRED\_SESSION' = -112, 'CONNECTING' = 1, 'ASSOCIATING' = 2, 'CONNECTED' = 3, 'READONLY' = 5, 'NOTCONNECTED' = 999))](/zh/reference/data-types/nullable)) — watch 事件的状态 (适用于 op\_num = Watch 的响应) ；其余响应中该值为 NULL。
* `path_created` ([String](/zh/reference/data-types/string)) — 已创建的 ZooKeeper 节点的路径 (在对 CREATE 请求的响应中返回) ；如果该节点以 sequential 模式创建，则该路径可能与 `path` 不同。
* `stat_czxid` ([Int64](/zh/reference/data-types/int-uint)) — 导致此 ZooKeeper 节点被创建的变更的 zxid。
* `stat_mzxid` ([Int64](/zh/reference/data-types/int-uint)) — 最后一次修改此 ZooKeeper 节点的变更对应的 zxid。
* `stat_pzxid` ([Int64](/zh/reference/data-types/int-uint)) — 最后一次修改此 ZooKeeper 节点子节点的变更事务 ID。
* `stat_version` ([Int32](/zh/reference/data-types/int-uint)) — 此 ZooKeeper 节点数据的更改次数。
* `stat_cversion` ([Int32](/zh/reference/data-types/int-uint)) — 此 ZooKeeper 节点的子节点变更次数。
* `stat_dataLength` ([Int32](/zh/reference/data-types/int-uint)) — 此 ZooKeeper 节点中 data field 的长度。
* `stat_numChildren` ([Int32](/zh/reference/data-types/int-uint)) — 此 ZooKeeper 节点的子节点数。
* `children` ([Array(String)](/zh/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](/zh/guides/oss/best-practices/tips#zookeeper)
* [ZooKeeper 指南](https://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html)
