Clickhouse自带系统库system,启动时创建系统表,无数据文件,主要用于记录Clickhouse的系统信息和状态指标。

1.query_log

作用:ClickHouse开启慢sql查询
开启方法:
打开各个ClickHouse实例的users.xml文件,在默认配置最上层profile(如default)中加入:

<log_queries>1</log_queries>service clickhouse-server restart
    注意:如添加该参数之后表不自动创建,需要重启clickhouse-server服务。检查每个节点ch中config.xml文件里默认的日志配置是否开启
<!-- Query log. Used only for queries with setting log_queries = 1. -->
<query_log><!-- What table to insert data. If table is not exist, it will be created.When query log structure is changed after system update,then old table will be renamed and new table will be created automatically.--><database>system</database><table>query_log</table><!--PARTITION BY expr https://clickhouse.yandex/docs/en/table_engines/custom_partitioning_key/Example:event_datetoMonday(event_date)toYYYYMM(event_date)toStartOfHour(event_time)--><partition_by>toYYYYMM(event_date)</partition_by><!-- Interval of flushing data. --><flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>

查询:

select * from system.query_log limit 1\GRow 1:
──────
type:                 QueryStart
event_date:           2021-04-07
event_time:           2021-04-07 09:19:17
query_start_time:     2021-04-07 09:19:17
query_duration_ms:    0
read_rows:            0
read_bytes:           0
written_rows:         0
written_bytes:        0
result_rows:          0
result_bytes:         0
memory_usage:         0
query:                SELECT * FROM system.query_log
exception:
stack_trace:
is_initial_query:     1
user:                 default
query_id:             61720a95-c6d4-43d1-bbbc-4c4f9de1ca54
address:              ::ffff:127.0.0.1
port:                 5404
initial_user:         default
initial_query_id:     61720a95-c6d4-43d1-bbbc-4c4f9de1ca54
initial_address:      ::ffff:127.0.0.1
initial_port:         5404
interface:            1
os_user:              root
client_hostname:      worker1
client_name:          ClickHouse client
client_revision:      54432
client_version_major: 20
client_version_minor: 2
client_version_patch: 1
http_method:          0
http_user_agent:
quota_key:
revision:             54432
thread_numbers:       []
os_thread_ids:        []
ProfileEvents.Names:  []
ProfileEvents.Values: []
Settings.Names:       ['use_uncompressed_cache','load_balancing','log_queries','max_memory_usage']
Settings.Values:      ['0','random','1','10000000000']

列:

type (Enum8)     :执行查询时发生的事件的类型QueryStart’ = 1                        查询执行开始QueryFinish’ = 2                      查询执行成功
event_date (Date)                    查询开始日期
event_time (DateTime)            查询开始日期
query_start_time (DateTime)   查询执行的开始时间。
query_duration_ms (UInt64)    查询执行的持续时间(毫秒)
read_rows (UInt64)                 参与查询的所有表和表函数中读取的总数或行数。包括常用的子查,IN和JOIN的子查询。对于分布式查询,read_rows包括在所有副本上读取的行总数。每个副本发送它的read_rows值,查询的服务器启动器汇总所有接收到的值和本地值。缓存卷不会影响这个值。
read_bytes (UInt64)                 参与查询的所有表和表函数中读取的总数或行数。包括常用的子查,IN和JOIN的子查询。对于分布式查询,read_rows包括在所有副本上读取的行总数。每个副本发送它的read_rows值,查询的服务器启动器汇总所有接收到的值和本地值。缓存卷不会影响这个值。
written_rows (UInt64)             对于插入查询,表示写入的行数。对于其他查询,列值为0
written_bytes (UInt64)             对于插入查询,表示写入的字节数。对于其他查询,列值为0。
result_rows (UInt64)                选择查询结果中的行数,或插入查询中的行数
result_bytes (UInt64)                用于存储查询结果的RAM(字节)容量。
memory_usage (UInt64)           查询所消耗的内存。
query (String)                            查询语句
exception (String)                     异常输出
stack_trace (String)                   堆栈跟踪。如果查询成功完成,则为空字符串
is_initial_query (UInt8)              查询类型
1         客户端发起的查询
0         查询是作为分布式查询执行的一部分由另一个查询发起的
user (String)                             当前查询的用户名
query_id (String)                       查询编号
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)         Clickhouse-client或其他TCP客户端的主要版本。
client_version_minor (UInt32)        Clickhouse-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 revision
thread_numbers (Array(UInt32))           参与查询执行的线程数
ProfileEvents.Names (Array(String))      衡量不同指标的计数器
ProfileEvents.Values (Array(UInt64))     ProfileEvents中列出的度量值
Settings.Names (Array(String))             客户端运行查询时更改的设置名称。要启用对设置的日志更改,将log_query_settings参数设置为1
Settings.Values (Array(String))              设置中列出的设置值

备注:partition_by表示查询日志表的分区列,语法与普通建表时相同,默认按月分区。flush_interval_milliseconds则表示日志刷入表中的周期,默认7.5秒,可以根据取数时效自己调节

注意事项:
需在每个节点users.xml配置文件添加该参数,并重启server服务
外部查询需要创建分布式表,以便统计所用节点的查询日志
CREATE TABLE IF NOT EXISTS system.query_log_all
ON CLUSTER sht_ck_cluster_pro
AS system.query_log
ENGINE = Distributed(sht_ck_cluster_pro,system,query_log,rand());
该日志表没有自动过期功能,为了防止历史日志数据占用大量磁盘空间,可以手动为每张query_log表设定TTL(这边根据需求设置默认为15天)
ALTER TABLE system.query_log MODIFY TTL event_date + INTERVAL 15 DAY;

2.clusters

metrika.xml 配置文件中配置的集群副本、分片等信息。

SELECT * FROM system.clusters LIMIT 2 FORMAT Vertical;SELECT *
FROM system.clusters
LIMIT 2
FORMAT VerticalRow 1:
──────
cluster:                 test_cluster_two_shards
shard_num:               1
shard_weight:            1
replica_num:             1
host_name:               127.0.0.1
host_address:            127.0.0.1
port:                    9000
is_local:                1
user:                    default
default_database:
errors_count:            0
estimated_recovery_time: 0Row 2:
──────
cluster:                 test_cluster_two_shards
shard_num:               2
shard_weight:            1
replica_num:             1
host_name:               127.0.0.2
host_address:            127.0.0.2
port:                    9000
is_local:                0
user:                    default
default_database:
errors_count:            0
estimated_recovery_time: 02 rows in set. Elapsed: 0.002 sec.

列:

cluster (字符串)                        群集名称
shard_num (UInt32)                 集群中的分片号,从1开始
shard_weight (UInt32)              写入数据时分片的权重
replica_num (UInt32)                分片中的副本号,从1开始
host_name (字符串)                    主机名,在配置中指定
host_address (字符串)              从DNS获得的主机IP地址
port (UInt16)                            用于连接到服务器的端口
user (字符串)                            用于连接到服务器的用户名
errors_count (UInt32)               该主机无法访问副本的次数
estimated_recovery_time (UInt32)        距副本错误计数为零为止还剩几秒,它被认为恢复了正常
    请注意,errors_count对集群的每个查询都会更新一次,但是estimated_recovery_time会按需重新计算。因此,可能存在非零errors_count和零的情况estimated_recovery_time,下一个查询将为零,errors_count并尝试使用副本,就好像它没有错误一样。

3.columns

类似查询DESCRIBE TABLE的信息,但是一次可以获取多个表。

select * from system.columns LIMIT 2,1 FORMAT Vertical;Row 1:
──────
database:                default
table:                   .inner.trans_log_view
name:                    bankid
type:                    Enum8('微信支付' = 1, '支付宝' = 2, '中国银联' = 3, '中铁银通卡' = 4, '工商银行' = 5, '农业银行' = 6, '中国银行' = 7, '建设银行' = 8, '招商银行' = 9, '邮储银行' = 10, '第三方支付' = 11)
default_kind:
default_expression:
data_compressed_bytes:   141683
data_uncompressed_bytes: 560858
marks_bytes:             1680
comment:
is_in_partition_key:     0
is_in_sorting_key:       1
is_in_primary_key:       1
is_in_sampling_key:      0
compression_codec:       1 rows in set. Elapsed: 0.003 sec.

列:

database(String)                        数据库名称
table(String)                               表名
name(String)                              列名
type(String)                                列类型
position(UInt64)                        以1开头的表中列的顺序位置
default_kind(字符串)                  表达类型(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)                   指示列是否在采样关键字表达式中的标志
compression_codec(String)                  压缩编解码器名称

4.crash_log

堆栈跟踪的致命错误信息。默认情况下,该表在数据库中不存在,仅在发生致命错误时才创建该表。

SELECT * FROM system.crash_log ORDER BY event_time DESC LIMIT 1;(结果不完整)
Row 1:
──────
event_date:   2020-10-14
event_time:   2020-10-14 15:47:40
timestamp_ns: 1602679660271312710
signal:       11
thread_id:    23624
query_id:     428aab7c-8f5c-44e9-9607-d16b44467e69
trace:        [188531193,...]
trace_full:   ['3. DB::(anonymous namespace)::FunctionFormatReadableTimeDelta::executeImpl(std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> >&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, unsigned long, unsigned long) const @ 0xb3cc1f9 in /home/username/work/ClickHouse/build/programs/clickhouse',...]
version:      ClickHouse 20.11.1.1
revision:     54442
build_id:

列:

event_date(Datetime)                   事件的日期
event_time(Datetime)                   事件的时间
timestamp_ns(UInt64)                  事件的时间戳,以纳秒为单位
signal(Int32)                                 信号编号
thread_id(UInt64)                          线程ID
query_id(String)                            查询ID
trace(Array(UInt64))                崩溃时的堆栈跟踪。每个元素都是ClickHouse服务器进程内部的虚拟内存地址
trace_full(Array(String))           崩溃时的堆栈跟踪。每个元素在ClickHouse服务器进程内部都包含一个调用方法
version(String)                              ClickHouse服务器版本
revision(UInt32)                            ClickHouse服务器修订版
build_id(String)                             编译器生成的BuildID

5.data_type_families

支持的数据类型的信息。

SELECT * FROM system.data_type_families WHERE alias_to = 'String'┌─name───────┬─case_insensitive─┬─alias_to─┐
│ LONGBLOB   │                1 │ String   │
│ LONGTEXT   │                1 │ String   │
│ TINYTEXT   │                1 │ String   │
│ TEXT       │                1 │ String   │
│ VARCHAR    │                1 │ String   │
│ MEDIUMBLOB │                1 │ String   │
│ BLOB       │                1 │ String   │
│ TINYBLOB   │                1 │ String   │
│ CHAR       │                1 │ String   │
│ MEDIUMTEXT │                1 │ String   │
└────────────┴──────────────────┴──────────┘

列:

name(String)                    数据类型名称
case_insensitive(UInt8)     此属性显示是否可以在查询中以不区分大小写的方式使用数据类型名称。例如,Date和date都有效
alias_to(String)                 为其name别名的数据类型名称

6.databases

当前用户可用的数据库的信息。

创建test库
CREATE DATABASE test;SELECT * FROM system.databases;┌─name────┬─engine───┬─data_path─────────────────────────┬─metadata_path─────────────────────────┐
│ default │ Ordinary │ /var/lib/clickhouse/data/default/ │ /var/lib/clickhouse/metadata/default/ │
│ system  │ Ordinary │ /var/lib/clickhouse/data/system/  │ /var/lib/clickhouse/metadata/system/  │
│ test    │ Ordinary │ /var/lib/clickhouse/data/test/    │ /var/lib/clickhouse/metadata/test/    │
└─────────┴──────────┴───────────────────────────────────┴───────────────────────────────────────┘

列:

name(String)                            数据库名称
engine(字符串)                         数据库引擎
data_path(String)                     数据路径
metadata_path(String)             元数据路径
uuid(UUID)                               数据库UUID

该name系统表中的列用于实现SHOW DATABASES查询。

7.dictionaries
查询库中所有字典表

SELECT * FROM system.dictionaries\GRow 1:
──────
database:           default
name:               dict
status:             LOADED
origin:             default.dict
type:               Hashed
key:                UInt64
attribute.names:    ['city']
attribute.types:    ['String']
bytes_allocated:    27259080
query_count:        0
hit_rate:           1
element_count:      200000
load_factor:        0.19073486328125
source:             ClickHouse: default.ip2city
lifetime_min:       1
lifetime_max:       10
loading_start_time: 2021-04-07 12:13:35
loading_duration:   0.027
last_exception:     1 rows in set. Elapsed: 0.003 sec.

列:

database(String)             由DDL查询创建的字典的数据库的名称。其他字典的空字符串
name(字符串)                 字典名称
status(Enum8)                词典状态
NOT_LOADED              由于未使用字典,因此未加载字典
LOADED                       字典已成功加载
FAILED                         由于错误而无法加载字典
LOADING                     词典正在加载中
LOADED_AND_RELOADING        字典已成功加载,并且现在正在重新加载(常见原因:SYSTEM RELOAD DICTIONARY查询,超时,字典配置已更改)
FAILED_AND_RELOADING            由于错误而无法加载字典,现在正在加载
origin(String)                     描述字典的配置文件的路径
type(String)                       字典分配的类型。将词典存储在内存中
key                                         密钥类型:数字密钥(UInt64)或Сomposite密钥(String)—形式为“((类型1,类型2,…,类型n)”)
attribute.names(Array(String))    字典提供的属性名称的数组
attribute.types(Array(String))      字典提供的属性类型的对应数组
bytes_allocated(UInt64)                   为字典分配的RAM量
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)                                     如果无法创建字典,则在创建或重新加载字典时发生的错误的文本

8.disks

查询定义的磁盘相关信息
定义磁盘相关方式请点击:ClickHouse多卷存储策略

SELECT * FROM system.disks;┌─name────┬─path─────────────────┬───free_space─┬──total_space─┬─keep_free_space─┐
│ default │ /var/lib/clickhouse/ │ 264064196608 │ 424203980800 │               0 │
└─────────┴──────────────────────┴──────────────┴──────────────┴─────────────────┘

列:

name(String)                     服务器配置中的磁盘名称
path(String)                       文件系统中安装点的路径
free_space(UInt64)            磁盘上的可用空间(以字节为单位)
total_space(UInt64)           磁盘卷,以字节为单位
keep_free_space(UInt64)   应该在磁盘上保持可用空间的磁盘空间量(以字节为单位)。在keep_free_space_bytes磁盘配置参数中定义

9.distributed_ddl_queue

集群上执行的分布式ddl查询(ON CLUSTER子句)的信息。

SELECT * FROM system.distributed_ddl_queue WHERE cluster = 'test_cluster' LIMIT 1\GRow 1:
──────
entry:             query-0000000000
host_name:         clickhouse01
host_address:      172.23.0.11
port:              9000
status:            Finished
cluster:           test_cluster
query:             CREATE DATABASE test_db UUID '4a82697e-c85e-4e5b-a01e-a36f2a758456' ON CLUSTER test_cluster
initiator:         clickhouse01:9000
query_start_time:  2020-12-30 13:07:51
query_finish_time: 2020-12-30 13:07:51
query_duration_ms: 6
exception_code:    ZOK1 rows in set. Elapsed: 0.025 sec.

列:

entry(String)                               查询ID
host_name(String)                        主机名
host_address(String)                   主机名解析为的IP地址
port(UInt16)                                主机端口
status(Enum8)                            查询状态
cluster(String)                            群集名称
query(String)                               执行查询
initiator(String)                         执行查询的节点
query_start_time(DateTime)       查询开始时间
query_finish_time(DateTime)     查询完成时间
query_duration_ms(UInt64)          查询执行的持续时间(以毫秒为单位)
exception_code(Enum8)               ZooKeeper的异常代码

10.contributors

有关贡献者的信息。该顺序在查询执行时是随机的。

SELECT * FROM system.contributors LIMIT 10 ;┌─name──────────────┐
│ Igor              │
│ Metehan Çetinkaya │
│ Veloman Yunkan    │
│ Ivan Blinkov      │
│ philip.han        │
│ miha-g            │
│ Bogdan Voronin    │
│ Vladimir Kozbin   │
│ pyos              │
│ cekc              │
└───────────────────┘10 rows in set. Elapsed: 0.002 sec.
查查自己的贡献,你不试试吗?
SELECT * FROM system.contributors WHERE name = 'Ansel.zhang' ;┌─────name─────┐
│ Ansel.zhang  │
└──────────────┘1 rows in set. Elapsed: 0.004 sec.

列:

name (字符串)                来自git log的贡献者(作者)名称。

更多精彩内容欢迎扫码关注

Clickhouse - System Tables 集合(一)相关推荐

  1. Triggers can not be created on system tables

    Triggers can not be created on system tables 释意即: "无法在系统表上创建触发器" FIRST:当你存在这个问题的时候,恭喜你,因为我 ...

  2. Navicat导出SQL数据报错1577,Cannot proceed because system tables used by Event Scheduler where found damage

    前言 今早在win10用Navicat导出云服务器MySQL数据SQL文件时,Navicat报错1577 Cannot proceed because system tables used by Ev ...

  3. Navicat的1577 – Cannot proceed because system tables used by Event Scheduler where found damaged at s

    问题: 今天使用Navicat不过当连接上新mysql后,无论打开任何一个数据库,都会提示:1577 – Cannot proceed because system tables used by Ev ...

  4. Navicat链接linux上的mysql出现 1577 Cannot proceed because system tables used by Event Scheduler where foun

    之前用navicat链接远程linux上的mysql一直都挺好使的,今天导出数据的时候发现,出现了下图错误. 百度一下解决方法是: (1)windows上的mysql出现1577,方法一百度一大堆,下 ...

  5. mongodb-config集合-system.sessions

    system.sessions 该system.sessions集合存储可供部署的所有成员使用的session记录. 当用户在mongod或 mongos实例上创建session时,该session记 ...

  6. ClickHouse 创建数据库/建表/视图/字典 SQL

    1.1. ClickHouse SQL之数据定义语言 DDL  本节介绍 ClickHouse 中进行数据库.表结构的定义和管理. 1.1.1. 概述 在SQL中,数据定义语言( DDL ) 用来创建 ...

  7. ClickHouse 在唯品会 OLAP 系统的实践

    供稿:王新春.王玉.王康.徐其民 01 OLAP在唯品会演进迭代 1.1 Presto/Kylin在唯品会的使用 Presto作为当前唯品会OLAP主力军,经历了数次架构和使用方式演进.当前阶段,我们 ...

  8. ClickHouse在京东流量分析的应用实践

    前言 ClickHouse 是一款开源列式存储的分析型数据库,相较业界OLAP数据库系统,其最核心优势就是极致的查询性能.它实现了向量化执行和SIMD指令,对内存中的列式数据,一个batch调用一次S ...

  9. 【clickhouse】clickhouse的系统表

    1.概述 转载:clickhouse的系统表 在日常使用clickhouse中经常会遇到很多问题,有时候需要去查系统表,但是对于我们来说,大部分的系统表的字段名称都不知道,看到了也不知道啥意思,下面我 ...

最新文章

  1. 设计模式之命令模式(Command)摘录
  2. 从ORA-27300,ORA-27301到ORA-00064
  3. 事务处理操作(COMMIT,ROLLBACK)。复制表。更新操作UPDATE实际工作中一般都会有WHERE子句,否则更新全表会影响系统性能引发死机。...
  4. 轻松搭建基于 SpringBoot Vue 的 Web 商城应用
  5. Spring+Hibernate+Struts2整合所需要的Jar包
  6. python六角形的绘制 编程_利用Python的turtle重复画六边形
  7. 如何创建新的SAP CRM middleware subscription
  8. I-EIM分享一套局域网通讯源码
  9. window添加右键菜单
  10. csnd-update
  11. 广州博森科技有限公司外汇自动交易软件,免费下载试用
  12. MyBatis--逆向工程
  13. 迈普交换机_配置手册_IS420
  14. 九九乘法表 - Java (矩形、正三角形、倒三角形)
  15. sko.GA实现遗传算法的源码解析
  16. 后台添加mp4 php,织梦后台编辑器增加MP4视频上传功能的方法
  17. 青蛙的约会(POJ 1061 扩展欧几里德算法)
  18. linux搜索log文件的内容
  19. 计算机正确的坐姿教案,【幼儿园坐姿教案】幼儿园大班坐姿教案_关于幼儿坐姿的教案_亲亲宝贝网...
  20. 扬子晚报:杨百万 PK 巴菲特

热门文章

  1. 拨云搜索:帮你查找记忆中的小说
  2. 数据分析学习日记 Day4
  3. 服务器主板插显卡进不了系统,我的主板插上显卡后按电源,开不了机怎么办?...
  4. Dijkstra-POJ-2387-Til the Cows Come Home
  5. 软件工程《构建之法》—概论
  6. 【重磅】2020年SCI影响因子正式公布!各领域TOP期刊!(附下载链接)
  7. PPT免费下载网页汇总
  8. 涉密计算机的硬盘需要销毁,销毁电脑硬盘的办法
  9. 贵州将大力推进城市更新“四改”工作
  10. 2019年嵌入式行业有哪些就业形势