1.概述

转载:clickhouse配置查询记录query_log

最近在使用clickhouse中,看到官方文档上可以配置query_log,但是文档上写的配置比较模糊,特此记录一下具体配置方法,以下配置针对的是集群中所有机器。

2.配置

打开clickhouse的users.xml文件,在profiles中加入<log_queries>1</log_queries>


打开config.xml文件,在yandex中加入query_log的配置:

<query_log><database>system</database><table>query_log</table><partition_by>toYYYYMM(event_date)</partition_by><flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>


如添加上述参数之后表不自动创建,重启clickhouse-server服务即可。

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

配置一个分布式表,用来外部查询。

CREATE TABLE IF NOT EXISTS system.query_log_all
ON CLUSTER yk_ck_cluster
AS system.query_log ENGINE = Distributed(yk_ck_cluster,system,query_log,rand())

3.配置过期TTL

由于query_log表没有自动清理功能,为了防止日志表过大占用太多的内存,设置一个自动清理表数据的TTL。

ALTER TABLE system.query_logon cluster yk_ck_cluster MODIFY TTL event_date + INTERVAL 15 DAY

有关TTL的详情参考:Clickhouse TTL

4.query_log

system.query_log注册了两种查询:

  • 由客户端直接运行的初始查询。
  • 由其他查询发起的子查询(分布式查询执行)。对于这些类型的查询,有关父查询的信息显示在initial_*列中。

每个查询会在query_log表中创建1-2行,取决于查询的状态:

  • 如果查询执行成功,将创建两个类型为1和2的事件(参考type列)。
  • 如果查询处理过程中发生错误,将创建两个类型为1和4的事件。
  • 如果查询运行前发生错误,将只创建一个类型为3的事件。
  • 默认情况下,每隔7.5秒向表添加一次日志。可以在query_log服务器设置中设置这个时间间隔(参考flush_interval_milliseconds参数)。要将日志从内存缓冲区强制刷新到表中,可以使用SYSTEM FLUSH LOGS。

列信息:

type (Enum8) — 执行查询时发生的事件类型。‘QueryStart’ = 1 — 查询执行成功开始。‘QueryFinish’ = 2 — 查询执行成功结束。‘ExceptionBeforeStart’ = 3 — 在开始执行查询之前发生异常。‘ExceptionWhileProcessing’ = 4 — 查询执行期间的异常。
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。
result_rows (UInt64) — 结果中的行数。
result_bytes (UInt64) — 结果中的字节数。
memory_usage (UInt64) — 查询消耗的内存。
query (String) — 查询字符串。
exception (String) — 异常信息。
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 — TCP2 — 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 列中列出的指标值。
Settings.Names (Array(String)) — 客户端运行查询时更改的设置的名称。要启用对设置的日志记录,将log_query_settings参数设置为1。
Settings.Values (Array(String)) —Settings.Names列中列出的设置的值。

【clickhouse】 clickhouse配置查询记录query_log相关推荐

  1. 2023-02-10 clickhouse导入tpch数据-记录

    摘要: clickhouse导入tpch数据-记录 生成TPCH数据: 2022-07-06 使用tpch大数据量压测mysql_大数据怎么压测_帝尊悟世的博客-CSDN博客 clickhouse导入 ...

  2. clickhouse 查询优化_查询提升200倍,ClickHouse你值得拥有!

    一.ClickHouse 是什么? ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 我们首先理清一些基础概念 OLTP:是传统的关系型数据库,主要操作增删改查,强 ...

  3. 【clickhouse】clickhouse 主从配置 从节点无数据

    文章目录 1.概述 1.概述 clickhouse主从配置好后,主或副本节点 执行插入操作都能把写操作写到zookeeper,但是 主从节点间 却没有实现数据复制. 最终找到原因了,是因为没有配置ho ...

  4. Clickhouse 分布式子查询——global in/join(慎用慎用)

    @羲凡--只为了更好的活着 Clickhouse 分布式子查询--global in/join(慎用慎用) 不能一味的追求查询效率,将分布式子查询都改成global in,一定要结合业务逻辑 假设:有 ...

  5. mongodb慢查询记录

    mongodb慢查询记录 在 MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是Mongo Database Profiler.不仅有 ...

  6. anemometer mysql_使用Anemometer分析MySQL慢查询记录

    数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前需要安装pe ...

  7. 虚拟服务器是否能查访问网站记录,服务器可以查询记录吗

    服务器可以查询记录吗 内容精选 换一换 资源管理服务(Resource Management Service,简称"RMS")为用户提供进行全局资源管理的能力,用户可以通过RMS来 ...

  8. hue mysql中文乱码_hue的历史查询记录querys乱码问题解决

    hue的历史查询记录querys乱码问题解决: master1中配置文件/home/hadoop/.versions/hue-3.10.0/desktop/conf/hue.ini 可以看到连接的是m ...

  9. Linux:IPMI iBMC远程管理配置查询及密码重置

    前言 维护服务器较多,最近遇到其他部门移交的服务器未登记远程管理端口的情况,询问了相关有过接手服务器的人,都表示没有掌握相关的ip和用户名.密码.其实这种情况下IPMI有提供的linux下的管理口驱动 ...

最新文章

  1. Varnish 和 Squid比较到底强多少
  2. LeetCode Anagrams
  3. ptyhon时间处理
  4. IIS5.1错误,启动时WEB服务提示:服务器没有及时响应启动或控制请求 之终极解决方案。...
  5. linux生成公钥实现ssh,linux下生成 SSH 公钥,用于GitHub
  6. SQL Server 自增字段重置
  7. linux桌面环境应用
  8. 不相关子查询的工作方式是_课题组工作|Nucleic Acids Research|基于表达密度谱的特征子空间分离及相关单细胞转录组分群新算法...
  9. linux rsync 常见错误,Linux rsync常见错误
  10. k8s 查看ip地址属于哪个pod_一个简单的例子理解Kubernetes的三种IP地址类型
  11. JAVA知识基础(八):继承
  12. 建模师分类:选择游戏还是工业?哪个发展前景更好?
  13. MyBatis 使用 foreach 批量插入
  14. My third homework
  15. H3C MSR系列路由器负载分担、链路备份的实现过程详解
  16. Js的前端效果编写逻辑(1)
  17. 关于移动H3_2s光猫获得超级密码的步骤以及上传本地配置文件覆盖光猫的配置文件的方法
  18. 软件项目管理之一:项目进度计划
  19. 移动优盘linux系统下载,把Linux装进U盘 打造简洁移动系统
  20. springboot集成elasticsearch7.2

热门文章

  1. 苹果大幅削减iPad产量 将芯片等部件调配给iPhone 13
  2. 摊上事了?中国卖家对亚马逊发起集体诉讼:3000多账号被封 损失惨重
  3. 上海通信管理局启动对手机清理软件问题调查
  4. 华为P50或将全面搭载鸿蒙OS上市:明年一季度见
  5. 蚂蚁集团暂缓两地上市,重新上市或推迟半年,阿里股价相继大跌...
  6. 联想拯救者电竞手机成功“截胡”:全球首发骁龙865+
  7. SpaceX载人龙飞船两名宇航员成功进入国际空间站
  8. 比1亿像素还要更厉害!三星Galaxy S11相机应用代码泄露天机...
  9. 首发骁龙665 小米CC9e 4+128G版到手价1199元
  10. 什么手机用起来最烫手?2019上半年手机温度榜公布...