clickhouse的system库表相关使用整理
一、系统表含义介绍
system库系统表相关释义:
1)系统表用于实现系统的部分功能,并提供对有关系统如何工作的信息的访问。
2)不能删除系统表(但可以执行DETACH)。
3)系统表在磁盘上没有数据或元数据的文件。服务器在启动时创建所有系统表。
4)系统表是只读的。
5)它们位于 ‘system’ 数据库中。
二、系统表相关表字段解析
system.asynchronous_metrics
记录定期在后台计算的指标。例如,正在使用的RAM数量。
列名:
metric (String) -- 指标名称 value (Float64) -- 指标值
asynchronous_metric_log:包含 asynchronous_metrics 的历史值,每分钟保存一次,默认启用。
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来删除这些分区。
列名:
name (String) -- 库名 engine (String) -- 数据库引擎 data_path (String) -- 数据库路径 metadata_path (String) -- 数据库元数据路径 uuid (UUID) -- 数据库 UUID
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) -- 指标名称的正则表达式。 function (String) -- 聚合函数名称。 age (UInt64) -- 数据的最小年龄(以秒为单位)。 precision (UInt64) -- 如何精确定义数据的年龄(以秒为单位)。 priority (UInt16) -- 优先级模式。 is_default (UInt8) -- 模式是否为默认模式。 Tables.database (Array(String)) -- 使用config_name参数的表的数据库名数组。 Tables.table (Array(String)) -- 使用config_name参数的表名数组。
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) -- 写入的行数。
system.metrics
记录可以立即计算或具有当前值的指标。例如,同时处理的查询数或当前副本延迟。这张表总是最新的。
列名:
metric (String) -- 指标名称。 value (Int64) -- 指标值。 description (String) -- 指标描述。
system.metric_log
记录system.metrics和system.events表中的历史指标值,定期刷新到磁盘。创建/etc/clickhouse-server/config.d/metric_log.xml,写入以下内容开启在system.metric_log采集历史指标。
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别名。
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) -- 发生错误的文本消息。
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(如果已定义)。
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) -- 完成日志记录的源行。
system.query_log
查询执行的信息。已执行查询的信息,例如开始时间、处理持续时间、错误消息。不包含 INSERT 语句,可以在config.xml里设置query_log,可以通过setting log_queries = 0关闭,不会自动删除记录,可以设置ttl属性的表。通过SYSTEM FLUSH LOGS可以强制刷写。每个查询在 query_log 表中创建1~2行,具体取决于查询的状态:
1. 查询执行成功,则会创建 QueryStart 和 QueryFinish 类型的事件。
2. 查询期间发生错误,则会创建QueryStart 和 ExceptionWhileProcessing 类型的事件。
3. 查询之前发生错误,则会创建一个具有 ExceptionBeforeStart 类型的事件。
type (Enum8) -- 执行查询时发生的事件类型: 'QueryStart' = 1 -- 成功开始查询执行。 'QueryFinish' = 2 -- 查询执行成功结束。 'ExceptionBeforeStart' = 3 -- 查询执行开始前的异常。 'ExceptionWhileProcessing' = 4 -- 查询执行期间的异常。 event_date (Date) -- 查询开始日期。 event_time (DateTime) -- 查询开始时间。 event_time_microseconds (DateTime) -- 以微秒精度查询开始时间。 query_start_time (DateTime) -- 查询执行的开始时间。 query_start_time_microseconds (DateTime64) -- 以微秒精度开始执行查询的时间。 query_duration_ms (UInt64) -- 以毫秒为单位的查询执行持续时间。 read_rows (UInt64) -- 从参与查询的所有表和表函数中读取的总行数。它包括通常的子查询、IN 和 JOIN 的子查询。对于分布式查询 read_rows 包括在所有副本读取的总行数。每个副本发送它的 read_rows 值,查询的服务器发起者汇总所有接收到的和本地的值。 read_bytes (UInt64) -- 从参与查询的所有表和表函数中读取的总字节数。它包括通常的子查询、IN 和 JOIN 的子查询。对于分布式查询 read_bytes 包括在所有副本读取的总行数。每个副本发送它的 read_bytes 值,查询的服务器发起者汇总所有接收到的和本地的值。 write_rows (UInt64) -- 对于 INSERT 查询,写入的行数。对于其他查询,列值为 0。 write_bytes (UInt64) -- 对于 INSERT 查询,写入的字节数。对于其他查询,列值为 0。 result_rows (UInt64) -- SELECT 查询结果中的行数,或 INSERT 查询中的行数。 result_bytes (UInt64) -- 用于存储查询结果的 RAM 容量(以字节为单位)。 memory_usage (UInt64) -- 查询的内存消耗。 current_database (String) -- 当前数据库的名称。 query (String) -- 查询语句。 normalized_query_hash (UInt64) -- 哈希值。 query_kind (LowCardinality(String)) -- 查询的类型。 database (Array(LowCardinality(String))) -- 查询中存在的数据库的名称。 tables (Array(LowCardinality(String))) -- 查询中存在的表的名称。 columns (Array(LowCardinality(String))) -- 查询中存在的列的名称。 exception_code (Int32) -- 异常代码。 exception(字符串)----异常消息。 stack_trace (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) -- 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 查询中传递的 HTTP 标头 UserAgent。 http_referer (String) -- 在 HTTP 查询中传递的 HTTP 标头 Referer(包含进行查询的页面的绝对或部分地址)。 forwarded_for (String) -- 在 HTTP 查询中传递的 HTTP 标头 X-Forwarded-For。 quota_key (String) -- 在配额设置中指定的配额键(见 keyed)。 revision (UInt32) -- ClickHouse 修订版。 log_comment (String) -- 记录备注。它可以设置为不超过 max_query_size 的任意字符串。如果未定义,则为空字符串。 thread_ids (Array(UInt64)) -- 参与查询执行的线程 ID。 ProfileEvents.Names (Array(String)) -- 衡量不同指标的计数器。它们的描述可以在表 system.events 中找到 ProfileEvents.Values (Array(UInt64)) -- ProfileEvents.Names 列中列出的指标值。 Settings.Names (Array(String)) -- 客户端运行查询时更改的设置名称。要启用对设置的日志更改,请将 log_query_settings 参数设置为 1。 Settings.Values (Array(String)) -- Settings.Names 列中列出的设置值。 used_aggregate_functions (Array(String)) -- 在查询执行期间使用的聚合函数的规范名称。 used_aggregate_function_combinators (Array(String)) -- 在查询执行期间使用的聚合函数组合器的规范名称。 used_database_engines (Array(String)) -- 在查询执行期间使用的数据库引擎的规范名称。 used_data_type_families (Array(String)) -- 在查询执行期间使用的数据类型系列的规范名称。 used_dictionaries (Array(String)) -- 字典的规范名称,在查询执行期间使用。 used_formats (Array(String)) -- 格式的规范名称,在查询执行期间使用。 used_functions (Array(String)) -- 在查询执行期间使用的函数的规范名称。 used_storages (Array(String)) -- 存储的规范名称,在查询执行期间使用。 used_table_functions (Array(String)) -- 在查询执行期间使用的表
函数的规范名称。
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参数)。要将日志从内存缓冲区强制刷新到表中,可以使用系统刷新日志查询。
当手动删除表时,将动态地自动创建该表。注意,所有以前的日志都将被删除。
system.trace_log
记录由抽样查询分析器收集的堆栈调用信息。
ClickHouse只有在trace_log服务器配置配置部分设置时才会创建这个表。还应该设置query_profiler_real_time__ns和query_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服务器进程中的一个虚拟内存地址。
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),那么该表可以快速工作。
system.settings
记录有关当前用户会话设置的信息。
列名:
name (String) -- 设置项名称。 value (String) -- 设置的值。 changed (UInt8) -- 显示设置是否从其默认值更改。 description (String) -- 设置项的简单描述。 min (Nullable(String)) -- 设置的最小值,如果通过约束设置的话。如果设置没有最小值,则为NULL。 max (Nullable(String)) -- 设置的最小值,如果通过约束设置的话。如果设置没有最小值,则为NULL。 readonly (UInt8) -- 显示当前用户是否可以更改设置: 0 -- 当前用户可以更改设置。 1 -- 当前用户无法更改设置。 system.merge_tree_settings 记录MergeTree表的设置信息。 列名: name (String) -- 设置项。 value (String) -- 设置值。 description (String) -- 设置描述。 type (String) -- 设置类型(实现特定的字符串值)。 changed (UInt8) -- 设置是在配置中显式定义的还是显式更改的。
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) -- 指示表引擎是否支持数据重复数据删除的标志。
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就是用这个表来实现查询的。
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。
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 -- 导致最近的数据片段修改失败的异常消息。
system.disks
记录有关服务器配置中定义的磁盘的信息。
列名:
name (String) -- 服务器配置中磁盘的名称。 path (String) -- 指向文件系统中的挂载点的路径。 free_space (UInt64) -- 磁盘上的空闲空间(以字节为单位)。 total_space (UInt64) -- 磁盘容量(以字节为单位)。 keep_free_space (UInt64) -- 以字节为单位在磁盘上保持空闲的磁盘空间量。在磁盘配置的keep_free_space_bytes参数中定义。
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开始按顺序将数据移动到下一个卷。
如果存储策略包含多个卷,则每个卷的信息存储在表的单个行中。
system.aggregate_function_combinators
记录聚合函数组合器表,聚合函数的名称可以附加一个后缀,会改变原聚合函数的工作方式。
列名:
name (String) -- 聚合函数组合器的名称。 is_internal (UInt8) -- 是否为内部函数。
system.distributed_ddl_queue
记录有关在集群上执行的分布式 ddl 查询(ON CLUSTER 子句)的信息
列名:
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 的异常代码。
system.distribution_queue
记录要发送到分片的队列中的本地文件的信息。这些本地文件通过以异步模式将新数据插入分布式表而创建的新部分
列名:
database (String) -- 库名。 table (String) -- 表名。 data_path (String) -- 包含本地文件的文件夹的路径。 is_blocked (UInt8) -- 标志指示是否阻止向服务器发送本地文件。 error_count (UInt64) -- 错误数。 data_files (UInt64) -- 文件夹中的本地文件数。 data_compressed_bytes (UInt64) -- 本地文件中压缩数据的大小,以字节为单位。 broken_data_files (UInt64) -- 已被标记为已损坏(由于错误)的文件数。 broken_data_compressed_bytes (UInt64) -- 损坏文件中压缩数据的大小,以字节为单位。 last_exception (String) -- 关于发生的最后一个错误(如果有)的文本消息。
system.errors
记录错误代码以及它们被触发的次数。
列名:
name (String) -- 错误的名称 (errorCodeToName)。 code (Int32) -- 错误的代码编号。 value (UInt64) -- 此错误发生的次数。 last_error_time (DateTime) -- 上次发生错误的时间。 last_error_message (String) -- 最后一个错误的消息。 last_error_trace (Array(UInt64)) -- 堆栈跟踪,表示存储调用方法的物理地址列表。 remote (UInt8) -- 远程异常(即在分布式查询之一期间收到)。
system.grants
记录授予 ClickHouse 用户帐户的权限
列名:
user_name (Nullable(String)) -- 用户名。 role_name (Nullable(String)) -- 分配给用户帐户的角色。 access_type (Enum8) -- 用户的访问参数。 database (Nullable(String)) -- 库名。 table (Nullable(String)) -- 表名。 column (Nullable(String)) -- 授予访问权限的列的名称。 is_partial_revoke (UInt8) -- 逻辑值。 它显示某些权限是否已被撤销。 可能的值:0 -- 该行描述了部分撤销;1 -- 该行描述了一项授权。 grant_option (UInt8) -- 使用 WITH GRANT OPTION 授予权限。
system.parts_columns
记录有关 MergeTree 表的分区和列的信息。
列名:
column (String) -- 列名。 type (String) -- 列类型。 column_position (UInt64) -- 列在表中的位置,从 1 开始。 default_kind (String) -- 默认值的表达式类型(DEFAULT、MATERIALIZED、ALIAS),如果未定义则为空字符串。 default_expression (String) -- 默认值的表达式,如果未定义则为空字符串。 column_bytes_on_disk (UInt64) -- 列的总大小(以字节为单位)。 column_data_compressed_bytes (UInt64) -- 列中压缩数据的总大小,以字节为单位。 column_data_uncompressed_bytes (UInt64) -- 列中解压缩数据的总大小,以字节为单位。 column_marks_bytes (UInt64) -- 带有标记的列的大小,以字节为单位。
system.quota_limits
记录有关所有配额的所有间隔的最大值的信息。任意数量的行或零可以对应一个配额。
列名:
quota_name (String) -- 配额名称。 duration (UInt32) -- 计算资源消耗的时间间隔长度,以秒为单位。 is_randomized_interval (UInt8) -- 逻辑值。它显示间隔是否是随机的。如果间隔不是随机的,则它总是同时开始。例如,1 分钟的间隔总是从整数分钟开始(即它可以从 11:20:00 开始,但它永远不会从 11:20:01 开始),一天的间隔总是从 UTC 午夜开始.如果间隔是随机的,则第一个间隔在随机时间开始,随后的间隔一个接一个开始。价值观: 0 -- 间隔不是随机的。 1 -- 间隔是随机的。 max_queries (Nullable(UInt64)) -- 最大查询数。 max_query_selects (Nullable(UInt64)) -- select最大数量。 max_query_inserts (Nullable(UInt64)) -- insert最大数量。 max_errors (Nullable(UInt64)) -- 最大错误数。 max_result_rows (Nullable(UInt64)) -- 结果行的最大数量。 max_result_bytes (Nullable(UInt64)) -- 用于存储查询结果的最大 RAM 卷数(以字节为单位)。 max_read_rows (Nullable(UInt64)) -- 从参与查询的所有表和表函数读取的最大行数。 max_read_bytes (Nullable(UInt64)) -- 从参与查询的所有表和表函数读取的最大字节数。 max_execution_time (Nullable(Float64)) -- 查询执行时间的最大值,以秒为单位。
system.quota_usage
记录当前用户的配额使用量:使用了多少,还剩多少。
列名:
quota_name (String) -- 配额名称。 quota_key(String) -- 键值。例如,如果keys = [ip address],那么quota_key 的值可能是“192.168.1.1”。 start_time(Nullable(DateTime)) -- 计算资源消耗的开始时间。 end_time(Nullable(DateTime)) -- 计算资源消耗的结束时间。 duration (Nullable(UInt64)) 计算资源消耗的时间间隔长度,以秒为单位。 queries (Nullable(UInt64)) -- 此时间间隔内的请求总数。 query_selects (Nullable(UInt64)) -- 此时间间隔内选择请求的总数。 query_inserts (Nullable(UInt64)) -- 此时间间隔内插入请求的总数。 max_queries (Nullable(UInt64)) 最大请求数。 errors (Nullable(UInt64)) -- 引发异常的查询数。 max_errors (Nullable(UInt64)) -- 最大错误数。 result_rows (Nullable(UInt64)) -- 结果给出的总行数。 max_result_rows (Nullable(UInt64)) -- 结果行的最大数量。 result_bytes (Nullable(UInt64)) -- 用于存储查询结果的 RAM 容量(以字节为单位)。 max_result_bytes (Nullable(UInt64)) -- 用于存储查询结果的最大 RAM 容量,以字节为单位。 read_rows (Nullable(UInt64)) -- 从表中读取的源行总数,用于在所有远程服务器上运行查询。 max_read_rows (Nullable(UInt64)) -- 从参与查询的所有表和表函数读取的最大行数。 read_bytes (Nullable(UInt64)) -- 从参与查询的所有表和表函数读取的总字节数。 max_read_bytes (Nullable(UInt64)) -- 从所有表和表函数读取的最大字节数。 execution_time (Nullable(Float64)) -- 总查询执行时间,以秒为单位(挂墙时间)。 max_execution_time (Nullable(Float64)) -- 查询执行时间的最大值。
system.quotas
记录有关配额的信息。
列名:
name (String) -- 配额名称。 id (UUID) -- 配额 ID。 storage(String) -- 配额的存储。可能的值:“users.xml”(如果是在 users.xml 文件中配置的配额),“disk”(如果是由 SQL 查询配置的配额)。 keys (Array(Enum8)) -- Key 指定配额的共享方式。如果两个连接使用相同的配额和密钥,则它们共享相同数量的资源: [] -- 所有用户共享相同的配额。 ['user_name'] -- 具有相同用户名的连接共享相同的配额。 ['ip_address'] -- 来自同一 IP 的连接共享相同的配额。 ['client_key'] -- 具有相同密钥的连接共享相同的配额。密钥必须由客户端明确提供。使用clickhouse-client时,在--quota-key参数中传递一个key值,或者在客户端配置文件中使用quota_key参数。使用 HTTP 接口时,请使用 X-ClickHouse-Quota 标头。 ['user_name', 'client_key'] -- 具有相同 client_key 的连接共享相同的配额。如果客户端未提供密钥,则会跟踪 user_name 的 qouta。 ['client_key', 'ip_address'] -- 具有相同 client_key 的连接共享相同的配额。如果客户端未提供密钥,则会跟踪 ip_address 的 qouta。 durations (Array(UInt64)) -- 以秒为单位的时间间隔长度。 apply_to_all (UInt8) -- 逻辑值。它显示配额应用于哪些用户。价值观: 0 -- 配额适用于在 apply_to_list 中指定的用户。 1 -- 配额适用于除 apply_to_except 中列出的用户之外的所有用户。 apply_to_list (Array(String)) -- 应应用配额的用户名/角色列表。 apply_to_except (Array(String)) -- 配额不应适用的用户名/角色列表。
system.quotas_usage
记录用户的配额使用情况。
列名:
quota_name (String) -- 配额名称。 quota_key (String) -- 键值。 is_current (UInt8) -- 当前用户的配额使用情况。 start_time (Nullable(DateTime))) -- 计算资源消耗的开始时间。 end_time (Nullable(DateTime))) -- 计算资源消耗的结束时间。 duration (Nullable(UInt32)) 计算资源消耗的时间间隔长度,以秒为单位。 queries (Nullable(UInt64)) -- 此时间间隔内的请求总数。 max_queries (Nullable(UInt64)) 最大请求数。 query_selects (Nullable(UInt64)) -- 此时间间隔内选择请求的总数。 max_query_selects (Nullable(UInt64)) -- 选择请求的最大数量。 query_inserts (Nullable(UInt64)) -- 此时间间隔内插入请求的总数。 max_query_inserts (Nullable(UInt64)) -- 插入请求的最大数量。 errors (Nullable(UInt64)) -- 引发异常的查询数。 max_errors (Nullable(UInt64)) -- 最大错误数。 result_rows (Nullable(UInt64)) -- 作为结果给出的总行数。 max_result_rows (Nullable(UInt64)) -- 从表中读取的最大源行数。 result_bytes (Nullable(UInt64)) -- 用于存储查询结果的 RAM 容量(以字节为单位)。 max_result_bytes (Nullable(UInt64)) -- 用于存储查询结果的最大 RAM 容量,以字节为单位。 read_rows (Nullable(UInt64))) -- 从表中读取的源行总数,用于在所有远程服务器上运行查询。 max_read_rows (Nullable(UInt64)) -- 从参与查询的所有表和表函数读取的最大行数。 read_bytes (Nullable(UInt64)) -- 从参与查询的所有表和表函数读取的总字节数。 max_read_bytes (Nullable(UInt64)) -- 从所有表和表函数读取的最大字节数。 execution_time (Nullable(Float64)) -- 总查询执行时间,以秒为单位(挂墙时间)。 max_execution_time (Nullable(Float64)) -- 查询执行时间的最大值。
system.replicated_fetches
记录当前正在运行的后台提取的信息。
列名:
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) -- 统一资源标识符。 to_detached (UInt8) -- 该标志指示是否正在使用 TO DETACHED 表达式执行当前正在运行的后台提取。 thread_id (UInt64) -- 线程标识符。
system.replication_queue
记录有关存储在 ZooKeeper 中的复制队列任务的信息,用于 ReplicatedMergeTree 系列中的表。
列名:
database (String) -- 数据库的名称。 table (String) -- 表的名称。 replica_name (String) -- ZooKeeper 中的副本名称。同一张表的不同副本有不同的名称。 position (UInt32) -- 任务在队列中的位置。 node_name (String) -- ZooKeeper 中的节点名称。 type (String) -- 队列中任务的类型,以下之一: GET_PART -- 从另一个副本中获取零件。 ATTACH_PART -- 附加分区,可能来自我们自己的副本(如果在分离的文件夹中找到)。 MERGE_PARTS -- 合并分区。 DROP_RANGE -- 删除指定分区中指定编号范围内的部分。 CLEAR_COLUMN -- 已弃用。从指定分区删除特定列。 CLEAR_INDEX -- 已弃用。从指定分区删除特定索引。 REPLACE_RANGE -- 删除一定范围的分区并用新分区替换。 MUTATE_PART -- 对分区应用一个或多个mutation。 ALTER_METADATA -- 根据全局 /metadata 和 /columns 路径应用更改修改。 create_time (Datetime) -- 提交任务执行的日期和时间。 required_quorum (UInt32) -- 等待任务完成并确认完成的副本数。此列仅与 GET_PARTS 任务相关。 source_replica (String) -- 源副本的名称。 new_part_name (String) -- 新部件的名称。 parts_to_merge (Array (String)) -- 要合并或更新的分区的名称。 is_detach (UInt8) -- 该标志指示 DETACH_PARTS 任务是否在队列中。 is_currently_executing (UInt8) -- 该标志指示当前是否正在执行特定任务。 num_tries (UInt32) -- 完成任务的失败尝试次数。 last_exception (String) -- 关于发生的最后一个错误(如果有)的文本消息。 last_attempt_time (Datetime) -- 上次尝试任务的日期和时间。 num_postponed (UInt32) -- 推迟任务的数量。 postpone_reason (String) --任务被推迟的原因。 last_postpone_time (Datetime) -- 上次推迟任务的日期和时间。 merge_type (String) -- 当前合并的类型。如果是mutation则为空。
system.role_grants
记录为用户和角色授权的信息。使用 GRANT role TO user 往该表添加记录。
列名:
user_name (Nullable(String)) -- 用户名。 role_name (Nullable(String)) -- 角色名称。 grant_role_name (String) -- 授予 role_name 角色的角色名称。 要将一个角色授予另一个角色,请使用 GRANT role1 TO role2。 grant_role_is_default (UInt8) -- 显示 grant_role 是否为默认角色的标志。 可能的值: 1 -- grant_role 是默认角色。 0 -- grant_role 不是默认角色。 with_admin_option (UInt8) -- 显示 grant_role 是否是具有 ADMIN OPTION 权限的角色的标志。 可能的值: 1 -- 该角色具有 ADMIN OPTION 权限。 0 -- 没有 ADMIN OPTION 权限的角色。
system.roles
记录已配置角色的信息。
列名:
name (String) -- 角色名称。 id (UUID) -- 角色 ID。 storage (String) -- 角色存储的路径。 在 access_control_path 参数中配置。
system.row_policies
记录一个特定表的过滤器,以及应该使用此行策略的角色和/或用户列表。
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)) -- 行策略应用于除列出的角色和/或用户之外的所有角色和/或用户。
system.settings_profile_elements
记录配置文件的几个元素属性:约束、角色用户、继承父配置文件。
列名:
profile_name (Nullable(String)) -- 配置文件名称。 user_name (Nullable(String)) -- 用户名。 role_name (Nullable(String)) -- 角色名称。 index (UInt64) -- 设置配置文件元素的序列号。 setting_name (Nullable(String)) -- 设置名称。 value (Nullable(String)) -- 设置值。 min (Nullable(String)) -- 设置的最小值。 如果未设置,则为 NULL。 max (Nullable(String)) -- 设置的最大值。 如果未设置,则为 NULL。 readonly (Nullable(UInt8)) -- 仅允许读取查询的配置文件。 inherit_profile (Nullable(String)) -- 此设置配置文件的父配置文件,将从其父配置文件继承所有设置的值和约束(最小、最大、只读)。如果未设置,则为 NULL。
system.settings_profiles
记录配置文件的属性,需要grant权限。
name (String) -- 设置配置文件名称。 id (UUID) -- 设置配置文件 ID。 storage (String) -- 设置配置文件的存储路径。 在 access_control_path 参数中配置。 num_elements (UInt64) -- system.settings_profile_elements 表中此配置文件的元素数。 apply_to_all (UInt8) -- 显示为所有角色和/或用户设置的设置配置文件。 apply_to_list (Array(String)) -- 应用设置配置文件的角色和/或用户的列表。 apply_to_except (Array(String)) -- 设置配置文件应用于除列出的角色和/或用户之外的所有角色和/或用户。
system.stack_trace
记录所有服务器线程的堆栈跟踪。
列名:
thread_name (String) -- 线程名称。 thread_id (UInt64) -- 线程标识符。 query_id (String) -- 查询标识符,可用于获取有关从 query_log 系统表运行的查询的详细信息。 trace (Array(UInt64)) -- 堆栈跟踪,表示存储调用方法的物理地址列表。
system.users
记录在服务器上配置的用户列表。
列名:
name (String) -- 用户名。 id (UUID) -- 用户 ID。 storage (String) -- 用户存储的路径。在 access_control_path 参数中配置。 auth_type (Enum8('no_password' = 0,'plaintext_password' = 1, 'sha256_password' = 2, 'double_sha1_password' = 3)) -- 显示身份验证类型。用户识别方式有多种:无密码、明文密码、SHA256编码密码或双SHA-1编码密码。 auth_params (String) -- JSON 格式的身份验证参数,具体取决于 auth_type。 host_ip (Array(String)) -- 允许连接到 ClickHouse 服务器的主机的 IP 地址。 host_names (Array(String)) -- 允许连接到 ClickHouse 服务器的主机的名称。 host_names_regexp (Array(String)) -- 允许连接到 ClickHouse 服务器的主机名的正则表达式。 host_names_like (Array(String)) -- 允许连接到 ClickHouse 服务器的主机的名称,使用 LIKE 谓词设置。 default_roles_all (UInt8) -- 显示默认情况下为用户设置的所有授予的角色。 default_roles_list (Array(String)) -- 默认提供的授权角色列表。 default_roles_except (Array(String)) -- 除列出的角色外,所有授予的角色都设置为默认角色。