【clickhouse】 clickhouse配置查询记录query_log

139 篇文章 633 订阅 ¥19.90 ¥99.00

在这里插入图片描述

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_log
 on 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 — TCP
	2HTTP
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参数设置为1Settings.Values (Array(String))Settings.Names列中列出的设置的值。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 下载clickhouseClickHouse官网https://clickhouse.yandex/docs/en/getting_started/下载ClickHouse的最新版本。选择与你的操作系统相应的版本进行下载。 2. 安装clickhouse 首先,创建一个新的用户,用于运行ClickHouse: ```bash sudo useradd clickhouse ``` 然后,解压下载的ClickHouse压缩包: ```bash tar -zxvf clickhouse-*.tgz ``` 将解压后的ClickHouse目录移动到/opt目录下: ```bash sudo mv clickhouse-* /opt/clickhouse ``` 接着,将ClickHouse目录的所有权赋予clickhouse用户: ```bash sudo chown -R clickhouse:clickhouse /opt/clickhouse ``` 3. 配置clickhouse 在/opt/clickhouse/config目录下,有一个config.xml文件,这是ClickHouse配置文件。你可以根据需要进行修改。以下是一些常见的配置项: - listen_host:ClickHouse服务器的IP地址或域名。 - listen_port:ClickHouse服务器的监听端口。 - data_path:ClickHouse数据存储的路径。 - max_memory_usage:ClickHouse可以使用的最大内存量。 - query_log_path:ClickHouse查询日志的路径。 - errorlog_path:ClickHouse错误日志的路径。 你可以根据自己的需求进行配置。 4. 启动clickhouse 启动ClickHouse服务: ```bash sudo /opt/clickhouse/bin/clickhouse-server --config-file=/opt/clickhouse/config/config.xml ``` 5. 使用clickhouse 你可以使用clickhouse-client来连接到ClickHouse服务器: ```bash /opt/clickhouse/bin/clickhouse-client ``` 在ClickHouse服务器上,你可以执行SQL查询,例如: ```sql SELECT * FROM system.tables; ``` 这将列出ClickHouse服务器上所有的表。 6. 维护clickhouse 在/opt/clickhouse/bin目录下,有许多ClickHouse维护工具。以下是一些常见的维护命令: - clickhouse-backup:备份ClickHouse数据。 - clickhouse-local:在本地计算机上运行ClickHouse查询。 - clickhouse-benchmark:测试ClickHouse性能。 - clickhouse-compressor:压缩ClickHouse数据。 - clickhouse-extract-from-config:从配置文件中提取ClickHouse配置参数。 你可以根据自己的需求使用这些维护工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值