跳到主要内容
版本:26.x

日志检索

日志检索 用于在 SelectDB Cloud 控制台中分析内部表中的日志。你可以选择表和时间字段、缩小时间范围,通过索引字段或 SQL 条件筛选,再查看匹配记录、时间分布和事件前后的相邻日志。

日志检索适用于交互式排查。需要编写完整 SQL、关联数据、创建对象或保存 SQL 工作内容时,使用 SQL 编辑器。

前置条件​

  • 选择存储日志的仓库。日志检索仅查询内部目录中的表,不浏览外部目录中的表。
  • 目标表包含合适的时间字段。页面支持 DATE、DATEV2、DATETIME、DATETIMEV2 和 TIME 类型;选定时间字段后才能查询。
  • 当前数据库用户具有目标数据库和表的查询权限。页面只能展示该用户有权查询的数据。
  • 使用 搜索 模式时,表中至少有一个建立了倒排索引的字段。没有可用索引时,使用 SQL 模式,或先创建索引。

全文检索的索引设计参见倒排索引概述。

打开日志检索​

  1. 登录 SelectDB Cloud 控制台。
  2. 选择目标仓库。
  3. 单击左侧导航栏的 日志检索。

页面包含以下区域:

区域用途
顶部数据和时间选择区选择计算集群、表、时间字段和时间范围。
查询输入区使用 搜索 模式输入关键词,或使用 SQL 模式输入过滤表达式;单击 查询 执行检索。
左侧字段区和 筛选 栏选择结果展示列,添加或调整筛选条件。
时间分布图查看匹配日志在所选时间范围内的数量分布。
明细区查看匹配记录,展开字段或 JSON 内容,进入上下文检索。

选择日志数据和时间范围​

  1. 页面显示 集群 选择器时,选择执行查询的计算集群。
  2. 在 表 中选择内部目录下的数据库和表。
  3. 在 时间 中选择代表事件时间的字段。表中有多个时间字段时,确认选择与排查目标一致。
  4. 选择预设或自定义时间范围,核对时区。尽量选择能覆盖事件的较小范围,减少扫描数据量并便于分析。
  5. 选择 搜索 或 SQL,按需输入条件,单击 查询。也可以在条件输入框中按 Enter 键。

选择表后,页面会加载字段并自动选择第一个支持的时间字段。查询前应检查自动选择是否符合预期。表、时间字段、时间范围和查询条件共同决定结果、命中数量和时间分布。

搜索日志​

日志检索提供两种模式:

  • 搜索:在选定的倒排索引字段中检索关键词或短语。
  • SQL:输入过滤表达式,完成比较、范围筛选和条件组合。

两种模式均会应用所选时间范围和 筛选 栏中的条件。

使用关键词搜索​

  1. 从查询模式菜单中选择 搜索。
  2. 选择需要检索的倒排索引字段,尽量只选择可能包含目标内容的字段。
  3. 输入关键词或短语,单击 查询。

普通关键词检索使用 MATCH_ANY 语义。需要按短语匹配时,用双引号包裹整个短语,例如 "connection refused",页面使用 MATCH_PHRASE 语义生成条件。实际匹配结果受字段分词器和索引配置影响。

如果表中没有倒排索引,搜索 模式不可用,并提示“请先为该表创建倒排索引”。为所需字段创建倒排索引后,重新选择目标表。

搜索仅作用于选定的索引字段,不会搜索表中的所有列。需要对非索引字段设置条件或更精确地控制表达式时,使用 SQL 模式。关键词高亮用于辅助阅读,应以实际条件和返回记录为准。

使用 SQL 条件​

在 SQL 模式中输入 SQL 过滤表达式,而不是完整的 SELECT 语句。页面将该表达式与时间范围及交互式筛选条件组合后查询。

例如,目标表包含 event_type 和 action 字符串字段时,可以输入:

event_type = 'ForkApplyEvent' AND action = 'none'

输入过程中,页面会提示当前表的字段和常用 SQL 运算符。将示例字段和值替换为实际数据,使用比较、范围或组合条件逐步缩小结果。

筛选结果和选择展示字段​

左侧字段区区分已选择的字段和可用字段。可以按名称搜索字段,将字段添加为结果表格列,或移除不再需要的列。未选择字段时,表格以 _source 形式展示记录。

字段区还支持按可搜索性、可聚合性或字段类型缩小字段列表。需要对日志记录本身设置条件时,使用 筛选 栏:

  1. 单击 筛选 旁的加号(+)。
  2. 选择字段、运算符和值。可用运算符随字段类型变化,例如数值和时间字段支持比较或范围条件。
  3. 如需为条件命名,启用默认关闭的 自定义标签,输入便于识别的名称。标签只改变条件的显示名称,不改变过滤逻辑。
  4. 保存条件后,检查 筛选 栏中的条件标签。单击标签可以编辑,关闭标签可以移除条件。

将鼠标移到结果中的标量字段值上,可以使用加号或减号快速添加等于或不等于条件,也可以将该字段添加到表格或从表格移除。复杂值不提供等于、不等于的快捷筛选操作。

查看字段值分布​

在字段区打开字段值分布,可以查看最常见的 5 个值及其比例,并通过加号或减号添加包含或排除条件。例如,在状态字段的错误值旁单击减号,可以排除该状态。

字段分布最多基于当前取得的 500 条样本统计,受时间范围和筛选条件影响,不能直接代表全表分布。

查看时间分布​

时间分布图按时间间隔统计匹配记录数,并随查询、时间范围、时间字段和筛选条件更新。

  • 将鼠标移到柱形上,查看对应时间段和记录数。
  • 使用 时间 间隔选择器,选择自动或固定统计间隔。
  • 在图中拖动框选时间段,将当前查询范围缩小到该区间。

结果区域还会展示命中总数,并支持分页。时间戳按页面的时区上下文显示,不应默认所有仓库都使用同一时区。

查看记录明细和上下文​

展开一条记录,可以在表格和 JSON 两种形式间切换:

  • 表格形式按字段展示名称和值,并提供适用的快捷操作。
  • JSON 形式展示完整记录结构。

需要查看事件前后的日志时,单击展开记录右侧的 上下文检索。页面按所选时间字段获取该记录前后的相邻日志。你可以:

  • 添加仅作用于上下文结果的筛选条件。
  • 选择展示列,或以表格和 JSON 形式检查单条记录。
  • 使用上下方向的加载入口获取更早或更晚的记录,并选择每次加载的数量。

时间上相邻的记录不一定属于同一请求或事务。追踪某次请求时,应结合请求 ID、Trace ID 等业务字段继续筛选。

筛选 VARIANT 子字段​

对于 VARIANT 类型的半结构化数据,可以展开字段层级并对子字段设置条件。需要复杂表达式时,切换到 SQL 模式。例如,payload 中包含字符串子字段 region 时:

CAST(payload['region'] AS STRING) = 'cn-beijing'

字段路径、大小写和值类型需要与实际数据一致。数值比较应转换为对应数值类型,并考虑字段缺失或值为 NULL 的情况。

常见问题​

无法单击查询​

选择目标表及有效的 时间 字段后,才能查询。如果表中没有支持的时间字段,可以选择包含事件时间的表,或在 SQL 编辑器 中分析数据。

无法使用搜索模式​

目标表没有日志检索可用的倒排索引。创建索引后重新选择表;临时排查时,也可以改用 SQL 模式输入条件。

没有返回结果​

先扩大时间范围并核对时间字段,再逐一移除或简化关键词、SQL 条件和交互式筛选。如果仍看不到数据,确认当前数据库用户具有目标数据库和表的查询权限。

表列表中没有目标表​

日志检索仅展示内部目录中的表。确认目标表位于当前仓库,且当前数据库用户具有读取权限。外部目录中的表请通过 SQL 编辑器 查询。

相关文档​