文章目录
- 前言
- 系统表
-
- system.asynchronous_metrics
- system.clusters
- system.columns
- system.databases
- system.detached_parts
- system.dictionaries
- system.events
- system.functions
- system.graphite_retentions
- system.merges
- system.metrics
- system.metric_log
- system.parts
- system.part_log
- system.processes
- system.text_log
- system.query_log
- system.query_thread_log
- system.trace_log
- system.replicas
- system.settings
- system.merge_tree_settings
- system.table_engines
- system.tables
- system.zookeeper
- system.mutations
- system.disks
- system.storage_policies
前言
在日常使用clickhouse中经常会遇到很多问题,有时候需要去查系统表,但是对于我们来说,大部分的系统表的字段名称都不知道,看到了也不知道啥意思,下面我就整理一下clickhouse系统表的字段注释。
系统表
系统表用于实现系统的部分功能,并提供对有关系统如何工作的信息的访问。
不能删除系统表(但可以执行DETACH)。
系统表在磁盘上没有数据或元数据的文件。服务器在启动时创建所有系统表。
系统表是只读的。
它们位于 ‘system’ 数据库中。
system.asynchronous_metrics
记录定期在后台计算的指标。例如,正在使用的RAM数量。
列:
metric (String) — 指标名称
value (Float64) — 指标值
system.clusters
记录有关配置文件中可用的集群及其中的服务器的信息。
列:
cluster (String) — 集群名称。
shard_num (UInt32) — 集群分片数,从1开始。
shard_weight (UInt32) — 写入数据时分片的相对权重。
replica_num (UInt32) — 分片的副本编号,从1开始。
host_name (String) — 主机名,也可以在配置中指定。
host_address (String) — 从DNS获得的主机IP地址。
port (UInt16) — 用于连接到服务器的端口。
user (String) — 用于连接到服务器的用户。
errors_count (UInt32) — 此主机无法到达副本的次数。
estimated_recovery_time (UInt32) — 副本错误计数归零剩下的秒数,它被认为是恢复正常。
errors_count 每个查询集群更新一次,但 estimated_recovery_time 按需重新计算。 所以有可能有这样的情况:非零 errors_count 和零 estimated_recovery_time,如果它没有错误,下一个查询 errors_count将为零 并尝试使用副本。
system.columns
记录有关所有表的列的信息。
列:
database (String) — 数据库名称。
table (String) — 表名。
name (String) — 列名。
type (String) — 列类型。
default_kind (String) — 表达式类型 (DEFAULT, MATERIALIZED, ALIAS),如果没有定义,则为空字符串。
default_expression (String) — 表达式, 如果没有定义,则为空字符串。
data_compressed_bytes (UInt64) — 压缩数据的大小,以字节为单位。
data_uncompressed_bytes (UInt64) — 解压数据的大小,以字节为单位。
marks_bytes (UInt64) — 标记的大小,以字节为单位。
comment (String) — 列的注释,如果没有定义,则为空字符串。
is_in_partition_key (UInt8) — 标志,表明列是否在分区表达式中。
is_in_sorting_key (UInt8) — 标志,表明列是否在排序键表达式中。
is_in_primary_key (UInt8) — 标志,表明列是否在主键表达式中。
is_in_sampling_key (UInt8) — 标志,表明列是否在抽样表达式中。
system.databases
这个表包含一个名为“name”的字符串列——数据库的名称。 每个服务器知道的数据库在表中都会相应的进入表中。 这个系统表用于实现 SHOW DATABASES 查询。
system.detached_parts
记录关于 MergeTree 表的已卸载分区的信息。reason 列指定了分区卸载的原因。对于用户卸载的分区,原因是空的。可以用 ALTER TABLE ATTACH PARTITION|PART 命令加载这些分区。有关其他列的描述,参考system.parts。如果分区名称无效,某些列的值可能为NULL。可以使用ALTER TABLE DROP DETACHED PART来删除这些分区。
system.dictionaries
外部字典信息。
列:
database (String) — 包含由DDL查询创建的字典的数据库的名称。其他字典为空字符串。
name (String) — 字典名称。
status (Enum8) — 字典状态。可能的值:
NOT_LOADED — Dictionary未加载,由于没有被使用。
LOADED — 字典加载成功。
FAILED — 由于错误,无法加载字典。
LOADING — 字典正在加载中。
LOADED_AND_RELOADING — 字典加载成功,现在正在重新加载(常见原因:系统重新加载字典查询、超时、字典配置发送变化)。
FAILED_AND_RELOADING — 由于错误无法加载字典,现在正在加载。
origin (String) — 描述字典的配置文件的路径。
type (String) — 字典类型。Flat, Hashed, Cache,将字典存储在内存中。
key — Key 类型: 数值Key (UInt64) 或者 复合 key (String) — 取自 “(type 1, type 2, …, type n)”。
attribute.names (Array(String)) — 由字典提供的属性名数组。
attribute.types (Array(String)) — 由字典提供的对应属性类型数组。
bytes_allocated (UInt64) — 分配给字典的内存数量。
query_count (UInt64) — 自词典加载或上次成功重新启动以来的查询次数。
hit_rate (Float64) — 对于缓存字典,值在缓存中使用的百分比。
element_count (UInt64) — 字典表中数据记录数
load_factor (Float64) — 在字典中填充的百分比(对于散列字典,是在散列表中填充的百分比)。
source (String) — 字典数据源的文本描述。
lifetime_min (UInt64) — 字典在内存中的最小生存期,在此之后,ClickHouse尝试重新加载字典(如果设置了invalidate_query,则仅当它发生变化变)。在几秒钟内设置。
lifetime_max (UInt64) — 字典在内存中的最小生存期,在此之后,ClickHouse尝试重新加载字典(如果设置了invalidate_query,则仅当它发生变化变)。在几秒钟内设置。
loading_start_time (DateTime) — 开始加载字典的时间。
last_successful_update_time (DateTime) — 加载或更新字典的时间结束。帮助监控一些外部来源的问题和调查原因。
loading_duration (Float32) — 字典加载的持续时间。
last_exception (String) — 如果无法创建字典,当创建或重新加载字典时发生错误的文本。
system.events
记录关于系统中发生的事件数量的信息。例如,在表中,您可以找到自ClickHouse服务器启动以来处理了多少SELECT查询。
列:
event (String) — 事件名称
value (UInt64) — 事件发生的次数
description (String) — 时间描述
system.functions
记录普通函数和聚合函数信息。
列:
name(String) – 函数名
is_aggregate(UInt8) — 是否是聚合函数
system.graphite_retentions
记录有关参数graphite_rollup的信息,这些参数在带有*GraphiteMergeTree引擎的表中使用。
列:
config_name (String) - graphite_rollup参数名。
regexp (String) - 指标名称的正则表达式。
functio