Обзор системных таблиц
- Состоянии сервера, процессах и окружении.
- Внутренних процессах сервера.
- Параметрах, использованных при сборке бинарного файла ClickHouse.
- Находятся в базе данных
system. - Доступны только для чтения данных.
- Не могут быть удалены или изменены, но могут быть отсоединены.
/etc/clickhouse-server/config.d/, либо задав соответствующие элементы в /etc/clickhouse-server/config.xml. Можно настраивать следующие элементы:
database: база данных, к которой относится системная таблица логов. Этот параметр теперь помечен как устаревший. Все системные таблицы логов находятся в базе данныхsystem.table: таблица для вставки данных.partition_by: задает выражение PARTITION BY.ttl: задает выражение TTL для таблицы.flush_interval_milliseconds: интервал сброса данных на диск.engine: задает полное выражение движка (начиная сENGINE =) с параметрами. Этот параметр конфликтует сpartition_byиttl. Если задать их вместе, сервер вызовет исключение и завершит работу.
MergeTree.
Источники системных метрик
- capability
CAP_NET_ADMIN. - procfs (только в Linux).
CAP_NET_ADMIN, он пытается использовать ProcfsMetricsProvider в качестве резервного варианта. ProcfsMetricsProvider позволяет собирать системные метрики для каждого запроса (для CPU и I/O).
Если procfs поддерживается и включен в системе, сервер ClickHouse собирает следующие метрики:
OSCPUVirtualTimeMicrosecondsOSCPUWaitMicrosecondsOSIOWaitMicrosecondsOSReadCharsOSWriteCharsOSReadBytesOSWriteBytes
OSIOWaitMicroseconds по умолчанию отключена в ядрах Linux, начиная с версии 5.14.x.
Вы можете включить её с помощью sudo sysctl kernel.task_delayacct=1 или создав файл .conf в /etc/sysctl.d/ с kernel.task_delayacct = 1Системные таблицы в ClickHouse Cloud
parts должны быть согласованными независимо от того, с какого узла выполняется запрос:
- Системные таблицы с суффиксом
_log. - Системные таблицы, содержащие метрики, например
metrics,asynchronous_metrics,events. - Системные таблицы, содержащие сведения о текущих процессах, например
processes,merges.
system.query_log, которые содержат строку для каждого запроса, выполненного на данном узле:
Запросы по нескольким версиям
merge. Например, приведённый ниже запрос находит последний запрос, отправленный на целевой узел, в каждой таблице query_log:
Не полагайтесь на числовой суффикс при определении порядкаХотя числовой суффикс у таблиц может указывать на порядок данных, полагаться на него нельзя. Поэтому, если вам нужен конкретный диапазон дат, всегда используйте табличную функцию merge в сочетании с фильтром по дате.
Запросы ко всем узлам
clusterAllReplicas в сочетании с функцией merge. Функция clusterAllReplicas позволяет выполнять запросы к системным таблицам на всех репликах в кластере “default”, объединяя данные отдельных узлов в единый результат. В сочетании с функцией merge это позволяет обращаться ко всем системным данным для конкретной таблицы в кластере.
Этот подход особенно полезен для мониторинга и отладки операций в масштабе всего кластера, помогая эффективно анализировать состояние и производительность развертывания ClickHouse Cloud.
ClickHouse Cloud предоставляет кластеры из нескольких реплик для избыточности и автоматического переключения при сбое. Это лежит в основе таких возможностей, как динамическое автомасштабирование и обновления без простоя. В любой момент новые узлы могут добавляться в кластер или удаляться из него. Чтобы пропустить такие узлы, добавьте
SETTINGS skip_unavailable_shards = 1 в запросы, использующие clusterAllReplicas, как показано ниже.query_log — это часто важно для анализа.
Запросы по узлам и версиям
merge, мы получим точный результат для нашего диапазона дат: