跳到主要内容

故障排查

通过 system_history 表诊断慢查询、错误、资源使用和登录问题。使用 profile_history 进行算子级执行分析(CPU 时间、I/O、溢出、输出行数)。所有表按租户隔离。

system_history.query_history

完整的 SQL 执行审计记录。每个查询会生成 start/finish 状态的条目。

字段类型说明
log_typeTINYINT查询状态:1=Start, 2=Finish, 3=Error, 4=Aborted, 5=Closed
log_type_nameVARCHAR状态名称:"Start", "Finish", "Error", "Aborted", "Closed"
handler_typeVARCHAR使用的协议(如 HTTPQuery, MySQL
tenant_idVARCHAR租户标识
cluster_idVARCHAR集群标识
node_idVARCHAR节点标识
sql_userVARCHAR执行查询的用户
sql_user_quotaVARCHAR用户配额信息
sql_user_privilegesVARCHAR用户权限
query_idVARCHAR唯一查询标识
query_kindVARCHAR查询类型(如 Query, Insert, CopyIntoTable
query_textVARCHARSQL 文本
query_hashVARCHAR查询文本的哈希
query_parameterized_hashVARCHAR忽略字面值的哈希
event_dateDATE事件日期
event_timeTIMESTAMP事件时间戳
query_start_timeTIMESTAMP查询开始时间
query_duration_msBIGINT总耗时(毫秒,含排队+执行)
query_queued_duration_msBIGINT排队耗时(毫秒)
current_databaseVARCHAR当前数据库
written_rowsBIGINT UNSIGNED写入行数
written_bytesBIGINT UNSIGNED写入字节数
join_spilled_rowsBIGINT UNSIGNEDJoin 溢出行数
join_spilled_bytesBIGINT UNSIGNEDJoin 溢出字节数
agg_spilled_rowsBIGINT UNSIGNED聚合溢出行数
agg_spilled_bytesBIGINT UNSIGNED聚合溢出字节数
group_by_spilled_rowsBIGINT UNSIGNEDGroup By 溢出行数
group_by_spilled_bytesBIGINT UNSIGNEDGroup By 溢出字节数
written_io_bytesBIGINT UNSIGNEDIO 写入字节数
written_io_bytes_cost_msBIGINT UNSIGNEDIO 写入耗时(毫秒)
scan_rowsBIGINT UNSIGNED扫描行数
scan_bytesBIGINT UNSIGNED扫描字节数
scan_io_bytesBIGINT UNSIGNED扫描 IO 字节数
scan_io_bytes_cost_msBIGINT UNSIGNED扫描 IO 耗时(毫秒)
scan_partitionsBIGINT UNSIGNED扫描分区数
total_partitionsBIGINT UNSIGNED总分区数
result_rowsBIGINT UNSIGNED结果行数
result_bytesBIGINT UNSIGNED结果字节数
bytes_from_remote_diskBIGINT UNSIGNED从远程磁盘读取的字节数
bytes_from_local_diskBIGINT UNSIGNED从本地磁盘读取的字节数
bytes_from_memoryBIGINT UNSIGNED从内存读取的字节数
client_addressVARCHAR客户端地址
user_agentVARCHAR客户端 User Agent
exception_codeINT异常代码(0 = 成功)
exception_textVARCHAR异常信息
server_versionVARCHAR服务器版本
query_tagVARCHAR查询标签
has_profileBOOLEAN是否有执行 profile
peek_memory_usageVARIANT峰值内存使用(JSON)
session_idVARCHAR会话标识

system_history.profile_history

每个查询的详细执行 profile。使用 jq() 提取算子级统计信息。

字段类型说明
timestampTIMESTAMPprofile 记录时间
query_idVARCHAR查询 ID
profilesVARIANT算子 JSON 数组,每个包含 id, name, statistics[]
statistics_descVARIANT统计信息格式描述(JSON)

Statistics 数组索引:[0]=OutputRows, [1]=OutputBytes, [2]=InputRows, [3]=InputBytes, [4]=CpuTime(ns)。

system_history.log_history

所有 Databend 节点和组件的原始日志。

字段类型说明
timestampTIMESTAMP日志时间戳
pathVARCHAR源文件路径和行号
targetVARCHAR目标模块或组件
log_levelVARCHAR日志级别(INFO, ERROR, WARN 等)
cluster_idVARCHAR集群标识
node_idVARCHAR节点标识
warehouse_idVARCHARWarehouse 标识
query_idVARCHAR关联的查询 ID
messageVARCHAR日志消息(纯文本)
fieldsVARIANT附加字段(JSON)
batch_numberBIGINT内部使用

system_history.access_history

数据血缘和访问控制审计。跟踪所有被访问或修改的对象。

字段类型说明
query_idVARCHAR查询 ID
query_startTIMESTAMP查询开始时间
user_nameVARCHAR执行查询的用户
base_objects_accessedVARIANT被访问的对象(JSON 数组)
direct_objects_accessedVARIANT预留字段
objects_modifiedVARIANTDML 修改的对象(JSON 数组)
object_modified_by_ddlVARIANTDDL 修改的对象(JSON 数组)

JSON 对象字段:object_domain(Database/Table/Stage)、object_namecolumns[]stage_typeoperation_type(Create/Alter/Drop/Undrop)、properties

system_history.login_history

所有登录尝试的认证审计记录。

字段类型说明
event_timeTIMESTAMP登录事件时间
handlerVARCHAR协议(如 HTTP, MySQL
event_typeVARCHARLoginSuccessLoginFailed
connection_uriVARCHAR连接 URI
auth_typeVARCHAR认证方式(如 Password)
user_nameVARCHAR尝试登录的用户
client_ipVARCHAR客户端 IP
user_agentVARCHAR客户端 User Agent
session_idVARCHAR会话 ID
node_idVARCHAR节点 ID
error_messageVARCHAR失败时的错误信息

常用示例

查找最近一小时的慢查询(>5秒):

SELECT query_id, sql_user, query_duration_ms, query_text
FROM system_history.query_history
WHERE query_duration_ms > 5000
AND event_time > now() - INTERVAL 1 HOUR
AND log_type = 2
ORDER BY query_duration_ms DESC
LIMIT 20;

查找失败的查询:

SELECT query_id, sql_user, exception_code, exception_text, query_text
FROM system_history.query_history
WHERE exception_code != 0
AND event_time > now() - INTERVAL 1 HOUR
ORDER BY event_time DESC;

检查登录失败:

SELECT event_time, user_name, client_ip, error_message
FROM system_history.login_history
WHERE event_type = 'LoginFailed'
AND event_time > now() - INTERVAL 24 HOUR
ORDER BY event_time DESC;
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验