Описание
Таблица доступна только в развертываниях ClickHouse Keeper, использующих процесс clickhouse server (а не clickhouse keeper). Она содержит по одной строке для каждого узла дерева данных, хранящегося на локальном узле Keeper, включая системные узлы /keeper.
В отличие от system.zookeeper, эта таблица не отправляет запросы в кластер Keeper. Она напрямую считывает зафиксированное состояние локального Keeper из согласованного представления без блокировок, не влияя на обработку запросов. Для чтения таблицы не требуется условие пути; она возвращает всё дерево, поэтому подходит для запросов, сканирующих все узлы, например для поиска узлов с наибольшим числом дочерних узлов или наибольшим объёмом данных.
Столбцы
path(String) — Абсолютный путь узла.data(String) — Данные, хранящиеся в узле.czxid(Int64) — Идентификатор транзакции, создавшей узел.mzxid(Int64) — Идентификатор транзакции, последней изменившей узел.ctime(DateTime64(3)) — Время создания узла.mtime(DateTime64(3)) — Время последнего изменения узла.version(Int32) — Количество изменений данных узла.cversion(Int32) — Количество изменений дочерних узлов.aversion(Int32) — Количество изменений ACL узла.ephemeral_owner(Int64) — Идентификатор сеанса, которому принадлежит эфемерный узел; в противном случае —0.data_length(UInt32) — Размер данных узла в байтах.num_children(Int32) — Количество дочерних узлов.pzxid(Int64) — Идентификатор транзакции, последней добавившей или удалившей дочерние узлы.seq_num(Int64) — Счётчик, используемый для генерации имён последовательных дочерних узлов.ttl(Int64) — TTL узла в миллисекундах для TTL-узла; в противном случае —0.acl_id(UInt32) — Внутренний идентификатор ACL узла;0, если у узла нет ACL.
Пример
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 │
└───────────────────┴──────────────┴─────────────┘