system.query_thread_log
在 ClickHouse Cloud 中进行查询
该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处。
描述
包含执行查询的线程信息,例如线程名称、线程开始时间、查询处理持续时间等。
要开始记录日志:
- 在 query_thread_log 部分配置相关参数。
- 将 log_query_threads 设置为 1。
数据的刷新周期通过服务器设置中 query_thread_log 部分的 flush_interval_milliseconds 参数进行配置。要强制刷新,请使用 SYSTEM FLUSH LOGS 查询。
ClickHouse 不会自动从该表中删除数据。更多详细信息请参阅简介。
你可以使用 log_queries_probability 设置来减少记录到 query_thread_log 表中的查询数量。
列
hostname(LowCardinality(String)) — 执行该查询的服务器主机名。event_date(Date) — 线程完成查询执行时的日期。event_time(DateTime) — 线程完成查询执行时的日期和时间。event_time_microseconds(DateTime64(6)) — 线程完成查询执行时的日期和时间,精确到微秒。query_start_time(DateTime) — 查询开始执行的时间。query_start_time_microseconds(DateTime64(6)) — 查询开始执行的时间,精确到微秒。query_duration_ms(UInt64) — 查询执行耗时。read_rows(UInt64) — 读取的行数。read_bytes(UInt64) — 读取的字节数。written_rows(UInt64) — 对于 INSERT 查询,表示已写入的行数。对于其他查询,该列值为 0。written_bytes(UInt64) — 对于 INSERT 查询,表示写入的字节数。对于其他查询,该列的值为 0。memory_usage(Int64) — 此线程上下文中已分配内存量与已释放内存量之间的差值。peak_memory_usage(Int64) — 该线程上下文中已分配内存与已释放内存之差的最大值。thread_name(LowCardinality(String)) — 线程名称。thread_id(UInt64) — 线程内部 ID。master_thread_id(UInt64) — 初始线程在 OS 中的初始 ID。current_database(LowCardinality(String)) — 当前数据库名称。query(String) — 查询语句。normalized_query_hash(UInt64) — 规范化查询的哈希值,其中常量等内容已被清除。is_initial_query(UInt8) — 查询类型。可能值:1 — 查询由客户端发起,0 — 查询由另一个查询发起,用于执行分布式查询。connection_address(IPv6) — 发起该连接的客户端 IP 地址。通过代理连接时,此地址将是代理的地址。connection_port(UInt16) — 发起连接时使用的客户端端口。通过代理连接时,此处显示的是代理端口。user(LowCardinality(String)) — 发起当前查询的用户名。query_id(String) — 查询 ID。address(IPv6) — 用于发起查询的 IP 地址。连接通过代理转发且设置了auth_use_forwarded_address时,此处显示的是客户端地址,而不是代理地址。port(UInt16) — 用于发起查询的客户端端口。通过代理连接且设置了auth_use_forwarded_address时,此处显示的是客户端端口,而非代理端口。initial_user(LowCardinality(String)) — 运行初始查询的用户名 (用于分布式查询执行) 。initial_query_id(String) — 初始查询 ID (用于分布式查询执行) 。initial_address(IPv6) — 发起父查询时使用的 IP 地址。initial_port(UInt16) — 发起父查询时使用的客户端端口。initial_query_start_time(DateTime) — 初始查询的执行开始时间。initial_query_start_time_microseconds(DateTime64(6)) — 初始查询开始执行的时间authenticated_user(LowCardinality(String)) — 会话中已通过身份验证的用户名。interface(UInt8) — 发起查询所使用的接口。可能的值:1 — TCP,2 — HTTP。is_secure(UInt8) — 用于指示连接是否安全的标志。os_user(LowCardinality(String)) — 运行clickhouse-client的 OS 用户名。client_hostname(LowCardinality(String)) — 运行clickhouse-client或其他 TCP 客户端的客户端所在机器的主机名。client_name(LowCardinality(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 客户端版本号的补丁部分。script_query_number(UInt32) — 多查询脚本中的顺序查询编号。script_line_number(UInt32) — 多查询脚本中当前查询起始所在的行号。http_method(UInt8) — 发起查询的 HTTP 方法。可能的值:0 — 查询是通过 TCP 接口发起的,1 — 使用了 GET 方法,2 — 使用了 POST 方法。http_user_agent(LowCardinality(String)) — 在 HTTP 请求中传递的 UserAgent 请求头。http_referer(String) — 在 HTTP 查询中传递的 HTTP 请求头Referer(包含发起该查询的页面的完整或部分地址) 。forwarded_for(String) — 在 HTTP 查询中传入的 HTTP 请求头X-Forwarded-For。quota_key(String) — 在 quotas 设置中指定的“配额键”。distributed_depth(UInt64) — 查询在服务器之间被转发的次数。revision(UInt32) — ClickHouse 修订号。ProfileEvents(Map(LowCardinality(String), UInt64)) — 用于记录此线程各项指标的ProfileEvents。其说明可在system.events表中找到。
别名:
ProfileEvents.Names—mapKeys(ProfileEvents)的别名。ProfileEvents.Values—mapValues(ProfileEvents)的别名。
示例
另请参阅
- system.query_log —
query_log系统表的说明,其中包含关于查询执行的常规信息。 - system.query_views_log — 此表包含关于在查询期间执行的每个视图的信息。