system.replicas
Содержит информацию и статус для реплицированных таблиц, находящихся на локальном сервере. Эта таблица может использоваться для мониторинга. Таблица содержит строку для каждой таблицы типа Replicated*.
Пример:
Колонки:
database(String) - Имя базы данныхtable(String) - Имя таблицыengine(String) - Имя движка таблицыis_leader(UInt8) - Является ли реплика лидером. Несколько реплик могут быть лидерами одновременно. Реплике можно запретить стать лидером с помощью настройкиmerge_treereplicated_can_become_leader. Лидеры отвечают за планирование фоновый слияний. Обратите внимание, что записи могут выполняться на любой доступной реплике, имеющей сессию в ZK, независимо от того, является ли она лидером.can_become_leader(UInt8) - Может ли реплика быть лидером.is_readonly(UInt8) - Является ли реплика в режиме только для чтения. Этот режим включается, если в конфигурации нет разделов с ClickHouse Keeper, если возникла неизвестная ошибка при повторной инициализации сессий в ClickHouse Keeper и во время повторной инициализации сессии в ClickHouse Keeper.is_session_expired(UInt8) - Сессия с ClickHouse Keeper истекла. По сути, то же самое, что иis_readonly.future_parts(UInt32) - Количество частей данных, которые появятся в результате INSERT или слияний, которые еще не выполнены.parts_to_check(UInt32) - Количество частей данных в очереди на проверку. Часть помещается в очередь на проверку, если есть подозрение, что она может быть повреждена.zookeeper_path(String) - Путь к данным таблицы в ClickHouse Keeper.replica_name(String) - Имя реплики в ClickHouse Keeper. Разные реплики одной и той же таблицы имеют разные имена.replica_path(String) - Путь к данным реплики в ClickHouse Keeper. То же самое, что и конкатенация 'zookeeper_path/replicas/replica_path'.columns_version(Int32) - Номер версии структуры таблицы. Указывает, сколько раз было выполнено ALTER. Если у реплик разные версии, это означает, что некоторые реплики не выполнили все ALTER.queue_size(UInt32) - Размер очереди для операций, ожидающих выполнения. Операции включают вставку блоков данных, слияния и некоторые другие действия. Обычно совпадает сfuture_parts.inserts_in_queue(UInt32) - Количество вставок блоков данных, которые необходимо выполнить. Вставки обычно реплицируются довольно быстро. Если это число велико, это означает, что что-то не так.merges_in_queue(UInt32) - Количество слияний, ожидающих выполнения. Иногда слияния занимают много времени, поэтому это значение может быть больше нуля длительное время.part_mutations_in_queue(UInt32) - Количество мутаций, ожидающих выполнения.queue_oldest_time(DateTime) - Еслиqueue_sizeбольше 0, показывает, когда самая старая операция была добавлена в очередь.inserts_oldest_time(DateTime) - Смотритеqueue_oldest_timemerges_oldest_time(DateTime) - Смотритеqueue_oldest_timepart_mutations_oldest_time(DateTime) - Смотритеqueue_oldest_time
Следующие 4 колонки имеют ненулевое значение только там, где есть активная сессия с ZK.
log_max_index(UInt64) - Максимальный номер записи в журнале общей активности.log_pointer(UInt64) - Максимальный номер записи в журнале общей активности, которую реплика скопировала в свою очередь выполнения, плюс один. Еслиlog_pointerнамного меньшеlog_max_index, что-то не так.last_queue_update(DateTime) - Когда очередь была обновлена в последний раз.absolute_delay(UInt64) - Насколько велик задержка в секундах у текущей реплики.total_replicas(UInt8) - Общее число известных реплик этой таблицы.active_replicas(UInt8) - Количество реплик этой таблицы, которые имеют сессию в ClickHouse Keeper (т.е. количество функционирующих реплик).lost_part_count(UInt64) - Количество частей данных, потерянных в таблице всеми репликами с момента создания таблицы. Значение хранится в ClickHouse Keeper и может только увеличиваться.last_queue_update_exception(String) - Когда очередь содержит поврежденные записи. Особенно важно, когда ClickHouse нарушает обратную совместимость между версиями, и записи лога, записанные новыми версиями, не могут быть разобраны старыми версиями.zookeeper_exception(String) - Сообщение о последнем исключении, полученное при ошибке при получении информации из ClickHouse Keeper.replica_is_active(Map(String, UInt8)) — Карта между именем реплики и активна ли реплика.
Если вы запрашиваете все колонки, таблица может работать немного медленнее, поскольку для каждой строки выполняется несколько чтений из ClickHouse Keeper. Если вы не запрашиваете последние 4 колонки (log_max_index, log_pointer, total_replicas, active_replicas), таблица работает быстро.
Например, вы можете проверить, что все работает правильно так:
Если этот запрос ничего не вернет, это означает, что все в порядке.