System tables provide information about:
- Server states, processes, and environment.
- Server’s internal processes.
- Located in the
- Available only for reading data.
- Can’t be dropped or altered, but can be detached.
Most of system tables store their data in RAM. A ClickHouse server creates such system tables at the start.
Unlike other system tables, the system tables metric_log, query_log, query_thread_log, trace_log are served by MergeTree table engine and store their data in a storage filesystem. If you remove a table from a filesystem, the ClickHouse server creates the empty one again at the time of the next data writing. If system table schema changed in a new release, then ClickHouse renames the current table and creates a new one.
By default, table growth is unlimited. To control a size of a table, you can use TTL settings for removing outdated log records. Also you can use the partitioning feature of
For collecting system metrics ClickHouse server uses:
- procfs (only in Linux).
If ClickHouse server doesn’t have
CAP_NET_ADMIN capability, it tries to fall back to
ProcfsMetricsProvider allows collecting per-query system metrics (for CPU and I/O).
If procfs is supported and enabled on the system, ClickHouse server collects these metrics: