1. disks(磁盘信息表)
记录有关服务器配置中定义的磁盘的信息。
name | type | comment |
---|---|---|
name | String | 磁盘名称 |
path | String | 指向文件系统中的挂载点路径 |
free_space | UInt64 | 空闲空间 |
total_space | UInt64 | 磁盘容量 |
keep_free_space | UInt64 | 保持空闲空间, keep_free_space_bytes参数中定义 |
type | String | 磁盘类型 |
2. Clusters(集群信息)
name | type | comment |
---|---|---|
cluster | String | 群集名称 |
shard_num | UInt32 | 集群中的分片编号,从1开始 |
shard_weight | UInt32 | 写入数据时分片的相对权重,1 |
replica_num | UInt32 | 分片中的副本号,从1开始 |
host_name | String | 主机名,在config中指定 |
host_address | String | 从DNS获取的主机IP地址 |
port | UInt16 | 用于连接服务器的端口,9000 |
is_local | UInt8 | 是不是当前所在机器,1 |
user | String | 用于连接服务器的用户的名称,默认default |
default_database | String | 默认数据库 |
errors_count | UInt32 | 异常次数 每个查询集群更新一次,但 estimated_recovery_time 按需重新计算。 所以有可能有这样的情况: 非零 errors_count 和零 estimated_recovery_time, 如果它没有错误,下一个查询 errors_count将为零 并尝试使用副本。 |
slowdowns_count | UInt32 | 慢查询次数 |
estimated_recovery_time | UInt32 | 副本错误计数归零的秒数 |
3. databases(数据库列表)
列出CK中所有库的名字,引擎, 数据存储路径,元数据路径
name | type | comment |
---|---|---|
name | String | 数据库名称 |
engine | String | 数据库引擎 |
data_path | String | 数据库地址 |
metadata_path | String | 元数据地址 |
uuid | UUID | UUID |
4. tables(数据表列表)
记录服务器已知的每个表的元数据。卸载的表不在system.tables中显示。
show tables就是用这个表来实现查询的
name | type | comment |
---|---|---|
database | String | 数据库 |
name | String | 数据表 |
uuid | UUID | UUID |
engine | String | 表引擎名称 |
is_temporary | UInt8 | 是否是临时表 |
data_paths | Array(String) | 表数据路径地址 |
metadata_path | String | 元数据路径 |
metadata_modification_time | DateTime | 表元数据的最新修改时间 |
dependencies_database | Array(String) | 数据库的依赖关系 |
dependencies_table | Array(String) | 表依赖关系(物理表基于当前表) |
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(不包括任何底层存储) |
lifetime_rows | Nullable(UInt64) | |
lifetime_bytes | Nullable(UInt64) |
5. table_engines(表引擎表)
记录服务器支持的表引擎及其特性支持信息的描述。
name | type | comment |
---|---|---|
name | String | 表引擎名称 |
supports_settings | UInt8 | 指示表引擎是否支持设置的标志 |
supports_skipping_indices | UInt8 | 指示表引擎是否支持跳越索引的标志 |
supports_sort_order | UInt8 | 指示表引擎是否支持 PARTITION_BY、PRIMARY_KEY、ORDER_BY和SAMPLE_BY的标志 |
supports_ttl | UInt8 | 指示表引擎是否支持TTL的标志 |
supports_replication | UInt8 | 指示表引擎是否支持数据复制的标志 |
supports_deduplication | UInt8 | 指示表引擎是否支持数据重复数据删除的标志 |
supports_parallel_insert | UInt8 | 指示表引擎是否支持并行插入的标志(请参阅 max_insert_threads 设置) |
6. replicas(副本表)
包含驻留在本地服务器上的复制表的信息和状态。
name | type | comment |
---|---|---|
database | String | 数据库 |
table | String | 数据表 |
engine | String | 表引擎 |
is_leader | UInt8 | 是否是 leader, 多副本中只有一个 leader |
can_become_leader | UInt8 | 副本是否可以被选举为 leader |
is_readonly | UInt8 | 副本是否是read-only只读模式 |
is_session_expired | UInt8 | ZooKeeper的会话是否已经过期 |
future_parts | UInt32 | 由于尚未完成的插入或合并而出现的数据片段的数量 |
parts_to_check | UInt32 | 队列中用于验证的数据片段的数量。 如果怀疑某个片段可能被损坏,则将其放入验证队列中 |
zookeeper_path | String | ZooKeeper中表数据库的路径 |
replica_name | String | ZooKeeper中副本名称。 同一表的不同副本具有不同的名称 |
replica_path | String | ZooKeeper中副本数据的路径 |
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 |
oldest_part_to_get | String | |
oldest_part_to_merge_to | String | 旧的分区被合并到哪里 |
oldest_part_to_mutate_to | String | |
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_exception | String |
7. replicated_fetches(副本获取信息)
包含当前正在运行的后台提取的信息
name | type | comment |
---|---|---|
database | String | 数据库的名称 |
table | String | 表的名称 |
elapsed | Float64 | 显示当前正在运行的后台提取自开始以来经过的时间(以秒为单位) |
progress | Float64 | 已完成工作的百分比,从 0 到 1。 |
result_part_name | String | 作为显示当前正在运行的后台提取的结果而形成的部分的名称。 |
result_part_path | String | 作为显示当前正在运行的后台提取的结果而形成的部分的绝对路径 |
partition_id | String | 分区的 ID。 |
total_size_bytes_compressed | UInt64 | 结果部分中压缩数据的总大小(以字节为单位)。 |
bytes_read_compressed | UInt64 | 从结果部分读取的压缩字节数。 |
source_replica_path | String | 源副本的绝对路径。 |
source_replica_hostname | String | 源副本的主机名。 |
source_replica_port | UInt16 | 源副本的端口号。 |
interserver_scheme | String | 服务器间方案的名称。 |
URI | String | URL 地址 |
to_detached | UInt8 | 该标志指示是否正在使用 TO DETACHED 表达式执行当前正在运行的后台提取 |
thread_id | UInt64 | 线程标识符 |
8. replicated_merge_tree_settings(复制表引擎的参数设置)
复制表引擎的参数设置,包含了该参数是否被改变。
name | type | comment |
---|---|---|
name | String | 参数名称 |
value | String | 参数值 |
changed | UInt8 | 是否能被修改 |
description | String | 参数描述 |
type | String | 参数类别 |
9. parts(分区信息)
MergeTree表的片段信息MergeTree表的片段信息
name | type | comment |
---|---|---|
partition | String | 分区名称 |
name | String | 分区目录名称 |
uuid | UUID | UUID |
part_type | String | 分区类型 |
active | UInt8 | 是否是激活状态, 被删除的分区,或经过合并后的分区会是非激活状态 |
marks | UInt64 | 数据标记的数量 |
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 | 使用数据片段的位置数量 |
min_date | Date | 日期键的最小日期 |
max_date | Date | 日期键的最大日期 |
min_time | DateTime | 日期键的最小日期和时间 |
max_time | DateTime | 日期键的最大日期和时间 |
partition_id | String | 分区 ID |
min_block_number | Int64 | 合并后的最小数据块号 |
max_block_number | Int64 | 合并后的最大数据块号 |
level | UInt32 | 合并深度,合并的次数 |
data_version | UInt64 | 用于确定应用于数据判断变化的数字 |
primary_key_bytes_in_memory | UInt64 | 主键值使用的内存量,字节 |
primary_key_bytes_in_memory_allocated | UInt64 | 为主键值保留的内存量,字节 |
is_frozen | UInt8 | 表名存在分区数据备份的标志, 1.备份存在,0 备份不存在 |
database | String | 数据库名 |
table | String | 表名 |
engine | String | 引擎 |
disk_name | String | 磁盘名称 |
path | String | 保存数据的路径的地址 |
hash_of_all_files | String | sipHash128 压缩文件 |
hash_of_uncompressed_files | String | sipHash128 的未压缩文件,带有数据标记,索引文件等 |
uncompressed_hash_of_compressed_files | String | sipHash128 的未压缩文件中的数据 |
delete_ttl_info_min | DateTime | TTL DELETE 规则的日期和时间键的最小值。 |
delete_ttl_info_max | DateTime | TTL DELETE 规则的日期和时间键的最大值。 |
move_ttl_info.expression | Array(String) | 表达式数组。每个表达式定义一个 TTL MOVE 规则 |
move_ttl_info.min | Array(DateTime) | 日期和时间值数组。每个元素都描述了 TTL MOVE 规则的最小键值 |
move_ttl_info.max | Array(DateTime) | 日期和时间值数组。每个元素都描述了 TTL MOVE 规则的最大键值 |
default_compression_codec | String | 默认压缩算法 |
recompression_ttl_info.expression | Array(String) | |
recompression_ttl_info.min | Array(DateTime) | |
recompression_ttl_info.max | Array(DateTime) | |
group_by_ttl_info.expression | Array(String) | |
group_by_ttl_info.min | Array(DateTime) | |
group_by_ttl_info.max | Array(DateTime) | |
rows_where_ttl_info.expression | Array(String) | |
rows_where_ttl_info.min | Array(DateTime) | |
rows_where_ttl_info.max | Array(DateTime) | |
bytes | UInt64 | bytes_on_disk 的别名 |
marks_size | UInt64 | marks_bytes 的别名 |
10. parts_columns(分区表列信息)
包含有关 MergeTree 表的分区和列的信息
name | type | comment |
---|---|---|
partition | String | 分区名称 |
name | String | 分区目录名称 |
part_type | String | 分区类型 |
active | UInt8 | 是否是激活状态, 被删除的分区,或经过合并后的分区会是非激活状态 |
marks | UInt64 | 数据标记的数量 |
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 | 使用数据片段的位置数量 |
min_date | Date | 日期键的最小日期 |
max_date | Date | 日期键的最大日期 |
min_time | DateTime | 日期键的最小日期和时间 |
max_time | DateTime | 日期键的最大日期和时间 |
partition_id | String | 分区 ID |
min_block_number | Int64 | 合并后的最小数据块号 |
max_block_number | Int64 | 合并后的最大数据块号 |
level | UInt32 | 合并深度,合并的次数 |
data_version | UInt64 | 用于确定应用于数据判断变化的数字 |
primary_key_bytes_in_memory | UInt64 | 主键值使用的内存量,字节 |
primary_key_bytes_in_memory_allocated | UInt64 | 为主键值保留的内存量,字节 |
database | String | 数据库名 |
table | String | 表名 |
engine | String | 引擎 |
disk_name | String | 磁盘名称 |
path | String | 保存数据的路径的地址 |
column | String | 列 |
type | String | 类型 |
column_position | UInt64 | 列位置 |
default_kind | String | 默认类型 |
default_expression | String | 默认值表达式 |
column_bytes_on_disk | UInt64 | 列数据大小,字节 |
column_data_compressed_bytes | UInt64 | 列数据压缩后大小,字节 |
column_data_uncompressed_bytes | UInt64 | 列数据未压缩大小,字节 |
column_marks_bytes | UInt64 | 列标记文件字节数 |
bytes | UInt64 | bytes_on_disk 的别名 |
marks_size | UInt64 | marks_bytes 的别名 |
11. columns(列信息)
统计CK中,所有的列及其相关信息
name | type | comment |
---|---|---|
database | String | 数据库名称 |
table | String | 表名 |
name | String | 列名 |
type | String | 字段类型 |
position | UInt64 | 该表中的第几个字段 |
default_kind | String | 默认值类型 |
default_expression | String | 默认值 表达式 |
data_compressed_bytes | UInt64 | 压缩后的数据量 |
data_uncompressed_bytes | UInt64 | 未压缩的数据量 |
marks_bytes | UInt64 | 标记文件大小 |
comment | String | 备注 |
is_in_partition_key | UInt8 | 是否是分区键,是 1,否 0 |
is_in_sorting_key | UInt8 | 是否是排序键,是 1,否 0 |
is_in_primary_key | UInt8 | 是否是主键,是 1,否 0 |
is_in_sampling_key | UInt8 | 是否是采样键,是 1,否 0 |
compression_codec | String | 压缩类型 |
12. row_policies(表过滤策略)
包含一个特定表的过滤器,以及应该使用此行策略的角色和/或用户列表。
name | type | comment |
---|---|---|
name | String | 行策略的名称 |
short_name | String | 行策略的简称。行策略的名称是复合的, 如:myfilter ON mydb.mytable。 “myfilter ON mydb.mytable”是行策略的名称, “myfilter”是它的简称。 |
database | String | 数据库名称 |
table | String | 表名 |
id | UUID | 行策略 ID |
storage | String | 存储行策略的目录的名称 |
select_filter | Nullable(String) | 用于过滤行的条件 |
is_restrictive | UInt8 | 显示行策略是否限制对行的访问,请参阅 CREATE ROW POLICY: 0 — 行策略是用 AS PERMISSIVE 子句定义的。 1 — 行策略是用 AS RESTRICTIVE 子句定义的 |
apply_to_all | UInt8 | 显示为所有角色和/或用户设置的行策略 |
apply_to_list | Array(String) | 应用行策略的角色和/或用户列表 |
apply_to_except | Array(String) | 行策略应用于除列出的角色和/或用户之外的所有角色和/或用户 |
13. storage_policies(存储策略)
记录有关服务器配置中定义的存储策略和卷的信息,
如果存储策略包含多个卷,则每个卷的信息存储在表的单个行中
name | type | comment |
---|---|---|
policy_name | String | 策略名称 |
volume_name | String | 策略中定义的卷名 |
volume_priority | UInt64 | 配置中的卷顺序编号 |
disks | Array(String) | 磁盘名称,在存储策略中定义 |
volume_type | String | |
max_data_part_size | UInt64 | 可以存储在卷磁盘上的数据片段的最大大小(0 -无限) |
move_factor | Float32 | 空闲磁盘空间的比率。当比率超过配置参数值时, ClickHouse开始按顺序将数据移动到下一个卷 |
prefer_not_to_merge | UInt8 | preferred_not_to_merge 设置的值。启用此设置后,不允许合并此卷上的数据。这允许控制 ClickHouse 如何处理慢速磁盘。 如果存储策略包含多个卷,则每个卷的信息都存储在表的单独行中 |
14. graphite_retentions(graphite_rollup的信息)
记录有关参数graphite_rollup的信息,这些参数在带有*GraphiteMergeTree引擎的表中使用。
name | type | comment |
---|---|---|
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 参数的表的数组 |
15. merges(合并树表的变化)
记录有关目前正在处理MergeTree族表的合并和分区变化的信息。
name | type | comment |
---|---|---|
database | String | 数据库 |
table | String | 表 |
elapsed | Float64 | 从 Merge启动花费的时间 |
progress | Float64 | 完成工作的占比,0~1 |
num_parts | UInt64 | 要合并的块数 |
source_part_names | Array(String) | 要合并的文件名称数组 |
source_part_paths | Array(String) | 要合并的文件路径数组 |
result_part_name | String | 合并结果文件名称 |
result_part_path | String | 合并结果路径 |
partition_id | String | 分区号 |
is_mutation | UInt8 | 是否是 mutation 操作 |
total_size_bytes_compressed | UInt64 | 合并块中压缩数据总大小 |
total_size_marks | UInt64 | 合并分区中的标记总数 |
bytes_read_uncompressed | UInt64 | 未压缩数据大小 |
rows_read | UInt64 | 读取的行数 |
bytes_written_uncompressed | UInt64 | 写入的未压缩字节数 |
rows_written | UInt64 | 写入的函数 |
columns_written | UInt64 | 写入的列数 |
memory_usage | UInt64 | 使用内存大小 |
thread_id | UInt64 | 线程 ID |
merge_type | String | 合并类型 |
merge_algorithm | String | 合并算法 |
16. detached_parts(卸载的分区)
记录关于 MergeTree 表的已卸载分区的信息。reason 列指定了分区卸载的原因。对于用户卸载的分区,原因是空的。可以用 ALTER TABLE ATTACH PARTITION|PART 命令加载这些分区。有关其他列的描述,参考system.parts。
如果分区名称无效,某些列的值可能为NULL。可以使用ALTER TABLE DROP DETACHED PART来删除这些分区。
name | type | comment |
---|---|---|
database | String | 数据库 |
table | String | 表名 |
partition_id | Nullable(String) | 分区 ID |
name | String | 分区名称 |
disk | String | 磁盘 |
reason | Nullable(String) | |
min_block_number | Nullable(Int64) | 最小数据块号 |
max_block_number | Nullable(Int64) | 最大数据块号 |
level | Nullable(UInt32) | 合并深度 |
17. dictionaries 数据字典
通过 system.dictionaries 系统表可以查看到扩展字典的元数据信息。
name | type | comment |
---|---|---|
database | String | 所在数据库 |
name | String | 字典名称,在使用字典函数时需要使用字典名称访问数据 |
uuid | UUID | UUID |
status | Enum8( ‘NOT_LOADED’ = 0, ‘LOADED’ = 1, ‘FAILED’ = 2, ‘LOADING’ = 3, ‘FAILED_AND_RELOADING’ = 4, ‘LOADED_AND_RELOADING’ = 5, ‘NOT_EXIST’ = 6 ) |
字典状态 NOT_LOADED Dictionary未加载,由于没有被使用 LOADED 字典加载成功 FAILED 由于错误,无法加载字典 LOADING 字典正在加载中 LOADED_AND_RELOADING 字典加载成功,现在正在重新加载 FAILED_AND_RELOADING 由于错误无法加载字典,现在正在加载 NOT_EXIST 字典不存在 |
origin | String | 描述字典的配置文件的路径 |
type | String | 字典类型 |
key.names | Array(String) | Key 名称 |
key.types | Array(String) | Key 数据类型 |
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 | 生命周期最小时间 |
lifetime_max | UInt64 | 生命周期最大时间 |
loading_start_time | DateTime | 最初加载字典时间 |
last_successful_update_time | DateTime | 最后更新字典时间 |
loading_duration | Float32 | 加载字典消耗时间 |
last_exception | String | 加载字典过程中的异常信息, |