clickhouse的系统表

本文详细介绍了ClickHouse的系统表,包括asynchronous_metrics、clusters、columns等,涵盖了系统表的功能、用途和各表中的关键列信息,帮助用户理解和查询ClickHouse的运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在日常使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值