Help wanted!

The following content of this documentation page has been machine-translated. But unlike other websites, it is not done on the fly. This translated text lives on GitHub repository alongside main ClickHouse codebase and waits for fellow native speakers to make it more human-readable. You can also use the original English version as a reference.

Help ClickHouse documentation by editing this page

系统表

导言

系统表提供以下信息:

  • 服务器状态、进程和环境。
  • 服务器的内部进程。

系统表:

  • 坐落于 system 数据库。
  • 仅适用于读取数据。
  • 不能删除或更改,但可以分离。

大多数系统表将数据存储在RAM中。 ClickHouse服务器在开始时创建此类系统表。

与其他系统表不同,系统日志表 metric_log, query_log, query_thread_log, trace_log, part_log, crash_log and text_log 默认采用MergeTree 引擎并将其数据存储在存储文件系统中。 如果从文件系统中删除表,ClickHouse服务器会在下一次写入数据时再次创建空表。 如果系统表架构在新版本中发生更改,则ClickHouse会重命名当前表并创建一个新表。

用户可以通过在/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冲突。如果两者一起设置,服务启动时会抛出异常并且退出。

一个配置定义的例子如下:

  1. <yandex>
  2. <query_log>
  3. <database>system</database>
  4. <table>query_log</table>
  5. <partition_by>toYYYYMM(event_date)</partition_by>
  6. <ttl>event_date + INTERVAL 30 DAY DELETE</ttl>
  7. <!--
  8. <engine>ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_date, event_time) SETTINGS index_granularity = 1024</engine>
  9. -->
  10. <flush_interval_milliseconds>7500</flush_interval_milliseconds>
  11. </query_log>
  12. </yandex>

默认情况下,表增长是无限的。 要控制表的大小,可以使用 TTL 删除过期日志记录的设置。 你也可以使用分区功能 MergeTree-发动机表。

系统指标的来源

用于收集ClickHouse服务器使用的系统指标:

  • CAP_NET_ADMIN 能力。
  • procfs (仅在Linux中)。

procfs

如果ClickHouse服务器没有 CAP_NET_ADMIN 能力,它试图回落到 ProcfsMetricsProvider. ProcfsMetricsProvider 允许收集每个查询系统指标(用于CPU和I/O)。

如果系统上支持并启用procfs,ClickHouse server将收集这些指标:

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

原始文章