【clickhouse】clickhouse的系统表

x33g5p2x  于2021-12-05 转载在 ClickHouse  
字(15.5k)|赞(0)|评价(0)|浏览(1042)

1.概述

转载:clickhouse的系统表

在日常使用clickhouse中经常会遇到很多问题,有时候需要去查系统表,但是对于我们来说,大部分的系统表的字段名称都不知道,看到了也不知道啥意思,下面我就整理一下clickhouse系统表的字段注释。

2.系统表

系统表用于实现系统的部分功能,并提供对有关系统如何工作的信息的访问。

不能删除系统表(但可以执行DETACH)。

系统表在磁盘上没有数据或元数据的文件。服务器在启动时创建所有系统表。

系统表是只读的

它们位于 ‘system’ 数据库中。

2.1 system.asynchronous_metrics

记录定期在后台计算的指标。例如,正在使用的RAM数量。
列:

metric (String) — 指标名称
value (Float64) — 指标值

2.2 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将为零 并尝试使用副本。

2.3 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) — 标志,表明列是否在抽样表达式中。

2.4 system.databases

这个表包含一个名为“name”的字符串列——数据库的名称。 每个服务器知道的数据库在表中都会相应的进入表中。 这个系统表用于实现 SHOW DATABASES 查询。

2.5 system.detached_parts

记录关于 MergeTree 表的已卸载分区的信息。reason 列指定了分区卸载的原因。对于用户卸载的分区,原因是空的。可以用 ALTER TABLE ATTACH PARTITION|PART 命令加载这些分区。有关其他列的描述,参考system.parts。如果分区名称无效,某些列的值可能为NULL。可以使用ALTER TABLE DROP DETACHED PART来删除这些分区。

2.6 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) — 如果无法创建字典,当创建或重新加载字典时发生错误的文本。

2. 7 system.events

记录关于系统中发生的事件数量的信息。例如,在表中,您可以找到自ClickHouse服务器启动以来处理了多少SELECT查询。
列:

event (String) — 事件名称
value (UInt64) — 事件发生的次数
description (String) — 时间描述

2.8 system.functions

记录普通函数和聚合函数信息。
列:

name(String) – 函数名
is_aggregate(UInt8) — 是否是聚合函数

2.9 system.graphite_retentions

记录有关参数graphite_rollup的信息,这些参数在带有*GraphiteMergeTree引擎的表中使用。
列:

config_name (String) - graphite_rollup参数名。
regexp (String) - 指标名称的正则表达式。
function (String) - 聚合函数名称。
age (UInt64) - 数据的最小年龄(以秒为单位)。
precision (UInt64) - 如何精确定义数据的年龄(以秒为单位)。
priority (UInt16) - 优先级模式。
is_default (UInt8) - 模式是否为默认模式。
Tables.database (Array(String)) - 使用config_name参数的表的数据库名数组。
Tables.table (Array(String)) - 使用config_name参数的表名数组。

2.10 system.merges

记录有关目前正在处理MergeTree族表的合并和分区变化的信息。
列:

database (String) — 表所在的数据库名称。
table (String) — 表名。
elapsed (Float64) — 从Merge启动后花费的时间(单位秒)
progress (Float64) — 完成工作的百分比,从0到1。
num_parts (UInt64) — 要合并的块的数量。
result_part_name (String) — 合并结果文件名称。
is_mutation (UInt8) - 如果这个过程是分区变化。则是1
total_size_bytes_compressed (UInt64) — 合并块中压缩数据的总大小。
total_size_marks (UInt64) — 合并区分中的标记总数。
bytes_read_uncompressed (UInt64) — 读取的未压缩字节数。
rows_read (UInt64) — 读取的行数。
bytes_written_uncompressed (UInt64) — 写入的未压缩字节数。
rows_written (UInt64) — 写入的行数。

2.11 system.metrics

记录可以立即计算或具有当前值的指标。例如,同时处理的查询数或当前副本延迟。这张表总是最新的。
列:

metric (String) — 指标名称。
value (Int64) — 指标值。
description (String) — 指标描述。

2.12 system.metric_log

记录system.metrics和system.events表中的历史指标值,定期刷新到磁盘。创建/etc/clickhouse-server/config.d/metric_log.xml,写入以下内容开启在system.metric_log采集历史指标。

2.13 system.parts

MergeTree表的片段信息。
列:

partition (String) – 分区的名称。要了解分区是什么,参考ALTER查询的描述。格式:
	YYYYMM 按月自动分区。
	any_string 当手动分区。
name (String) – 数据片段的名称。
active (UInt8) – 指示数据片段是否处于激活状态的标志。如果数据片段是激活的,则在表中可以使用它。否则它是被删除状态。未激活的数据片段在合并后仍然存在。
marks (UInt64) – 标记的数量。要获得数据片段的大概行数,可以用索引粒度乘以标记(通常是8192)(这个提示不适用于自适应粒度)。
rows (UInt64) – 行数。
bytes_on_disk (UInt64) – 所有数据片段文件的总大小,单位字节。
data_compressed_bytes (UInt64) – 数据片段占用压缩数据的总大小。所有的附属文件不包括在内(例如,标记文件)。
data_uncompressed_bytes (UInt64) – 数据片段中未压缩数据的总大小。所有的附属文件不包括在内(例如,标记文件)。
marks_bytes (UInt64) – 标记的文件的大小。
modification_time (DateTime) – 修改包含数据片段的目录的时间。这通常对应于创建数据部分的时间。
remove_time (DateTime) – 数据片段变为非激活状态的时间。
refcount (UInt32) – 使用数据片段的位置数量。大于2的值表示数据部分用于查询或合并。
min_date (Date) – 数据片段中日期键的最小值。
max_date (Date) – 数据片段中日期键的最大值。
min_time (DateTime) – 数据片段中日期和时间键的最小值。
max_time(DateTime) – 数据片段中日期和时间键的最小值。
partition_id (String) – 分区的ID。
min_block_number (UInt64) – 合并后组成当前片段的最小数据块编号。
max_block_number (UInt64) – 合并后组成当前片段的最大数据块编号。
level (UInt32) – 合并树的深度。零意味着当前片段是通过插入创建的,而不是通过合并其他片段创建的。
data_version (UInt64) – 用于确定应用于数据片段变化的数字(变化版本高于data_version)。
primary_key_bytes_in_memory (UInt64) – 主键值使用的内存量(以字节为单位)。
primary_key_bytes_in_memory_allocated (UInt64) – 为主键值保留的内存量(以字节为单位)。
is_frozen (UInt8) – 表明存在分区数据备份的标志。1、备份存在。0,备份不存在。更多详细信息,请参考FREEZE PARTITION
database (String) – 数据库名称
table (String) – 表名
engine (String) – 表引擎,没有参数。
path (String) – 数据片段文件的文件夹绝对路径。
disk (String) – 存储数据部分的磁盘的名称。
hash_of_all_files (String) – sipHash128压缩文件。
hash_of_uncompressed_files (String) – sipHash128的未压缩文件(带有标记文件、索引文件等)。
uncompressed_hash_of_compressed_files (String) – sipHash128压缩文件中的数据,就好像它们是未压缩的一样。
bytes (UInt64) – bytes_on_disk别名。
marks_size (UInt64) – marks_bytes别名。

2.14 system.part_log

system.part_log表只有在指定part_log服务器设置时才会创建
此表包含关于MergeTree family表中数据片段发生的事件的信息,例如添加或合并数据。
列:

event_type (Enum) — 数据片段发生的事件的类型。可以是以下值之一:
	NEW_PART — 插入新的数据片段。
	MERGE_PARTS — 合并数据片段。
	DOWNLOAD_PART — 下载数据片段。
	REMOVE_PART — 使用DETACH PARTITION删除或者卸载数据片段。
	MUTATE_PART — 数据片段变化。
	MOVE_PART — 将数据片段从一个磁盘移动到另一个磁盘。
event_date (Date) — 事件日期
event_time (DateTime) — 事件时间
duration_ms (UInt64) — 持续时间。
database (String) — 数据片段所在数据库名称
table (String) — 数据片段所属表名称
part_name (String) — 数据片段名称
partition_id (String) — 数据片段插入的分区的ID。如果分区是通过tuple()进行的,则列接受'all'值。
rows (UInt64) — 数据片段的行数
size_in_bytes (UInt64) — 数据片段的大小,单位为字节
merged_from (Array(String)) — 组成当前片段(合并后)的名称数组。
bytes_uncompressed (UInt64) — 未压缩大小,单位为字节
read_rows (UInt64) — 合并期间读取的行数。
read_bytes (UInt64) — 合并期间读取的字节。
error (UInt16) — 发生错误的代码号。
exception (String) — 发生错误的文本消息。

2.15 system.processes

这个系统表用于实现SHOW PROCESSLIST查询。
列:

user (String) – 发起查询的用户。请记住,对于分布式处理,查询是在default用户下发送到远程服务器的。字段包含指定查询的用户名,而不是此查询发起的查询的用户名。
address (String) – 请求发起的IP地址。分布式处理也是如此。要跟踪分布式查询最初是从哪里发出的,请查看system.processes查询请求者服务器上的进程。
elapsed (Float64) – 请求执行开始后的时间(以秒为单位)。
rows_read (UInt64) – 从表中读取的行数。对于分布式处理,在请求者服务器上是所有远程服务器的总和。
bytes_read (UInt64) – 从表中读取的未压缩字节数。对于分布式处理,在请求者服务器上是所有远程服务器的总和。
total_rows_approx (UInt64) – 应该读取的行总数的近似值。对于分布式处理,在请求者服务器上是所有远程服务器的总和。可以在请求处理期间更新,当需要处理的新数据源变得已知时。
memory_usage (UInt64) – 请求使用的RAM数量。可能不包括某些类型的专用内存。参考max_memory_usage设置。
query (String) – 查询文本。对于INSERT,不包含要插入的数据。
query_id (String) – 查询ID(如果已定义)。

2.16 system.text_log

日志记录。日志级别将进入这个表,可以在可以在服务器设置text_log.level限制。
列:

event_date (Date) - 记录的日期。
event_time (DateTime) - 记录的时间。
microseconds (UInt32) - 记录的微秒。
thread_name (String) — 执行日志记录的线程的名称。
thread_id (UInt64) — 操作系统线程ID。
level (Enum8) - 记录级别。
	‘Fatal’ = 1
	‘Critical’ = 2
	‘Error’ = 3
	‘Warning’ = 4
	‘Notice’ = 5
	‘Information’ = 6
	‘Debug’ = 7
	‘Trace’ = 8
query_id (String) - 查询ID。
logger_name (LowCardinality(String)) - 日志记录器的名称(即DDLWorker)
message (String) - 消息本身。
revision (UInt32) - ClickHouse 修改。
source_file (LowCardinality(String)) - 完成日志记录的源文件。
source_line (UInt64) - 完成日志记录的源行。

2.17 system.query_log

查询执行的信息。对于每个查询,可以查看开始处理时间,处理持续时间,错误信息以及其他信息。
ClickHouse只在指定query_log服务器参数的情况下创建这个表。这个参数设置日志记录规则,如记录时间间隔或将登录查询的表的名称。

启用查询日志记录,请将log_queries参数设置为1。

2.18 system.query_thread_log

该表记录关于每个查询执行线程的信息。
ClickHouse只在指定query_thread_log服务器参数的情况下创建这个表。此参数设置日志记录规则,如记录时间间隔或将登录查询的表的名称。

要启用查询日志记录,请将log_query_threads参数设置为1。
列:

event_date (Date) — 线程完成查询执行的日期。
event_time (DateTime) — 线程完成查询执行的日期和时间。
query_start_time (DateTime) — 查询执行的开始时间。
query_duration_ms (UInt64) — 查询执行的持续时间。
read_rows (UInt64) — 读取行数。
read_bytes (UInt64) — 读取字节数。
written_rows (UInt64) — 对于插入查询,写入的行数。对于其他查询列值为0。
written_bytes (UInt64) — 对于插入查询,写入的字节数。对于其他查询,值为0。
memory_usage (Int64) — 在此线程上下文中分配和释放的内存数量之间的差异。
peak_memory_usage (Int64) — 在此线程上下文中分配和释放的内存数量之间的最大差异。
thread_name (String) — 线程的名称。
thread_number (UInt32) — 内部线程ID。
os_thread_id (Int32) — 操作系统线程ID。
master_thread_id (UInt64) — OS初始线程的初始ID。
query (String) — 查询字符串。
is_initial_query (UInt8) — 查询类型。可能的取值:
	1 — 查询由客户端发起。
	0 — 查询由另一个查询发起,用于分布式查询执行。
user (String) — 发起当前查询的用户的名称。
query_id (String) — 查询ID。
address (IPv6) — 发起查询的IP地址。
port (UInt16) — 发起行查询的客户端端口。
initial_user (String) — 运行初始查询的用户名(用于分布式查询执行)。
initial_query_id (String) — 初始查询的ID(用于分布式查询执行)。
initial_address (IPv6) — 启动父查询的IP地址。
initial_port (UInt16) — 发起父查询的客户端端口。
interface (UInt8) — 发起查询的接口。可能的取值:
	1 — TCP.
	2 — HTTP.
os_user (String) — 运行clickhouse-client的操作系统的用户名。 client_hostname (String) — 运行clickhouse-client或另一个TCP客户端的客户端机器的主机名。
client_name (String) — clickhouse-client或另一个TCP客户端名称。
client_revision (UInt32) — clickhouse-client或另一个TCP客户端的修订版。
client_version_major (UInt32) — lickhouse-client或另一个TCP客户端的主要版本。
client_version_minor (UInt32) — lickhouse-client或另一个TCP客户端的小版本。
client_version_patch (UInt32) — clickhouse-client或另一个TCP客户端版本的补丁组件。
http_method (UInt8) — 发起查询的HTTP方法。可能的取值:
	0 — 查询是从TCP接口启动的。
	1 — 使用GET方法。
	2 — 采用POST方法。
http_user_agent (String) —在HTTP请求中传递的UserAgent请求头。
quota_key (String) — 配额设置中指定的配额键。
revision (UInt32) — ClickHouse 修订版。
thread_numbers (Array(UInt32)) — 参与查询执行的线程数。
ProfileEvents.Names (Array(String)) — 测量不同指标的机器数。它们的描述可以在system.events表中找到
ProfileEvents.Values (Array(UInt64)) — 在ProfileEvents.Names 列中列出的指标值。

默认情况下,每隔7.5秒向表添加一次日志。可以在query_thread_log服务器设置中设置这个时间间隔(参考flush_interval_milliseconds参数)。要将日志从内存缓冲区强制刷新到表中,可以使用系统刷新日志查询。

当手动删除表时,将动态地自动创建该表。注意,所有以前的日志都将被删除。

2.19 system.trace_log

记录由抽样查询分析器收集的堆栈调用信息。

ClickHouse只有在trace_log服务器配置配置部分设置时才会创建这个表。还应该设置query_profiler_real_time__nsquery_profiler_cpu_time__ns配置。

要分析日志,请使用addressToLine、addressToSymbol和demangle自检功能。

event_date (Date) — 采样时刻的日期。
event_time (DateTime) — 采样时刻的时间戳。
timestamp_ns (UInt64) — 采样时刻的时间戳纳秒。
revision (UInt32) — ClickHouse服务器构建修订版。
timer_type (Enum8) — 时间类型:
	Real 表示时钟时间。
	CPU 表示CPU时间。
thread_number (UInt32) — 线程标识符。
query_id (String) — 查询标识符,可用于获取从query_log系统表查询运行的详细信息。
trace (Array(UInt64)) — 抽样时间的堆栈调用跟踪。 每个元素都是ClickHouse服务器进程中的一个虚拟内存地址。

2.20 system.replicas

记录驻留在本地服务器上的副本表的信息和状态。
列:

database (String) - 数据库名称
table (String) - 表名
engine (String) - 表引擎名
is_leader (UInt8) - 副本是否是leader。
每次只能有一个副本成为leader。leader负责选择后台合并执行。注意,可以对ZK中可用且具有会话的任何副本执行写操作,无论它是否是leader。

can_become_leader (UInt8) - 副本是否可以被选举为leader。
is_readonly (UInt8) - 副本是否是read-only只读模式。
如果配置没有带有ZooKeeper的配置部分,或者如果在ZooKeeper中重新初始会话或在重新初始会话期间发生未知错误,则将打开此模式。

is_session_expired (UInt8) - ZooKeeper的会话是否已经过期。基本上与is_readonly相同。
future_parts (UInt32) - 由于尚未完成的插入或合并而出现的数据片段的数量。
parts_to_check (UInt32) - 队列中用于验证的数据片段的数量。如果怀疑某个片段可能被损坏,则将其放入验证队列中。
zookeeper_path (String) - ZooKeeper中表数据库的路径
replica_name (String) - ZooKeeper中副本名称。同一表的不同副本具有不同的名称。
replica_path (String) - ZooKeeper中副本数据的路径。和连接‘zookeeper_path/replicas/replica_path’相同。
columns_version (Int32) - 表结构的版本号。指示执行了多少次ALTER。如果副本有不同的版本,这意味着有些副本还没有完成所有的ALTER。
queue_size (UInt32) - 等待执行的操作的队列大小。操作包括插入数据块、合并和某些其他操作。它通常与未来的部分一致。
inserts_in_queue (UInt32) - 队列中等待插入的数据块的数量。插入通常可以很快地复制。如果这个数字很大,就意味着出了问题。
merges_in_queue (UInt32) - 队列中等待进行的合并的数量。有时候合并是很长的,所以这个值可能会在很长一段时间内大于零。
part_mutations_in_queue (UInt32) - 队列中等待修改的数据片段数量
queue_oldest_time (DateTime) - 如果queue_size大于0,则显示何时将最后的操作添加到队列中。
inserts_oldest_time (DateTime) - 参考queue_oldest_time
merges_oldest_time (DateTime) - 参考queue_oldest_time
part_mutations_oldest_time (DateTime) - 参考queue_oldest_time
接下来的4列只有在使用ZK的活跃会话时才具有非零值。

log_max_index (UInt64) - 常规活动日志中的最大条目数。
log_pointer (UInt64) - 副本复制到其执行队列的一般活动日志中的最大条目数,加1。如果log_pointer比log_max_index小得多,就说明出了问题。
last_queue_update (DateTime) - 上次更新队列的时间。
absolute_delay (UInt64) - 当前副本有多大的秒延迟。
total_replicas (UInt8) - 此表的已知副本的总数。
active_replicas (UInt8) - 在ZooKeeper中具有会话的此表的副本的数量(即,函数副本的数量)。

如果请求所有列,那么该表的工作可能会有点慢,因为每一行都需要从ZooKeeper进行多次读取。
如果没有请求最后4列(log_max_index、log_pointer、total_replicas、active_replicas),那么该表可以快速工作。

2.21 system.settings

记录有关当前用户会话设置的信息。
列:

name (String) — 设置项名称。
value (String) — 设置的值。
changed (UInt8) — 显示设置是否从其默认值更改。
description (String) — 设置项的简单描述。
min (Nullable(String)) — 设置的最小值,如果通过约束设置的话。如果设置没有最小值,则为NULL。
max (Nullable(String)) — 设置的最小值,如果通过约束设置的话。如果设置没有最小值,则为NULL。
readonly (UInt8) — 显示当前用户是否可以更改设置:
	0 — 当前用户可以更改设置。
	1 — 当前用户无法更改设置。

2.22 system.merge_tree_settings

记录MergeTree表的设置信息。
列:

name (String) — 设置项。
value (String) — 设置值。
description (String) — 设置描述。
type (String) — 设置类型(实现特定的字符串值)。
changed (UInt8) — 设置是在配置中显式定义的还是显式更改的。

2.23 system.table_engines

记录服务器支持的表引擎及其特性支持信息的描述。
列:

name (String) — 表引擎名称
supports_settings (UInt8) — 指示表引擎是否支持设置的标志。
supports_skipping_indices (UInt8) — 指示表引擎是否支持跳越索引的标志。
supports_ttl (UInt8) — 指示表引擎是否支持TTL的标志。
supports_sort_order (UInt8) — 指示表引擎是否支持PARTITION_BY、PRIMARY_KEY、ORDER_BY和SAMPLE_BY的标志。
supports_replication (UInt8) — 指示表引擎是否支持数据复制的标志。
supports_duduplication (UInt8) — 指示表引擎是否支持数据重复数据删除的标志。

2.24 system.tables

记录服务器已知的每个表的元数据。卸载的表不在system.tables中显示。
列:

database (String) — 表所在的数据库的名称。
name (String) — 表名。
engine (String) — 表引擎名称(没有参数)。
is_temporary (UInt8) - 指示表是否是临时的标志。
data_path (String) - 文件系统中表数据的路径。
metadata_path (String) - 文件系统中表元数据的路径。
metadata_modification_time (DateTime) - 表元数据的最新修改时间。
dependencies_database (Array(String)) - 数据库的依赖关系。
dependencies_table (Array(String)) - 表依赖关系(MaterializedView表基于当前表)
create_table_query (String) - 创建表的查询语句。
engine_full (String) - 表引擎的参数。
partition_key (String) - 表中指定的分区键表达式。
sorting_key (String) - 表中指定的排序键表达式。
primary_key (String) - 表中指定的主键表达式。
sampling_key (String) - 表中指定的抽样键表达式。
storage_policy (String) - 存储策略:
	MergeTree
	Distributed
total_rows (Nullable(UInt64)) - 总行数,如果能够快速确定表中的准确行数,则为Null(包括下面的Buffer表)。
total_bytes (Nullable(UInt64)) - 如果能够快速确定存储上的表的确切字节数,则为总字节数,否则为Null(不包括任何底层存储)。
	如果表将数据存储在磁盘上,则返回磁盘上使用的空间(即压缩空间)。
	如果表在内存中存储数据,则返回内存中使用的近似字节数。

show tables就是用这个表来实现查询的。

2.25 system.zookeeper

如果不配置ZooKeeper,则该表不存在。允许从配置中定义的ZooKeeper集群读取数据。

查询必须在WHERE子句中有一个“path”等于条件。ZooKeeper中需要获取数据的路径的子节点。

查询SELECT * FROM system.zookeeper WHERE path = '/clickhouse’输出/clickhouse节点上所有子节点的数据。

要输出所有根节点的数据,写path = ‘/’。

如果在“path”中指定的路径不存在,将抛出异常。
列:

name (String) — 节点名称。
path (String) — 节点的路径。
value (String) — 节点的值。
dataLength (Int32) — 值的大小。
numChildren (Int32) — 子节点的数量。
czxid (Int64) — 创建节点的事务的ID。
mzxid (Int64) — 最后更改节点的事务的ID。
pzxid (Int64) — 最后删除或添加子节点的事务的ID。
ctime (DateTime) — 节点创建时间。
mtime (DateTime) — 节点最后一次修改的时间。
version (Int32) — 节点版本:节点被更改的次数。
cversion (Int32) — 添加或删除子节点的数量。
aversion (Int32) — ACL的更改次数。
ephemeralOwner (Int64) — 对于临时节点,拥有此节点的会话的ID。

2.26 system.mutations

该表记录有关MergeTree表的变化及其处理信息。每个变化命令都用一行表示。
列:

database - 该次变化数据库的名称
table - 该次变化表的名称。
mutation_id - 变化的ID。对于副本集的表,这些id对应于ZooKeeper中的<table_path_in_zookeeper>/mutations/目录中的znode名称。对于没有副本的表,id对应于表的数据目录中的文件名。
command - 命令字符串(ALTER TABLE [db.] TABLE后的查询部分)。
create_time - 当提交执行此变化命令的时间。
block_numbers.partition_id, block_numbers.number - 一个嵌套列。对于副本表的变化,它为每个分区包含一条记录:由变化 获得的分区ID和数据块编号(在每个分区中,只有包含小于该分区中由变化获得的块号的块的数据片段才会发生变化)。在非复制表中,所有分区中的数据块编号形成一个序列。这意味着对于非复制表的变化,列将包含一条记录,该记录具有变化所获得的单个块号。
parts_to_do - 需要为完成变化而进行突变的数据变化的数量。
is_done - 变化自行完成了吗?注意,即使parts_to_do = 0,由于长时间运行的插入操作将创建需要进行修改的新的新数据片段,复制表的修改仍然有可能没有完成。
latest_failed_part - 最近不能修改的数据片段的名称。
latest_fail_time - 最新数据片段修改失败的时间。
latest_fail_reason - 导致最近的数据片段修改失败的异常消息。

2.27 system.disks

记录有关服务器配置中定义的磁盘的信息。
列:

name (String) — 服务器配置中磁盘的名称。
path (String) — 指向文件系统中的挂载点的路径。
free_space (UInt64) — 磁盘上的空闲空间(以字节为单位)。
total_space (UInt64) — 磁盘容量(以字节为单位)。
keep_free_space (UInt64) — 以字节为单位在磁盘上保持空闲的磁盘空间量。在磁盘配置的keep_free_space_bytes参数中定义。

2.28 system.storage_policies

记录有关服务器配置中定义的存储策略和卷的信息。
列:

policy_name (String) — 存储策略的名称。
volume_name (String) — 在存储策略中定义的卷名。
volume_priority (UInt64) — 配置中的卷顺序编号。
disks (Array(String)) — 磁盘名称,在存储策略中定义。
max_data_part_size (UInt64) — 可以存储在卷磁盘上的数据片段的最大大小(0 -无限)。
move_factor (Float64) — 空闲磁盘空间的比率。当比率超过配置参数值时,ClickHouse开始按顺序将数据移动到下一个卷。

相关文章