Skip to main content
Skip to main content
Edit this page

Системные таблицы

Введение​

Системные таблицы содержат информацию о:

  • состоянии сервера, процессов и окружении.
  • внутренних процессах сервера.

Системные таблицы:

  • находятся в базе данных system.
  • доступны только для чтения данных.
  • не могут быть удалены или изменены, но их можно отсоединить.

Большинство системных таблиц хранят свои данные в оперативной памяти. Сервер ClickHouse создает эти системные таблицы при старте.

В отличие от других системных таблиц, таблицы с системными логами metric_log, query_log, query_thread_log, trace_log, part_log, crash_log, text_log и backup_log используют движок таблиц MergeTree и по умолчанию хранят свои данные в файловой системе. Если удалить таблицу из файловой системы, сервер ClickHouse снова создаст пустую таблицу во время следующей записи данных. Если схема системной таблицы изменилась в новом релизе, то ClickHouse переименует текущую таблицу и создаст новую.

Таблицы с системными логами log можно настроить, создав конфигурационный файл с тем же именем, что и таблица в разделе /etc/clickhouse-server/config.d/, или указав соответствующие элементы в /etc/clickhouse-server/config.xml. Настраиваться могут следующие элементы:

  • database — база данных, к которой принадлежит системная таблица. Эта опция на текущий момент устарела. Все системные таблицы находятся в базе данных system.
  • table — таблица для добавления данных.
  • partition_by — ключ партиционирования.
  • ttl — время жизни записей в таблице.
  • flush_interval_milliseconds — интервал сброса данных на диск, в миллисекундах.
  • engine — полное имя движка (начиная с ENGINE = ) с параметрами. Эта опция противоречит partition_by и ttl. Если указать оба параметра вместе, сервер вернет ошибку и завершит работу.

Пример:

По умолчанию размер таблицы не ограничен. Управлять размером таблицы можно используя TTL для удаления устаревших записей журнала. Также вы можете использовать функцию партиционирования для таблиц MergeTree.

Источники системных показателей​

Для сбора системных показателей сервер ClickHouse использует:

  • возможности CAP_NET_ADMIN.
  • procfs (только Linux).

Если для сервера ClickHouse не включено CAP_NET_ADMIN, он пытается обратиться к ProcfsMetricsProvider. ProcfsMetricsProvider позволяет собирать системные показатели для каждого запроса (для CPU и I/O).

Если procfs поддерживается и включена в системе, то сервер ClickHouse собирает следующие системные показатели:

  • OSCPUVirtualTimeMicroseconds
  • OSCPUWaitMicroseconds
  • OSIOWaitMicroseconds
  • OSReadChars
  • OSWriteChars
  • OSReadBytes
  • OSWriteBytes