clickhouse system表介绍

Posted 福州司马懿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickhouse system表介绍相关的知识,希望对你有一定的参考价值。

clickhouse 对 system 表的介绍在 https://clickhouse.com/docs/en/operations/system-tables/

aggregate_function_combinators

build_options

存储了clickhouse的编译信息,包括 clickhouse 版本号,编译用的cxx版本等

SELECT *  FROM  system.build_options LIMIT 20

clusters

本机地址

  • localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址。在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 ::1
  • 127.0.0.1是代表自己机器的回路地址,无论是否联网,自己机器都是127.0.0.1
  • 127网段是保留区段,任何ping向保留区段127的都会指向127.0.0.1

域名与IP的映射存放在 /etc/hosts

使用 SELECT * FROM system.clusters 查询可以看到 clickhouse 默认会创建一个测试用的单机集群

默认的集群配置在 /etc/clickhouse-server/config.xml 的 remote_servers 节点里

collations

保存了 “语言代码” 和 “对应的语言(国家/地区)”

SELECT * FROM system.collations 
  ORDER BY name DESC LIMIT 30


拥有超过一个地区编号的语种有8个,分别是:塞尔维亚语、中文、英语、旁遮普族语、波斯尼亚、法语等

SELECT count(name) AS cnt, language FROM system.collations 
  GROUP BY language 
  HAVING cnt > 1 
  ORDER BY cnt DESC


地区编码总计132个,语言总共107个

SELECT count(name), count(DISTINCT language) FROM system.collations
SELECT count(name), uniqExact(language) FROM system.collations
SELECT count(name), uniq(language) FROM system.collations

columns

用来存储表中所有的列的相关信息(列名,类型,注释,是否分区键,是否排序键,是否主键,是否取样键)

SELECT database,table,position,name,type,comment,
	is_in_partition_key,is_in_sorting_key,is_in_primary_key,is_in_sampling_key
	FROM system.columns
	WHERE database = 'system'
	ORDER BY database ASC,table ASC,position ASC
	LIMIT 50;

contributors

存储了所有贡献者的名字

data_type_families

存储 clickhouse 中可用的数据类型


databases

SHOW DATABASES 可以查看有多少个数据库
SELECT * FROM system.databases 不仅可以看到有多少数据库,还可以查看它们的存储路径

disks

记录 clickhouse 数据存储的目录,以及该分区“可用空间大小“及”总大小“

errors

这是用 dbeaver 查询的表结构

errors 表用来存储 clickhouse 启动以来发生过的所有错误信息

events

用来存储系统中发生的事件数的信息(event 是事件名,value 是事件自clickhouse启动以来,总共发生的次数)

formats

存储 clickhouse 中支持导入导出的数据格式/类型

functions

存储 clickhouse 中可用的函数

例如:

  • argMax(name,version) 在Group的时候,返回version最大的那行的name列
  • rowNumberInAllBlocks 用来获取当前行号(从0开始)

licenses

位于 ClickHouse 源的 contrib 目录中的第三方库的许可证

  • library_name (String) — 库的名称, 它是与之连接的许可证
  • license_type (String) — 许可类型-例如Apache, MIT
  • license_path (String) — 带有许可文本的文件的路径
  • license_text (String) — 许可协议文本

merge_tree_settings

建表语句最后 SETTINGS 配置中可用带的参数

metrics

numbers

存储了从0开始递增到无穷的所有整数

WITH 10 AS n
SELECT * FROM numbers(n);

-- 等价于 
WITH 10 AS n
SELECT * FROM system.numbers LIMIT n;

numbers_mt

存储了从0开始递增到无穷的所有整数

one

固定存储一个0

part_log

parts

parts_columns

privileges

query_log

query_thread_log

replicated_merge_tree_settings

session_log

settings

table_engines

table_functions

tables

使用 USE <database> 可以切换当前数据库
使用 SHOW TABLES 可以查看当前数据库下有哪些表,可以加 WHERE 或者 LIMIT关键字进行筛选

使用 LIKE 谓词,可以仅查看匹配的表名

使用 SHOW CREATE TABLE <tableName> 可以查看建表语句

对于 system 数据库下的表,可能无法使用 SHOW CREATE TABLE <tableName> 查看建表语句

此时,我们可以使用 desc <tableName> 来查看表中的各个字段信息
tables表的常用字段如下

  • name 也是table字段的别名,指代数据表名
  • uuid 是建表时随机生成的 8-4-4-12字符串编码
  • is_temporary 用来指示是否是临时表
  • data_paths 是数据位置(文件夹名字和uuid一样)
  • metadata_path 是存放元数据的sql文件路径
  • metadata_modifucation_time 会记录每次修改元数据表的时间
  • create_table_query 存储建表语句
  • engine 指的是表引擎
  • engine_full 包括表引擎之后的参数(比如 ORDER BY、SETTINGS 等)
  • partition_key 分区键
  • sorting_key 排序键
  • primary_key 主键
  • sampling_key 采样键
  • storage_policy 存储策略
  • total_rows 总行数
  • total_bytes 表大小
  • comment 表注释

time_zones

ClickHouse 服务器支持的时区列表

时区可以在 /etc/clickhouse-server/config.xml 文件中的 timezone 字段里进行配置。如果不配置,默认采用系统时区

user_directories

用户目录

  • /etc/clickhouse-server/users.xml 是用户自定义配置文件
  • /var/lib/clickhouse/access 下面是5个空的列表文件

zeros

存储了无数多个0

zeros_mt

存储了无数多个0

以上是关于clickhouse system表介绍的主要内容,如果未能解决你的问题,请参考以下文章

在 ClickHouse 中重命名表时究竟会发生啥?

大数据ClickHouse元数据

大数据ClickHouse元数据

未设置 system.query_log 的 TTL (clickhouse)

ClickHouse创建分布式表

ClickHouse创建分布式表